新聞中心
譯者 | 布加迪

創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)營(yíng)銷(xiāo)型網(wǎng)站、網(wǎng)站重做改版、尉氏網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為尉氏等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
審校 | 重樓
幾年前以太坊區(qū)塊鏈出現(xiàn)后,由于可以創(chuàng)建智能合約,以太坊區(qū)塊鏈逐漸成為開(kāi)發(fā)人員和項(xiàng)目用來(lái)創(chuàng)建以前不可想象的新平臺(tái)和新體驗(yàn)的入口點(diǎn),比如視頻游戲和去中心化金融(DeFi)等。起初,以太坊似乎是最好的區(qū)塊鏈,但隨著項(xiàng)目和交易數(shù)量增加,技術(shù)局限性逐漸暴露出來(lái),引發(fā)了對(duì)其長(zhǎng)期可持續(xù)性的質(zhì)疑。
在2016年至2017年期間,隨著比特幣的局限性顯露無(wú)遺,一些人和項(xiàng)目開(kāi)始探索更有效的區(qū)塊鏈的替代想法。這與以太坊作為構(gòu)建去中心化應(yīng)用程序(dApps)的平臺(tái)出現(xiàn)時(shí)的情況相似。在這方面,值得注意的動(dòng)向之一是EOS區(qū)塊鏈的形成。
其他項(xiàng)目(不是完全創(chuàng)新)通過(guò)修改其他參數(shù)將以太坊結(jié)構(gòu)作為基礎(chǔ),使其成為理論上更快速更便宜的以太坊版本。
即使對(duì)于非專(zhuān)業(yè)人士來(lái)說(shuō),這些區(qū)塊鏈令人難以置信,截然相反的情緒源自技術(shù)視角,它們具有與EVM(以太坊虛擬機(jī))兼容的優(yōu)勢(shì),實(shí)際上允許那些在以太坊上開(kāi)發(fā)某些產(chǎn)品的人將其移植到這些新的所謂的“與EVM兼容”的區(qū)塊鏈上,沒(méi)有太多的問(wèn)題。
與EVM兼容的區(qū)塊鏈
如前所述,這種類(lèi)型的區(qū)塊鏈允許您使用在以太坊上創(chuàng)建的相同代碼,這里由一種專(zhuān)門(mén)創(chuàng)建的名為Solidity的語(yǔ)言表示,含有智能合約指令的文件采用“.sol”格式。
因此對(duì)于程序員來(lái)說(shuō),使用相同的文件就足以在這些與EVM兼容的區(qū)塊鏈上使用它,甚至不需要修改;這已一再證明是將開(kāi)發(fā)人員和應(yīng)用程序吸引到新區(qū)塊鏈的基本功能和特征。
EOS EVM
到目前為止我們討論了脫胎于以太坊的區(qū)塊鏈,但技術(shù)環(huán)境其實(shí)并沒(méi)有出現(xiàn)創(chuàng)新。事實(shí)上,大多數(shù)與EVM兼容的區(qū)塊鏈幾乎彼此都相同,只是代幣(Token)的名稱(chēng)發(fā)生了變化。
EOS區(qū)塊鏈本身與以太坊和EVM不兼容,因此必須開(kāi)發(fā)一種技術(shù)上具有挑戰(zhàn)性的解決方案,以便在其生態(tài)系統(tǒng)內(nèi)模擬EVM。由于兩種區(qū)塊鏈的架構(gòu)和共識(shí)機(jī)制不同,在EOS上模擬EVM需要花很大的精力。
這種模擬允許EOS運(yùn)行基于以太坊的dApps,并在其生態(tài)系統(tǒng)內(nèi)執(zhí)行以太坊智能合約,從而為開(kāi)發(fā)人員提供更多選擇。
盡管如此,在技術(shù)嫻熟的EOS工程師的幫助下,EOS EVM誕生了,并于4月中旬推出。與其他區(qū)塊鏈上的其他EVM相比,EOS EVM展示了其所有技術(shù)力量;它選擇的數(shù)據(jù)是“每秒交換”,比當(dāng)時(shí)被認(rèn)為速度最快的EVM(即Solana上的EVM)快4倍。
如何將智能合約遷移到EOS EVM?
既然我們已經(jīng)了解了EVM的歷史和功能,現(xiàn)在是時(shí)候讓我們動(dòng)手編寫(xiě)代碼了,看看如何將我們?yōu)橐蕴换蛄硪环NEVM區(qū)塊鏈創(chuàng)建的代碼遷移到EOS EVM。
為了遷移智能合約,我們需要一些支持:
- 加載到我們的MetaMask錢(qián)包中的主網(wǎng)或測(cè)試網(wǎng)網(wǎng)絡(luò)
- 智能合約的代碼
- 支付網(wǎng)絡(luò)費(fèi)用的EOS加密貨幣(這里是測(cè)試網(wǎng)水龍頭)
如何部署?
要部署智能合約,即將代碼加載到區(qū)塊鏈上,我們基本上有兩種方法:
- 使用IDE,比如Remix
- 從命令行使用Hardhat
1. 使用Remix IDE進(jìn)行部署
人人都可以上手的一種快捷方法就是使用Remix,此后我們將部署智能合約。
首先,確保我們的MetaMask錢(qián)包在EOS EVM、測(cè)試網(wǎng)或主網(wǎng)上是活躍的,然后連接到Remix web界面,在這里創(chuàng)建一個(gè)新文件,給它取個(gè)名字和.sol擴(kuò)展名:
圖1
在空文件中,我們將粘貼代碼;或者如果我們有多個(gè)智能合約,可以從我們的PC上傳文件。
此時(shí),選擇我們想要上傳到區(qū)塊鏈的.sol文件,然后移動(dòng)到“Solidity Compiler”菜單:
圖2
在這里,我們不需要做任何其他事情,只需按下藍(lán)色按鈕,等待操作成功(只需查看綠色√號(hào)):
圖3
在部署到區(qū)塊鏈的最后一步中,瀏覽到“Deploy & Run Transactions”菜單。在“Environment”部分中,選擇“Inject Provider – MetaMask”選項(xiàng)。這個(gè)選擇會(huì)自動(dòng)考慮EOS EVM(無(wú)論您選擇的是測(cè)試網(wǎng)還是主網(wǎng))?,F(xiàn)在點(diǎn)擊“Deploy”按鈕,繼續(xù)下一步。會(huì)出現(xiàn)提示,您需要確認(rèn)使用您的MetaMask錢(qián)包進(jìn)行交易。
圖4
就這樣,在不到5分鐘的時(shí)間里,我們已經(jīng)將智能合約遷移到了EOS EVM。
2. 使用Hardhat進(jìn)行部署
如果我們使用Hardhat開(kāi)發(fā)dApp,將以下網(wǎng)絡(luò)添加到“hardhat.config.js”配置文件中就足夠了:
圖5
然后運(yùn)行命令來(lái)部署(請(qǐng)記住,我們應(yīng)該在用于支付交易成本的地址上有一些EOS):
- 針對(duì)EOS EVM主網(wǎng),npx hardhat運(yùn)行scripts/deploy.js--network eosevm
- 針對(duì)EOS EVM測(cè)試網(wǎng),npx hardhat運(yùn)行scripts/deploy.js--network eosevm_testnet
最后,如果在使用dApp時(shí)出現(xiàn)任何錯(cuò)誤,尤其是附有消息“gas required exceeded allowance”的錯(cuò)誤32603 - MetaMask -RPC Error: Internal JSON-RPC錯(cuò)誤:
圖6
它不依賴(lài)EOS EVM的問(wèn)題,而是來(lái)自MetaMask的問(wèn)題,建議使用另一個(gè)瀏覽器并重新執(zhí)行交易,會(huì)沒(méi)有問(wèn)題地加以處理。
結(jié)語(yǔ)
總之,由于這些簡(jiǎn)單的操作,我們不僅可以使用自己的舊代碼,還可以使用高性能的EVM,而最終用戶(hù)不必安裝任何其他東西,因?yàn)樗阋蕴砑有碌木W(wǎng)絡(luò)和相關(guān)的加密貨幣。
原文標(biāo)題:How to migrate smart contracts to any EVM,作者:Alfredo de Candia
新聞名稱(chēng):如何將智能合約遷移到任何EVM?
標(biāo)題來(lái)源:http://m.fisionsoft.com.cn/article/cohgseo.html


咨詢(xún)
建站咨詢(xún)
