BM 发文,呼吁开发者加入EOSIO 挑战赛,打造惠及所有人的区块链,这也是首个 EOSIO 社区挑战赛要求开发人员在 EOSIO 智能合约中运行以太坊 Solidity 智能合约。
作为 EOSIO 生态系统中的资深人士,BOSCore 一直秉承协作精神,以帮助解决区块链行业挑战而闻名,我们 BOSCore 技术团队很高兴从宣布参与挑战赛到现在,一直持续地分享这一突破性技术,希望该技术能适用于主流市场。
             
该挑战在于寻找能够通过EOSIO智能合约构建区块链技术的未来,并将开发者社区凝聚在一起的开发者,目的是为了推动区块链集成,整合区块链资源,而不是孤立区块链。
本文探讨了 EOSIO 挑战赛的五个要素以及为之开发的 BOSCore 解决方案。每个部分有对应的文档、链接和附录,目的是突出 BOSCore 的一些关键点和功能,以应对创建 EOSIO 智能合约的挑战。该合约可以在虚拟环境中存储和调用 EVM(Solidity))智能合约的 EOSIO 智能合约, 类以太坊环境我们称为 EOS-EVM 环境。
EOSIO 挑战五要素:
  1. “eos-challenge-contract”,用于模拟 EVM 的 EOSIO 智能合约;
  2. 用于部署和使用 EOS-EVM 合约的 SDK;
  3. 使用 ETH 来测试 EVM 合约;
  4. 现实世界中的实际用例讨论;
  5. 详细文件。
01
用于模拟 EVM 的 EOSIO 智能合约
“eos-challenge-contract”,是创建 EOSIO 智能合约的五要素中的第一个,用于模拟 EVM 环境,它包含挑战赛的技术要求,提交规则等,每个要求都必须有详细的解决和实施方案并提交到 GitHub 文档中。
为了在 EOSIO 智能合约(EOS-VM)中完全模拟 EVM,必须遵循以太坊黄皮书才能真正执行 EVM 交易。
              
https://ethereum.github.io/yellowpaper/paper.pdf
EOS 和以太坊设计存在一些差异,因此有必要进行转换才能使模拟生效,这些转换以合理且适当的方式完成,从而允许将 Solidity 智能合约转移到 EOS 上。
GAS费用已计算但未计费
Gas 是在以太坊网络中进行转账和智能合约交互的一个单位。当指令返回一个区块 Gas 限定值时,供应量为足够大的供应量,区块 Gas 量限定是强制性的,发送者不用支付 Gas 费,且 Gas 价格是锁定的。所有其他 Gas 指令维持着一个区块号的时间戳,这表示 EOSIO 区块号的时间块哈希和币库(coinbase),然后难度返回一个静态值。
EOSIO 账户和以太坊地址
EOSIO 帐户对推送到链上的交易进行签名,并且交易签名用于代码计算和验证,而以太坊签名则绑定到以太坊地址。使用地址与以太坊交易的区别是兼容性差距,需要转换以模拟智能合约内的以太坊地址。
除智能合约之外还有两个变量因素:
a)如果用户拥有一个 EOS 帐户,那么是可以绑定用户的 ETH 地址。
b)如果用户从未拥有过 EOS 帐户,也从未有过 EOS 帐户和资源管理经验。
为了正常运行和通过所有交易测试,有必要考虑这两种情况,并使 “EOSIO,以太坊和更广泛的区块链社区的开发人员能够利用他们自己喜欢的开发平台去开发,同时利用 EOSIO 的优势。例如,EOSIO 可以更快地处理智能合约,从而减少了对开发人员显著的障碍影响。”
在 a 和 b 两种情况下,都需要通过模拟器推动以太坊交易,以使其运行。在 a 情况下,现有的 EOSIO 帐户绑定到以太坊智能合约的特定地址;在 b 情况下,引入第三方BFSP(Blind Forward Service Provider,以下统称为“盲签服务”)EOSIO 账户。盲签服务使没有现有 EOSIO 账户或不熟悉 EOS 资源管理的以太坊用户,能够与他们自己喜欢的开发平台无缝衔接地使用智能合约。
盲签服务充当 EOS 中间帐户,以方便 ETH 用户与 EOS 区块链进行交互。它接受任何交易数据,使用自己的 EOS 帐户签名,发送到 EOSIO 链上并支付所需的 CPU / NET / RAM。它可以是拥有 EOS 帐户的朋友,也可以是专门的服务提供商。(具体可参阅附录https://github.com/eosiosg/eos-challenge)
EOS-EVM 为 a 和 b 提供了一种解决方案,以满足挑战赛要求,并允许不熟悉 EOS 账户和资源管理的以太坊用户使用他们自己喜欢的开发平台,同时利用 EOSIO 的优势并满足创建一个 EOSIO 的提交标准 ,“可以在类似虚拟的以太坊环境中存储和调用 EVM(Solidity)智能合约的 EOSIO 智能合约。” (具体可参阅附录https://eosio.devpost.com/)
EOS-EVM 解决方案使以太坊社区能够无缝地“利用 EOSIO 的优势”,无需过渡智能代码,从而可以吸引更多开发人员加入 EOS 社区。部署现有的 Solidity 智能合约以在 EOS-EVM 中运行,可以为整个社区带来巨大的好处。
02
部署和使用合约的SDK
软件开发工具包(SDK),用于轻松部署模拟器智能合约EOS-EVM。
       
03
测试人员可使用 ETH 来测试 VM合约
该应用程序免费提供,没有任何限制,可以进行测试、评估和使用。
我们遵循以太坊社区的标准进行测试,将EVM实现包装到 EOS-VM 中形成一个 EOS-VM 环境。EOS-VM 运行智能合约并模拟 EVM,以在轻便和独立的插件环境中桥接 ALEth 测试工具。
04
现实世界中的实际用例讨论
智能合约挑战赛的典型用例如下,涉及多个角色:
没有 EOSIO 帐户的 ETH 用户。
拥有 EOSIO 帐户的 EOS 用户。
ETH 游戏开发商,想推广游戏。
EOS 游戏平台,想要推广更多游戏并吸引更多玩家。
我们都知道,EOS游戏平台推广 EOS DApp 和游戏,并且许多 EOS 用户都喜在这些平台上玩游戏。最近,这些平台都希望推出 ETH 游戏并吸引 ETH 社区的更多玩家,但他们需要帮助解决双方的困难。ETH 用户对免费游戏有浓厚的兴趣,但不熟悉 CPU / NET / RAM 这些资源概念和一些新的学习工具;另一方面,在开发人员无法从 ETH 转移到 EOS 之前,重写智能合约代码是有一定工作量的,更糟糕的是,开发人员没有开发 EOS 智能合约的经验。
我们的挑战赛项目是解决上述困难的完美方案, 为了减少使用难度,该平台部署了 EVM 模拟器,EOS-EVM。
           

05
详细文档
理想的提交将包含用于查询 EVM 合约状态和帐户余额等的文档;理想的提交不会包含对 EOSIO 软件的更改,仅包含智能合约代码和相关工具。有关详细文档,可查阅
github https://github.com/eosiosg/eos-challenge
不需要视频演示,但建议您进行视频演示。
有用的主题包括:
  • 从 EOSIO 帐户创建新帐户的演示
  • 部署 EVM 合约的演示
  • 演示介绍了如何存储 EOSIO 代币,与 EVM 合约进行交互以及提取余额。
BOSCore 参与 EOSIO EVM 挑战
https://medium.com/boscore/boscore-participating-in-eosio-community-program-challenge-c2d52085236c

本文链接:https://www.8btc.com/media/591947
转载请注明文章出处

文章标签: EOS
评论(2)
登录 账号发表你的看法,还没有账号?立即免费 注册
  • 林_l21 2020-05-10
    EOS链上跑以太坊的合约代码,是将EVM虚拟机跑在EOS VM里面吧,这对于EOS链的能力有很大的补充。
  • 林_l21 2020-05-10
    以太坊的智能合约生态比较成熟,作为区块链2.0的代表,经过足够多的打磨以及安全上的考验,很多业务已经基于以太坊EVM在稳定运行了。 EOS能够支持以太坊的Solidity合约,首先会降低一些开发者的门槛,同时对于很多现有业务可以做到很好的无缝迁移,这对EOS本身的生态也大有好处。 从技术上而言,EOS虚拟机是基于wasm的,使用C++编写的EVM虚拟机可以比较方便的被编译成wasm字节码,这样就能比较方便的运行Solidity合约了。 但是EVM本身复杂度比一般的合约要高,在EOS链上跑一个EVM虚拟机,还需要关注性能、一致性、Gas计费等事项。