如何将智能合约迁移到任何EVM?

译文
区块链
几年前以太坊区块链出现后,由于可以创建智能合约,以太坊区块链逐渐成为开发人员和项目用来创建以前不可想象的新平台和新体验的入口点,比如视频游戏和去中心化金融(DeFi)等。

译者 | 布加迪

审校 | 重楼

几年前以太坊区块链出现后,由于可以创建智能合约,以太坊区块链逐渐成为开发人员和项目用来创建以前不可想象的新平台和体验的入口点,比如视频游戏去中心化金融DeFi等。起初,以太坊似乎是最好的区块链,但随着项目和交易数量增加,技术局限性逐渐暴露出来,引发了对其长期可持续性的质疑。

2016年至2017年期间,随着比特币的局限性显露无遗,一些人和项目开始探索更有效的区块链的替代想法。这与以太坊作为构建去中心化应用程序dApps的平台出现时的情况相似。在这方面,值得注意的动向之一是EOS区块链的形成

其他项目(不是完全创新通过修改其他参数将以太坊结构作为基础,使其成为理论上更快速更便宜的以太坊版本。

即使对于非专业人士来说,这些区块链令人难以置信,截然相反的情绪源自技术视角,它们具有与EVM以太坊虚拟机兼容的优势,实际上允许那些在以太坊上开发某些产品的人将其移植到这些新的所谓的“与EVM兼容”的区块链上没有太多问题。

与EVM兼容的区块链

如前所述,这种类型的区块链允许您使用在以太坊上创建的相同代码,这里一种专门创建的名为Solidity的语言表示,含有智能合约指令的文件采用“.sol”格式。

因此对于程序员来说,使用相同的文件足以在这些与EVM兼容的区块链上使用它,甚至不需要修改;这已一再证明是开发人员和应用程序吸引到新区块链的基本功能和特征。

EOS EVM

到目前为止我们讨论了脱胎于以太坊的区块链,但技术环境其实并没有出现创新。事实上,大多数与EVM兼容的区块链几乎彼此都相同,只是代币(Token)的名称发生了变化。

EOS区块链本身与以太坊和EVM不兼容,因此必须开发一种技术上具有挑战性的解决方案,以便在其生态系统内模拟EVM。由于两区块链的架构和共识机制不同,在EOS上模拟EVM需要花很大的精力

这种模拟允许EOS运行基于以太坊的dApps,并在其生态系统内执行以太坊智能合约,从而为开发人员提供更多选择。

尽管如此,在技术娴熟的EOS程师的帮助下,EOS EVM诞生了,并于4月中旬推出其他区块链上的其他EVM相比,EOS EVM展示了其所有技术力量选择的数据是每秒交换”,比当时被认为速度最快的EVM(即Solana上的EVM)4倍。

如何将智能合约迁移到EOS EVM?

既然我们已经了解了EVM的历史和功能,现在是时候让我们动手编写代码了,看看如何将我们为以太坊或另一种EVM区块链创建的代码迁移到EOS EVM

为了迁移智能合约,我们需要一些支持

  • 加载到我们的MetaMask钱包中的主网或测试网络
  • 智能合约的代码
  • 支付网络费用EOS加密货币(这里是测试网水龙头)

如何部署?

要部署智能合约,即将代码加载到区块链上,我们基本上有两种方法

  • 使用IDE,比如Remix
  • 从命令行使用Hardhat

1. 使用Remix IDE进行部署

人人都可以上手的一种快捷方法就是使用Remix此后我们将部署智能合约。

首先,确保我们的MetaMask钱包在EOS EVM、测试网或主网上是活跃的,然后连接到Remix web界面,在这里创建一个新文件,给它个名字和.sol扩展名

图1图1

在空文件中,我们将粘贴代码或者如果我们有多个智能合约,可以从我们的PC上传文件。

此时,选择我们想要上传到区块链的.sol文件,然后移动到Solidity Compiler菜单

图2图2

在这里,我们不需要做任何其他事情,只需按下蓝色按钮等待操作成功只需查看绿色号):

图3图3

部署到区块链的最后一步中,浏览“Deploy & Run Transactions”菜单。在“Environment部分中,选择“Inject Provider – MetaMask选项。这个选择会自动考虑EOS EVM无论您选择的是测试网还是主网。现在点击“Deploy按钮,继续下一步出现提示,您需要确认使用您的MetaMask钱包进行交易

图4图4

就这样,在不到5分钟的时间里,我们已经将智能合约迁移到EOS EVM。

2. 使用Hardhat进行部署

如果我们使用Hardhat开发dApp,将以下网络添加到“hardhat.config.js配置文件中就足够了

图5图5

然后运行命令部署请记住,我们应该在用于支付交易成本地址上有一些EOS):

  • 针对EOS EVM主网,npx hardhat运行scripts/deploy.js--network eosevm
  • 针对EOS EVM测试网,npx hardhat运行scripts/deploy.js--network eosevm_testnet

最后,如果在使用dApp时出现任何错误,尤其是附有消息gas required exceeded allowance错误32603 - MetaMask -RPC Error: Internal JSON-RPC错误

图6图6

它不依赖EOS EVM的问题,而是来自MetaMask的问题,建议使用另一个浏览器并重新执行交易,没有问题地加以处理

结语

总之,由于这些简单的操作,我们不仅可以使用自己的旧代码,还可以使用高性能的EVM,而最终用户不必安装任何其他东西,因为它足以添加新的网络和相关的加密货币

原文标题:How to migrate smart contracts to any EVM,作者:Alfredo de Candia

责任编辑:华轩 来源: 51CTO
相关推荐

2020-01-13 15:22:42

ERP云平台迁移

2017-10-16 00:17:56

云计算信息管理迁移

2021-01-28 09:00:00

SQL数据库NoSQL

2012-08-24 09:07:25

IBMdW

2012-10-29 09:27:16

2015-03-20 13:40:17

2021-07-13 09:45:48

CentOSAlmaLinux命令

2011-09-07 09:30:57

服务器虚拟机

2020-12-08 10:01:48

DropboxNginxEnvoy

2022-03-04 18:14:26

CentOSLinux

2020-06-18 10:12:42

云计算云安全数据

2010-08-12 15:10:17

Flex4

2012-08-11 21:43:11

2019-07-02 13:52:04

云计算数据中心IT

2015-09-11 10:36:46

虚拟化业务运维

2010-08-09 12:47:00

Flex4beta

2022-08-29 14:14:22

云计算云迁移数据分析

2016-12-12 19:16:43

数据云端

2022-05-05 11:39:07

智能技术智能建筑

2013-10-09 09:54:46

数据中心云计算
点赞
收藏

51CTO技术栈公众号