<cite id="1ndtl"></cite>
<ruby id="1ndtl"></ruby>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"><dl id="1ndtl"><del id="1ndtl"></del></dl></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike>
<strike id="1ndtl"></strike><span id="1ndtl"><dl id="1ndtl"></dl></span>
<strike id="1ndtl"></strike><strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"></span>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
<th id="1ndtl"><noframes id="1ndtl"><span id="1ndtl"><video id="1ndtl"><strike id="1ndtl"></strike></video></span> <strike id="1ndtl"></strike>
<strike id="1ndtl"></strike>
<span id="1ndtl"><dl id="1ndtl"></dl></span>
  1. 首頁
  2. 區塊鏈最火的論壇(數百次采訪后,我總結了 2021 年最好用的區塊鏈開發框架)

區塊鏈最火的論壇(數百次采訪后,我總結了 2021 年最好用的區塊鏈開發框架)

本文最初發布于 Medium 網站,經原作者授權由 InfoQ 中文站翻譯并分享。

智能合約開發框架讓工程師可以部署和測試他們的智能合約,簡化他們的開發工作。我花了很多天時間來了解 ConsenSys 和 Ethereum 網站上推薦的每一個框架,想看看哪些框架是 2021 年最好用的。你可以在 GitHub 上看到我對這些平臺的實驗。

不僅如此,我還對區塊鏈黑客馬拉松參與者做了幾百次采訪,并查閱了幾百個黑客馬拉松提交,想要找出哪些工具是性能最好、開發體驗最出色的。我自己也使用這些框架做了很多工作,想為 2021 年做好準備。我為大家做好了這期 2021 年優秀框架評選,這樣你就不用陷入選擇困難癥了。

本文采用的標準很簡單。評選的框架需要:

部署到一個本地區塊鏈

進行快速有效的測試

使用 Chainlink 將一個智能合約部署到KovanTestnet

第三個標準很重要,因為它讓我得以測試框架如何與其他軟件包交互和集成測試交互。從 2021 年開始,搭配oracles和 OpenZeppelin 等第三方工具已經成了一項基本需求,所以最后一項標準就非常重要了。

我們將簡要介紹其他一些 2021 年你需要了解的重要工具,但本文不會涉及初學者工具,例如 ETH 錢包、以太坊客戶端或文本編輯器。

視頻簡介:https://youtu.be/motYF5daaOc

Top 4 智能合約開發框架

總的來說,我將向所有人推薦三個智能合約開發框架。每種框架的風味都稍有不同,選擇它們的理由也略有差異。它們分別是:

Hardhat(JavaScript)

Truffle(JavaScript)

Brownie(Python)

我們來深入研究一下這幾個框架,談談你為什么要使用它們,為什么它們排在了名單的前列,以及其他值得注意的地方。

Hardhat

Hardhat 是目前最好的框架之一,有著同類競品中最快的測試、最好的教程和最簡單的集成。老實說,喜歡 JS 框架的人們遲早都應該試一試 Hardhat。它真的很容易上手,測試飛快而且入門非常簡單。他們的 Discord 也一直在非常迅速地回答各種問題,因此如果你遇到了問題,總是很容易尋求幫助。他們使用 Waffle 和 Ethers.js 進行測試,這可以說是更好用的 JavaScript 智能合約框架,因為它們相比 web3.js 做了一些非常不錯的改進。他們還可以與 OpenZeppelin 的可升級智能合約插件直接集成,這是一個很大的加分點。

這個項目給人一種很棒的感覺:它很干凈。它能執行你想要的操作。它真的很快。這個項目正在不斷改進,顯然開發團隊正在努力讓智能合約開發人員的生活更加輕松。

小結

ETH 基金會資助的項目,以前是 Builder

技術:Javascript、Web3.js 和 Ethers.js 插件,OpenZeppelin 可升級合約插件,Etherscan 插件,區塊鏈分叉

區塊鏈:Hardhat 運行時環境/本地,測試網,主網

有測試:Waffle

維護:非常活躍

支持:活躍

開源

Truffle

Truffle 幾年來一直是開發人員的首選框架,這是有充分理由的。它是一個強大的框架,為其他跟隨者樹立了標準。你會很容易找到一大堆項目都在使用這個平臺,因此示例查找起來很容易。Truffle 也可以很容易地與它的姊妹工具Drizzle 集成在一起。特別是 Ganache,它是工程師運行本地區塊鏈的最流行方法之一。如果你需要更多工具,你可以花錢購買升級版的 Truffle 團隊帳戶,獲得智能合約的持續集成、可視化部署和監視功能。他們還可以與 OpenZeppelin 的可升級智能合約插件直接集成,這是一個很大的優勢。他們顯然是一群有才華的工程師,都想要為智能合約創造一個更美好的世界。

Truffle 測試的運行速度不如 Hardhat 那樣快,并且由于前者的用戶數量眾多,支持獲取起來可能會很困難。自從 Truffle 被 ConsenSys 收購以來,我很期待看到他們將如何改善這個項目。他們的文檔質量似乎開始下降,讀起來可能會磕磕絆絆,但是如果你用谷歌搜索一下自己遇到的錯誤,很可能會找到曾經遇到這個錯誤并已解決它的例子。我發現改善項目的最佳方法之一就是在他們的 GitHub 上留一個問題。無論如何,讓生態系統不斷壯大是我們開源社區的職責!

因為幾乎所有人都很熟悉它,因此獲得同行支持通常會很容易。我真的希望看到開發團隊在這個項目上獲得更多支持,畢竟他們有這么多的用戶。我希望他們能看到本文并能努力改善項目文檔,讓它能繼續作為測試和部署智能合約的首選平臺之一。

小結

使用最廣泛的平臺;最近被 ConsenSys 收購(2020 年 11 月)

技術:Javascript,Web3.js,OpenZeppelin 可升級合約插件,Etherscan 插件,區塊鏈分叉

區塊鏈:Ganache/本地,測試網,主網

有測試

維護:非常活躍

支持:活躍

具有付費升級功能的開源項目

Brownie

Brownie 很大程度上受到了 Truffle 的啟發,前者基本上是后者的 Python 等效版本,并增加了一些體驗改進。這個項目起源于大多數 Python 工程師都同樣擁有的困惑:他們不喜歡 JavaScript。由于它是用 Python 編寫的,因此避免了使用 JavaScript 帶來的許多麻煩,并為大家帶來了一個簡單優秀的框架來處理和部署智能合約。

我自己就很喜歡 Python,因此對這個項目的未來感到非常興奮,隨著采用率的提高,越來越多的項目正在使用 Python 和這個框架來部署他們的智能合約。我已經將 Brownie 用作了我的入門框架,用下來感覺非常不錯。我還同一些用它做更多事情的開發人員做過交流,他們真的非常優秀。Yearn.finance 似乎也已經用上了這個框架。

如果你來自 Python 開發世界,或者想要一個非常簡單、干凈的框架,那么這一款就是為你而生的,毫無疑問。

還有一個框架!我知道我只提到了三個,但我認為下面的框架也應該在這里占據一席之地。

小結

最好的 Python 框架,由 Yearn.finance 等 DeFi 項目使用。

技術:Python,Web3.py,區塊鏈分叉,Etherscan 插件,Vyper 支持

區塊鏈:Ganache/本地,測試網,主網

有測試

維護:非常活躍

支持:活躍

開源

Embark

我很驚訝能排名前三以外的框架能在 GitHub 上有這么多星(3.1k)。這款工具花樣很多。我花了一些工夫才搞清楚它到底是怎么回事,但這是因為 Embark 旨在成為一個完整的 dApp 框架。這是一個全棧的區塊鏈平臺。在他們 Gitter 的一些幫助下(以及在他們 GitHub 上創建的一個問題;請記住,開源社區責任!),我得以將自己的 Chainlink 合約部署到 Kovan 網絡。它帶有一個 UI,這樣你就可以在 GUI 中與區塊鏈和合約交互。看來它有一段學習曲線,我沒有花足夠的時間來克服障礙,但能看出它的潛力很大。這就是為什么我想把它放在這里的原因所在,因為我覺得自己還有很多東西沒能完全消化。

我希望看到有更多人能嘗試這個框架并意識到它的能力。由于我在該項目上花費的時間有限,所以我覺得自己可能無法做到公正評價。我確實認為,將前端與后端解耦仍然是最佳實踐,但是如果你需要開始一個具有良好前端的項目并且不關心解耦需求,那么你絕對應該嘗試這個項目。

這個項目很酷,如果有人喜歡 Hardhat 和 Truffle,但又想集成一個全棧解決方案,我會首先推薦它。

小結

用于前端開發的,具有大量功能的 JavaScript 框架

技術:JavaScript,Web3.js,代理合約支持

區塊鏈:Ganache/本地,測試網,主網

有測試

維護:輕度活躍

支持:活躍

開源

我們暫停一下

繼續介紹上述框架的替代選項之前,我想暫停一下,先來介紹一些 2021 年重要的非框架工具。

OpenZeppelin 和升級插件(https://openzeppelin.com/contracts/)

Etherscan/BlockExplorer 驗證器(https://etherscan.io/)

create-eth-app(https://github.com/paulrberg/create-eth-app)

OpenZeppelin 和升級插件

OpenZeppelin 是一個平臺,可為智能合約工程師創建有用的工具。他們有一些默認選項,例如 ERC20 和 ERC721 工具,你可以在其中導入他們的合約并在幾秒鐘內建立一個令牌。看看用 OpenZeppelin 制作一個 ERC20 有多簡單:

pragma solidity ^0.6.0;import “@openzeppelin/contracts/token/ERC20/ERC20.sol”;contract GLDToken is ERC20 {constructor(uint256 initialSupply) public ERC20(“Gold”, “GLD”) {_mint(msg.sender, initialSupply);}}

復制代碼

重新發明輪子沒有意義。OpenZeppelin 是一個開源項目,主要目的就是省去大家重新造輪子的功夫。OpenZeppelin 的另一個重要特性是它的可升級合約功能。部署一個實際項目意味著你必須部署一個代理合約,這個代理合約在你要進行任何更改時都需要更新。這又是一個體驗出色且干凈的項目。老實說,對每一個項目來說,無論你使用的是什么平臺,遲早都會用上 OpenZeppelin 創建?的內容。

Etherscan/Block Explorer 驗證器

Etherscan 是最受歡迎的區塊瀏覽器。當人們想要簽出你的合約以及你已部署的內容時,除非他們具有 ABI 和合約地址,否則就無法簽出。找到合約地址通常很容易,但是要獲得 ABI 卻很困難。你肯定希望人們能輕松地查看你的智能合約并與之互動,因此你需要隨時對其進行驗證,以便其他人可以做到這一點。大多數框架都有某種驗證插件,你可以在其中部署智能合約,然后立即在 Etherscan 上對其進行驗證。一定要在你的應用程序中使用它。

create-eth-app

擁有一大堆后端智能合約誠然很不錯,但是如果沒有人可以使用你的 dApp,那這些合約將毫無價值。create-eth-app 是一個平臺,允許你使用 ReactJS 為你的智能合約增加一個前端。它使用了許多最新的 React 技術(例如狀態 Hooks),并讓開發人員可以很容易地構建真正強大的前端。

2021 年的一些出色的初學者工具

Scaffold- ETH(https://github.com/austintgriffith/scaffold-eth)

eth.build(https://eth.build/)

Remix(https://remix.ethereum.org/)

OneClick dApp(https://oneclickdapp.com/)

我不會在這里介紹它們的詳細情況,但如果你是這個領域的新手,用它們就對了!

其他框架選項

剩下的這些框架也都很不錯,并且可能更適合你的需求。它們中的一些確實對智能合約框架中應該放什么內容有一些非常酷的想法,我希望前三名選手能夠注意到其中一些很棒的理念。這些工具可能需要更多的探索時間。

Waffle(JS)

Dapp.Tools(Haskell/CLI)

SBT(Scala/CLI)

Epirus(Java)

Waffle

Waffle本身可以用作部署框架,只不過你需要編寫更多自定義腳本。雖說拿它和其他框架進行對比有點愚蠢,但這里還是把它列為智能合約框架。Waffle 可以與你喜歡的任何框架搭配使用,并且當前是搭配 Hardhat 的默認工具。

如果你希望框架可以提供所有不錯的功能,那我不建議單獨使用它。但如果你想使用更原始、更簡單、可自定義的框架,那么選它就不會出錯。

小結

輕量級 JavaScript 框架,專注于測試

技術:JavaScript,Ethers.js

區塊鏈:你所經營的一切

有測試

維護:非常活躍

支持:活躍

開源

Dapp.Tools

MakerDAO 使用了Dapp.Tools,它也驚艷了我一把。它是用 Haskell 編寫的,但支持許多我們喜歡和常用的插件,例如 OpenZeppelin。它看起來像一個極簡主義的框架,但功能強大到足以做到你想做的事情。我可以找到關于使用這個平臺部署合約的幫助,另外它的簡潔也給人留下了深刻印象。如果你正在尋找一個對命令行友好的極簡主義框架,那么我建議你也看一下這一款。

小結

MakerDAO 使用的 Haskell 簡單框架

技術:Haskell/CLI

區塊鏈:本地/Ganache,測試網,主網

有測試

維護:活躍

支持:活躍

開源

Epirus

雖然我說過它是“類 Truffle”框架,但Epirus的風格也不是完全像 Truffle,只是在商業層面比較相似。他們有一個開源項目,但還有一個付費的升級工具,供想要用它做更多事情的用戶選擇。他們使用 Java 的 Web3 實現,而且看起來仍處于項目開發的早期階段。我很高興看到他們提供了對 Android 的支持,因此我很想知道這個項目的進展情況。由于 Java 智能合約平臺不多,因此它可以吸引更多的 Java 工程師進入這一行業。

我無法用它部署到 Kovan,因為它不受支持,但看起來他們已經支持Rinkeby了。無論如何,我很高興看到這個項目能順利推進。

小結

類似于 Truffle 的 Java 實現

技術:Java

區塊鏈:Ganache/本地,測試網(不是 Kovan)

有測試

維護:活躍

支持:不是很活躍

具有付費升級功能的開源項目

SBT

這是我玩過的一個很有趣的項目,SBT的特色是幾乎完全從命令行或使用 Scala 與智能合約交互。我的 Scala 經驗幾乎為零,因此沒有足夠的背景知識來評估這個平臺。如果你了解 Scala 并想要踏入以太坊世界,這款工具可能真的是很酷的選項。

小結

同時滿足命令行與 Scala 的開發需求。適用于智能合約愛好者和工程師。

技術:Scala

區塊鏈:本地/Ganache,測試網,主網

有測試

維護:輕度活躍

支持:不活躍

開源

過時的框架

你經常會見到這些框架的身影。我敢肯定它們問世時都是很棒的工具,但是到了今天,它們不再獲得支持或處于非活躍狀態。下面的這些框架不值得你浪費精力去了解和嘗試。

OpenZeppelinCLI/SDK(JS)

Etherlime(JS)

Parasol(JS)

Cobra(PY)

OpenZeppelin SDK

現在,我明白為什么這個項目停止為此工作了——作為一個團隊,他們希望專注于可升級智能合約這一棘手的問題——但說實話這挺遺憾的。這個項目相當干凈。我可以部署我的 Chainlinked 智能合約,并能比幾乎其他所有框架更快地讀取 ETH 的價格。它還有一些非常不錯的 CLI 選項,就像 Epirus 和 Hardhat 一樣。它還內置了可升級的選項,其他平臺很少有這種設計,所以這是很大的優點。

我不建議使用這個框架,因為他們不會再支持它了。但這是我使用智能合約框架獲得的最佳開發體驗之一。我希望前三名選手能夠從中汲取一些令這個項目與眾不同的靈感。我上面說過,每個人都應該使用 OpenZeppelin 工具是有原因的。他們就是很好用。

如果他們不停止這個項目,那么他們的 SDK 很容易成為前四名的框架。

小結

OpenZeppelin 棄用的智能合約框架。他們棄用它是為了將重點放在升級插件上。不管怎樣,它真的是很干凈的 JS 框架。

技術:JavaScript,Web3.js 和 Ethers.js 插件,OpenZeppelin 可升級合約插件

區塊鏈:本地,測試網,主網

有測試

維護:不活躍

支持:不活躍

開源

Etherlime

Etherlime 似乎是另一個不受青睞且未積極開展工作的 JS 框架。它與 Infura 的一項過時特性緊密耦合,因此我們無法在 Kovan 上部署智能合約。它活躍的時候看來是一個非常強大的項目,而且似乎仍然可以在本地開發中使用,但是我不建議用它替代前三個選項。

小結

不活躍的 JS 框架

技術:JavaScript,Ethers.js

區塊鏈:本地,測試網,主網

有測試

維護:不活躍

支持:不活躍

開源

Parasol

另一個不活躍的 JS 框架(超過兩年沒有一項提交)。它有一些很酷的功能,例如 parasol interact 和一些集成,而且顯然曾有一些很聰明的人在從事這項工作,但是我認為沒有理由用它代替其他任何 JS 框架了。

小結

不活躍的 JS 框架

技術:JavaScript,Web3.js

區塊鏈:本地/Ganache,測試網,主網

有測試

維護:不活躍

支持:不活躍

開源


如果你覺得我錯過了什么框架或在哪里弄錯了,或者你有其他想法,請隨時發表評論或聯系我。本文的想法是讓智能合約工程師能夠盡快高效地入門。掌握所有這些工具將使我們能夠更快地實現去中心化的世界。希望這對你能有所幫助!

原文鏈接:

https://betterprogramming.pub/the-top-blockchain-developer-frameworks-for-2021-89afa5e7bd04

相關文章
美女网站色