01 主持人介绍 大家好,我是 BOSCore 的房佳,也是今天的主持人,今天很开心邀请到 BOSCore 的核心开发者 Deadlock 给我们分享。 Deadlock 是知名区块链架构师,负责 BOS 底层架构和技术方案,曾任职新加坡国立大学研究员,互联网公司架构师,有丰富的科研经验和十年的开发经验,欢迎 Deadlock~ 02 嘉宾分享 Q1:什么是EOS-EVM?能简单直白的解释一下吗? A1:EVM 是英文 Ethereum Virtual Machine 的缩写,是以太坊虚拟机的意思。EOS EVM 意思是开发人员在 EOSIO 智能合约中运行以太坊 solidity 智能合约。 Q2:EVM如何实现在EOS网络上运行以太坊智能合约的? A2:我们用 EOS 的 smart contract 实现了 EVM 的逻辑, 遵守以太坊黄皮书的要求,同时结合 EOS 的特性,实现了可以在 EOS 上运行 EVM 环境, 在 EVM 环境上执行 EVM 智能合约。 他们之间的关系可以类比为在 MAC 电脑上运行 windows 虚拟机打 windows 的游戏,MAC 相当于 EOS 链上的智能合约, windows 虚拟机相当于 EVM, 游戏相当于 EVM 的 smart contract。 如果要技术一点的回答的话, 就是下面这个图这样: 交易提交的时候是 eos trx 的格式包裹着 eth trx。 详细查看: https://github.com/eosiosg/eos-challenge/blob/master/use_case_discussion.md Q3:EOS-EVM 和以太坊 EVM 有什么不同之处? A3:除了不收取 Gas 费用和一些特性之外(比如 gasprice 强制为0, difficulty 为0等)之外, 运行效果是完全一样的。 关于 Gas 费不一致是因为考虑到 EOS 的特性, CPU/NET 是通过质押获取的,不应该在收取了 CPU/NET 费用后再额外收取一遍 Gas 费。但 Gas 的计算逻辑是保留了的,如果有需要的话,随时可以开启。 Q4:为什么参加 EOSIO 挑战赛? A4:参加这个挑战赛的原因有三: 第一,我们很早之前就已经实现了 IBC 跨链技术,我们有技术积累,可以轻松完成挑战。 第二是发起这个挑战赛时 BM 呼吁说要打造惠及所有人的区块链,这跟我们BOSCore 要做区块链的自由港,目前已经做到了 BOS IBC HUB,也就是区块链的高速公路,这一点跟我们的目标是非常契合的。 第三,我们参加这个活动的原因也是为了让社区人员知道,我们一直本着方便开发者和用户的初心在努力创造和钻研,并且有所获得。Q5:BOSCore 目前参与 EOSIO 挑战赛的进度如何?希望 EOS 达到什么样的高度?A5:目前我们已经提交了所有的挑战赛所要求的资料,剩下的就等 Block One 对于挑战赛的进度处理了。我们参加这个挑战赛的原因也很简单,一切都是为了技术追求,与世界上众多的开发人员一起寻找能够通过 EOSIO 智能合约构建区块链技术的未来,并将开发者社区凝聚在一起,这样在 EOS 高性能的基础上,整合整个区块链的资源,而并非区块链的孤岛,这跟我们 BOS 要做区块链自由港的初衷不谋而合。 Q6:什么是 Gas?能普及下 Gas、GasLimit、GasPrice 参数的定义和关系吗? A6:以下为 Gas、GasLimit、GasPrice 三者的定义: Gas 是在以太坊网络中进行转账和智能合约交互的一个单位。 GasLimit 是以太坊用户愿意为成功执行某笔交易逻辑所支付的最大 Gas 数量。 GasPrice 是用户愿意为每个 Gas 支付的价格,单位是 Gwei 。 形象的说 Gas 就是多少升汽油, GasPrice 就是油价, 最终用户执行交易要付的 Gasfee 就是油价乘以数量 = Gas * GasPrice。不好理解的地方通常是认为 Gas 是指价格,即要花费多少 ETH,其实 Gas 是 xxx 升, GasPrice 是 ETH /升 ,乘起来才是最终花费的 ETH。 Q7:Gas 费用已计算但未计费是指执行交易不需要 Gas 费吗?会不会影响交易确认速度? A7:执行交易需要支付 CPU/NET, 这是 EOS 链要求的。 已计算未收费是指在逻辑上计算了应该收取多少 Gas,但是并没有实际扣除这部分费用。Gas 和 CPU 这两种资源模型需要取舍, 如果能有一种巧妙的方式把两者结合起来的话,就可以打开这部分功能。 交易速度确认不会影响。共识是针对 block 来的, 模拟 EVM 本质上是一个复杂的、执行时间较长的交易, 不会对确认速度造成影响。 Q8:EOS-EVM 解决方案是否支持以太坊RPC接口? A8:基本功能是支持的,但有部分因为特性限制没有支持,比如获取 hashrate, difficulty 在 EOS-EVM 里没有意义。我们特别定制了一个接口叫做 simulate, 这个接口可以执行任意一个交易返回结果,但在最终会强制让这个交易失败,以此来达到不上链的效果。这个接口可以用来做很多 RPC 的功能,比如 get balance, get storage。 之前有另一个思路是做一个专门的 plugin 来支持 RPC, 但是扩展性上会有问题, 不能假设所有的全节点都默认开启这个 plugin。所以最终选择了 simulate 接口这个方案。 03 自由问答 以下为自由问答精彩节选(篇幅原因有删减) Q1:众所周知,以太坊智能合约存在不安全因素,在 EOS 运行以太坊智能合约会不会影响 EOS 安全性,如何进行解决? A1:简短的答案是不影响,细说的话是指安全级别一致。我们先理解下运行以太坊智能合约,这个本质上是一个复杂的 EOS 智能合约, 如果不考虑他复杂的逻辑恰好和 EVM 一致的话, 他和任何 EOS 的智能合约都是一样的,不会降低现有的安全级别, 因为所有的逻辑实现都是在智能合约层面, 没有改动 VM 层面。 而 EOS-EVM 本身作为 EVM Simulator 的安全级别又是和以太坊的 VM 一致的, 这保证了运行在 EOS-EVM 中的以太坊智能合约的安全性是和运行在 ETH 链上是一致的。所以这两个层面保证了 EOS 链的安全和 EVM Smart Contract的安全。 Q2:区块链的去中心化性质运用到企业中,有些信息企业不想对外公开,怎么处理这个痛点? A2:有两种方式, 一种是用联盟链, 另一种是用公链。但是数据加密一般选取区块链作为信息载体,看重的是不可篡改性。需要多方监督,链的不可篡改性才有意义。那么就有两种情况, 一种是大公司, 需要跨部门合作的,或者几个公司合作的, 这种适合自己做联盟链, 数据不对外公开,需要访问权限才可以获取数据。 Q3:在 EOS 网络上运行以太坊智能合约 EOS-EVM 能够给 BOS 带来哪些机会和好处? A3:这个带来的好处有很多,比较明显的就是社区间的交流,比如可以更方便的和以太坊优秀的开发资源进行对接合作, 引入更多的优秀项目,一次开发多链运营对于项目方来说还是有一定吸引力的。另一方面从链发展的角度出发,技术特性更多元化, 未来有可能可以和 EVM2.0 进行对接,形成进一步的互补。 Q4:在 EOS 上执行 ETH 合约会不会出现交易超时的问题,如果出现了,又是怎么解决的呢? A4:这个问题很好, 这是一个先天限制, EOS 默认的 trx 时间是 30ms(毫秒), 这个是由各个 BP 决定的,也是初始默认值,这一点是无法突破的。 在 EOS 上执行 ETH 合约会出现交易超时的问题,如果出现的话这个交易只能强制失败。但因为 30ms 是一个非常长的交易了, 所以在大多数情况下, 这个问题其实不是一个很大的问题;但是如果是类似 fomo3d 这种执行时间可能会很长的交易, 直接移植是不适合的, 最好是修改合约逻辑,想办法绕开这个限制。 Q5:BOS 是如何处理跨合约调用的问题的呢? A5:EVM 的合约调用就是对目标合约发送一笔转账, 所以可以是在用户 Alice 发送交易给合约 A, 然后合约 A 收到交易后, 执行逻辑, 再发送交易给合约 B,天然就是支持的。 我们倒是有一个 issue 是关于权限问题,权限校验是在合约自己的逻辑里实现的。 https://github.com/eosiosg/eos-challenge-contract/issues/39本文来源:BOSCore —- 编译者/作者:BOSCore 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何实现在EOS网络上运行以太坊智能合约?
2020-05-14 BOSCore 来源:火星财经
LOADING...
相关阅读:
- 时时解币:8.5比特币多头无力,以太坊预谋跳水?2020-08-05
- 8/5比特币延续窄幅震荡其他主流币紧随其后2020-08-05
- 蜘蛛视角2020-08-05
- 炒币机器人:币圈交易之道需要极大耐心,才能静取层中利2020-08-05
- 加密货币衍生品创造新纪录,以太坊期货创下历史新高,芝商所未平仓2020-08-05