LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 什么?!在 NEAR 上可直接运行以太坊应用?

什么?!在 NEAR 上可直接运行以太坊应用?

2020-02-18 NEAR中文社区 来源:火星财经

这项工作大部分是由来自Summa的JamesPrestwich和BarbaraLiau完成。

内容提要:我们发布了一套在NEAR网络上部署EVM智能合约的工具,使其(EVM智能合约)能从NEAR的性能,用户体验以及开发者工具集中受益。它实质上是把EVM作为一个NEAR上的智能合约,从而实现以太坊智能合约的执行环境(ExecutionEnvironment),并通过一个特别实现的provider,使web3.js工具(译者注:以太坊智能合约开发的基础工具库)也能支持NEAR。

通俗来讲,现有的以太坊应用(ETHDApp)无需修改智能合约代码,可直接在NEAR的区块链平台上部署,从而达到性能的大幅升级,并提高C端用户的使用体验。

![什么?!在NEAR上可直接运行以太坊应用?](https://img.chainnews.com/material/images/28e36d31831e0cf49a42c23f35387183.jpg)

小编:在刚刚结束的ETHDenver,NEAR创始人Illia和以太坊创始人Vitalik,ConsenSys创始人JoeLubin等一起担任开发者大赛的评委

EVM支持及web3.jsprovider

以太坊开发者社区庞大,同时,很多加密技术开发者对以太坊虚拟机(EVM)也都很熟悉。而作为一种专门面向EVM的语言,Solidity自诞生伊始就成为了开发智能合约的主要语言。虽然与Rust和TypeScript等通用语言相比,Solidity具有明显的局限性,但它依旧得到了早期区块链开发者的广泛采用,并且是大量使用的链上开发工具。

相对的,NEAR使用了WebAssembly虚拟机(WASM),这项技术在加密货币乃至更广阔的领域内越来越受欢迎。加密货币领域的大多数项目(例如,以太坊2.0和Polkadot)都在朝着这个方向发展,还有更多的项目正在考虑使用WASM。

尽管我们对WebAssembly的优势坚信不疑,但还是认为有必要帮助开发者简化向WebAssembly过渡的过程,并找到一种方法使现有EVM合约能够在NEAR上运行。为此,我们部署了EVM智能合约。而Parity的以太坊客户端中就有一个使用Rust语言的EVM实现,可轻松地将其编译为WebAssembly,非常方便。

从本质上讲,通过智能合约的方式运行EVM就是简化版的以太坊2.0/宁静(Serenity)执行环境概念,并且不需要任何自定义的交易处理逻辑!你可以在Github上找到EVM合约。

由于大多数以太坊工具都依赖于web3.js,我们实施实现了自定义的web3provider—NearProvider,允许通过Near-web3-provider库中的常见接口直接与以太坊合约进行通信。NearProvider会处理与Near网络的连接,并自动为你转换对象及RPC调用。

接下来,就让我们去仔细瞧瞧是怎么一回事儿吧!

工作原理

首先,要让你的Solidity应用在NEAR的测试网上运行:

如果你还没有一个现成的Truffle项目,那就先创建起来。你可以在这里找到示例:

https://github.com/kcole16/near-evm-demo。

第二步,安装NEARshell:

npminstall-gnear-shell

第三步,使用NEAR钱包登录:

nearlogin

这一步将重定向到NEAR网页钱包,并逐步指导你创建新的钱包账户。你可以输入任何一个你喜欢的accountID。接着,你要通过一笔交易授权CLI使用该帐户,然后输入新创建的accountID以完成登录。

下一步:将NEAR配置为truffle.js中的另一个网络:

以上代码导入了Near-web3-provider,提供了从以太坊RPC到NEAR网络的映射。

接下来,我们会将其指向到包含你NEAR帐户的keyStore,而你将使用它部署你的应用程序(并支付费用)。这里,我使用的是我自己的帐户illia,但你要把它换成你自己的accountId。

就是这么简单,你便可以将应用程序部署到NEAR的EVM上运行了!

trufflemigrate–networknear

你可以在区块浏览器中查看交易是否成功:

https://explorer.nearprotocol.com

最后一步,将Near-web3-provider插入前端web3代码。如此一来,你便可以使用NEAR钱包,吸引用户并让他们轻松地使用你的应用程序了。

在设置好provider后,你就可以使用Truffle、Web3.js和许多其他标准Solidity开发工具与Near-evm进行交互。虽然这个库尚处于早期阶段,但许多基于Web3的应用程序都可以立即使用。

你可以在这里查看完整示例:

https://github.com/kcole16/near-evm-demo

NEAREVM已准备就绪,等待为你的项目提供支持!马上开始开发你的应用程序吧。

Resources相关资源

以下是一些有用的资源链接:

https://github.com/kcole16/near-evm-demo

–完整demo的代码库。

https://github.com/nearprotocol/near-evm

–EVM执行环境合约。

https://github.com/nearprotocol/near-web3-provider

–用于Web3.js的NearProvider。

https://t.me/joinchat/F3YJ0lcCcZka_GN09MGwJw

–加入Telegram开发者社群,实时解决问题。

https://commonwealth.im/near

–在论坛上提出你的想法与建议。

作者Illia一龙
翻译Clover
校对Marco,Bowen
编辑Amos

来源链接:mp.weixin.qq.com

—-

编译者/作者:NEAR中文社区

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...