2021年以太坊开发框架权威指南

智能合约开发框架允许工程师部署和测试其智能合约,从而使开发者的生活更轻松。 我花了数小时和几天的时间浏览ConsenSys和以太坊网站上的每个推荐框架,以了解哪些 框架最适合2021年,哪些框架你需要避免浪费时间。你可以在GitHub上看到我对这些平台的实验。

2021以太坊开发框架

用自己熟悉的语言学习 以太坊DApp开发Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart

不仅如此,我还对区块链Hackthon的参与者进行了数百次采访,并完成了数百次Hackthon的提交, 以寻找哪种工具性能最佳、开发人员体验最佳。我自己也使用每个框架做了很多工作,希望为 2021年做好准备。

使用的标准很简单。该框架需要:

  • 可以部署到本地区块链
  • 能够进行快速有效的测试
  • 使用Chainlink将智能合约部署到Kovan Testnet。

第三个标准很重要,因为它使我能够测试框架如何与其他软件包交互以及进行集成测试。 与预言机(Oracle)和第三方工具(如OpenZeppelin)能协同不做基本上是2021年的区块链开发框架所 必须的,这也是为什么这最后一块是非常重要的。

我们将简要介绍一些您你要了解的2021年其他重要工具,但本文不会涉及初学者工具,例如ETH钱包, 以太坊客户端或文本编辑器。

1、2021年推荐的三大智能合约开发框架

首先,我将向所有人推荐以下三个智能合约开发框架。每个都有不同的风格以及选择它的原因:

  • Hardhat(JavaScript)
  • Truffle(JavaScript)
  • Brownie(Python)

让我们仔细研究一下,了解为什么要使用这些框架,为什么它们是最佳的框架,以及其他一些 值得注意的地方。

1.1 Hardhat

2021以太坊开发框架

Hardhat是目前最好的框架之一,支持快速测试,同时提供了最好的教程和最简单的集成。 老实说,每个喜欢JS框架的人都应该在某个时候试用Hardhat。它真的很容易上手,具有快速的测试, 而且入门非常简单。Hardhat的Discord也总是非常迅速地回答问题,因此,如果遇到问题,你 总是可以寻求帮助。Hathat使用Waffle和Ethers.js进行测试 —— 可以说是更好的JavaScript 智能合约框架 —— 开发人员的生活质量确实能得到一些改善。

Hardhat还可以与OpenZeppelin的可升级智能合约插件直接集成,这是一个巨大的胜利。 这个项目给人一种很棒的感觉:很干净。它会执行你想要的操作。真的很快。该项目正在不断改进, Hardhat显然致力于使智能合约开发人员的生活更轻松。

Hardhat概要:

  • ETH基金会资助的项目,以前的名字是Builder
  • 技术:Javascript,Web3.js和Ethers.js插件,OpenZeppelin可升级合同插件, Etherscan插件,区块链分叉
  • 区块链:Hardhat运行时环境/本地、测试网、主网
  • 测试支持:Waffle
  • 维护:非常活跃
  • 支持:活跃
  • 开源

1.2 Truffle

2021以太坊开发框架

几年来Truffle一直是以太坊智能合约的默认开发框架,这是有充分理由的。 Truffle是一个强大的框架,为其他许多人树立了标准。你很容易找到使用此平台的项目, 因此查找示例很容易。Truffle也可以很容易地与它的姊妹工具Drizzle和Ganache集成在一起。 特别是Ganache,它是工程师运行本地区块链的最流行方法之一。对于那些正在寻找更多工具的人, 你可以为升级的Truffle团队帐户付费,并可以访问智能合约的持续集成,可视化部署和监视。 Truffle还可以与OpenZeppelin的可升级智能合约插件直接集成,这是一个巨大的胜利。 Truffle的开发团队显然是一群有才华的工程师,他们想要使世界成为一个更好的智能合约场所。

Truffle测试的运行速度不如hardhat那样快,并且由于用户数量众多,获得支持可能很困难。 我很期待看到被ConsenSys收购后他们将如何改善这个项目。Truffle的文档质量似乎开始下降 并且很难遵循,但是如果你用Google搜索遇到的错误,则很可能会遇到遇到该错误并已解决的人。 我发现改善项目的一些最佳方法是在GitHub上发布问题。无论如何,保持生态系统不断壮大是我们 的开源职责!

由于几乎每个人都熟悉它,因此获得同行的支持通常很容易。我真的希望看到团队在这个项目 上获得更多支持,因为他们有这么多用户。我希望他们能看到本文并致力于改善其文档,以使 其能够继续作为测试和部署智能合约的首选平台之一。

Truffle概要:

  • 使用最广泛的平台;最近被ConsenSys收购(2020年11月)
  • 技术:Javascript,Web3.js,OpenZeppelin可升级合同插件,Etherscan插件,区块链分叉
  • 区块链:Ganache /本地,测试网,主网
  • 有测试
  • 维护:非常活跃
  • 支持:活跃
  • 开源,可以付费升级

1.3 Brownie

2021以太坊开发框架

Brownie极大地受到Truffle启发,它基本上与Python等效,并增加了一些有利于生活质量改善的特性。 这个项目的字面意思是大多数Python工程师因为不喜欢JavaScript而感到同样的沮丧。 由于Brownie是用Python编写的,因此消除了使用JavaScript带来的许多麻烦,并且你可以使用这个 框架轻松地来处理和部署智能合约。

作为一个喜欢Python的人,我为这个项目的未来感到非常兴奋,随着采用率的提高,越来越多的项目 正在研究Python和Brownie框架来部署他们的智能合约。我已经开始使用Brownie作为我的入门框架, 并且一直喜欢它。我已经和一些从事更多工作的人聊天,他们是一个非常聪明的团队。Yearn.finance 似乎也已加入。

如果你来自Python世界,或者想要一个非常简单,干净的框架,那么无疑这是适合你的框架。

Brownie概要:

  • 最好的Python框架,用于Yearn.finance等DeFi项目。
  • 技术:Python,Web3.py,区块链分叉,Etherscan插件,Vyper支持
  • 区块链:Ganache /本地,测试网,主网
  • 有测试
  • 维护:非常活跃
  • 支持:活跃
  • 开源

1.4 Embark

2021以太坊开发框架

令我惊讶的是,在GitHub上看到Embark这个前三名之外的框架得到这么多星(3.1k)。这个工具有很多独到之处。 我花了一点时间尝试了解,因为Embark是整个DAPP框架。这是一个全栈的区块链平台。在Gitter的 一些帮助下,我能够将Chainlink合约部署到Kovan网络。它带有一个UI,允许你在GUI中与区块链 和合约进行交互。Embark有一段学习曲线,我没有花足够的时间来克服,但它展示了其潜力。这就是 为什么我想将其包括在这里的原因,因为我觉得我没有完全消化很多东西。

我希望看到人们更多地尝试该框架并看到其功能。由于在项目中花费的时间有限,我觉得我可能 无法在这里做到公正。我确实认为将前端与后端解耦仍然是最佳做法,但是如果你需要启动一个 具有良好前端的项目并且不关心解耦,那么您应该100%尝试这个项目。

这是一个很酷的项目,如果有人喜欢Hardhat和Truffle,并且又想与全栈解决方案集成,那么我愿意 推荐Embark给他。

Embark概要:

  • 具有大量功能的JavaScript框架用于前端开发
  • 技术:JavaScript,Web3.js,代理合约支持
  • 区块链:Ganache /本地,测试网,主网
  • 支持测试
  • 维护:轻度活跃
  • 支持:活跃
  • 开源

2、2021年推荐的非框架类以太坊开发工具

现在,在继续后续内容之前,我想休息一下,并指出2021年的一些重要非框架工具。

  • OpenZeppelin和升级插件
  • Etherscan / Block Explorer验证程序
  • create-eth-app

2.1 OpenZeppelin

OpenZeppelin是一个为智能合约工程师创建工具的平台。OpenZeppelin有一些默认设置, 例如ERC20和ERC721工具,你可以在其中导入其合约并在几秒钟内构建代币。看看用 OpenZeppelin制作ERC20有多简单:

1
2
3
4
5
6
7
8
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已经提供的东西。

2.2 Etherscan / Block Explorer验证程序

Etherscan是最受欢迎的区块浏览器。当人们想要查看你的合约 以及你已部署的内容时,除非他们具有ABI和合同地址,否则他们将无法进行检查。找到合约 地址通常很容易,但是要获得ABI却很困难。你将希望人们能够轻松地查看你的智能合约并与 之交互,因此始终希望对其进行验证,以便其他人可以做到这一点。大多数框架都有某种验证 插件,你可以在其中部署智能合约,然后立即在Etherscan上进行验证。确保在你的应用程序 中可以使用它。

2.3 create-eth-app

拥有大量的后端智能合约是很棒的,但是如果没有人可以使用你的dApp,那将毫无价值。 create-eth-app是一个平台,你可以使用ReactJS为智能合约增加前端。它使用了很多新 的React技巧,例如State Hooks,并使构建真正强大的前端变得更加容易。

3、2021年的一些惊人的初学者工具

我不会在这里介绍这些功能,但是如果你不熟悉该领域,请查看这些!

4、2021年可选的其他智能合约开发框架

接下来的这些框架的一点也不差,并且可能对你有用。他们中的一些确实对将智能合约框架中 的内容有一些非常酷的想法,我希望前三大框架注意到其中一些很棒的想法。这些工具可能 会花费更多的探索时间。

  • Waffle(JS)
  • Dapp.Tools(Haskell / CLI)
  • SBT(Scala / CLI)
  • Epirus(Java)

4.1 Waffle

2021以太坊开发框架

Waffle本身可用作部署框架,尽管你必须编写更多的自定义脚本。它被列为智能合约框架, 尽管将其与其他框架进行比较有点不妥。实际上Waffle可以与你喜欢的任何框架一起使用, 并且当前是Hardhat的默认工具。

如果你希望框架可以提供所有不错的功能,那么我不建议自己单独使用它,但是如果你想 使用更原始,更简单,可定制的框架,那么用Waffle不会出错。

Waffle概要:

  • 轻量级JavaScript框架专注于测试
  • 技术:JavaScript,Ethers.js。
  • 区块链:所有
  • 有测试
  • 维护:非常活跃
  • 支持:活跃
  • 开源

4.2 Dapp.tools

2021以太坊开发框架

MakerDAO使用了Dapp.Tools,这让我感到惊讶。它是用Haskell编写的,但是支持许多 我们喜欢的插件,例如OpenZeppelin。它看起来像一个极简主义的框架,功能强大到 足以执行你想要的工作。我能够在使用此平台部署合约方面获得帮助,并且其间接性让我 感到惊讶。如果你正在寻找一个简约的命令行友好的框架,那么我建议你也尝试一下。

Dapp.tools概要

  • MakerDAO使用的Haskell简单框架
  • 技术:Haskell / CLI
  • 区块链:本地/ Ganache,测试网,主网
  • 有测试
  • 维护:活跃
  • 支持:活跃
  • 开源

4.3 Epirus

2021以太坊开发框架

虽然我说Epirus像“Truffle”,但是Epirus的风格也不是完全像Truffle,这更多是商业意义上的。 Epirus有一个开源项目,同时也有一个付费的升级工具,供那些希望与之合作的人使用。Epirus 使用Java的Web3实现,看起来还处于项目开发的早期。很高兴看到他们对Android的支持,因此 我很关注这个项目的进展。由于Java智能合约平台不多,这样就可以吸引更多的Java工程师进入该行业。 不过我没有办法将合约部署到Kovan,因为目前还不支持,但看起来已经支持Rinkeby。无论如何, 我很高兴看到项目进展顺利。

Epirus概要:

  • 类似于Truffle的Java实现
  • 技术:Java
  • 区块链:Ganache /本地,测试网(不是Kovan)
  • 有测试
  • 维护:活跃
  • 支持:不太活跃
  • 开源,支持付费升级

4.4 SBT

2021以太坊开发框架

SBT是我尝试过的最有趣的项目之一,它致力于命令行或使用 Scala进行智能合约交互。我几乎没有Scala经验,因此没有办法来很好地评估这个平台。如果你 了解Scala并寻求加入以太坊,这个项目看起来不错。

SBT概要:

  • 命令行和Scala项目,适用于智能合约工程师与爱好者。
  • 技术:Scala
  • 区块链:本地/ Ganache,测试网,主网
  • 有测试
  • 维护:轻度活跃
  • 支持:无效
  • 开源

5、2021年应当避免的以太坊开发框架

你也会不时看到以下这些项目,我敢肯定,它们开始时很棒,但是目前已经不再受支持 或处于非活动状态。了解这些是为了避免浪费精力在这些项目上:

  • OpenZeppelin CLI / SDK(JS)
  • Etherlime(JS)
  • Parasol(JS)
  • Cobra(PY)

5.1 OpenZeppelin SDK

2021以太坊开发框架

现在,我明白了为什么OpenZeppelin SDK团队停止工作了。作为一个团队,他们希望专注于可升 级智能合约的难题 — 但是说实话,这有点难为情。这个项目很干净。我能够部署我 的Chainlinked智能合约,并比几乎任何其他框架更快地读取ETH的价格。它还具有一些 非常不错的CLI选项,就像Epirus和Hardhat一样。它还内置了可升级的选件,这很少见。

我不建议使用此功能,因为他们有意不再支持它,但这是我使用智能合约框架获得的最佳 开发人员经验之一。我希望前三名能够从中汲取灵感,使该项目如此光彩夺目。我上面说过, 每个人都应该使用OpenZeppelin工具是有原因的。它们的确好用。

如果他们不停止这一工作,那么OpenZeppelin SDK很容易成为前四名的框架。

OpenZeppelin SDK概要:

  • OpenZeppelin弃用的智能合约框架。他们不赞成专注于升级插件。 不过这是一个很干净的JS框架。
  • 技术:JavaScript,Web3.js和Ethers.js插件,OpenZeppelin可升级合约插件
  • 区块链:本地,测试网,主网
  • 有测试
  • 维护:无效
  • 支持:无效
  • 开源

5.2 Etherlime

2021以太坊开发框架

Etherlime看起来是另一个不受青睐且 未积极开展工作的JS框架。它与Infura的过时功能紧密结合,因此我们无法在Kovan上部署 我们的智能合约。该项目活跃时看来是非常强大,而且看起来仍然可以用于本地开发,但是 我不建议使用它。

Etherlime概要:

  • 不再活跃的JS框架
  • 技术:JavaScript,Ethers.js
  • 区块链:本地,测试网,主网
  • 有测试
  • 维护:无效
  • 支持:无效
  • 开源

5.3 Parasol

2021以太坊开发框架

Parasol是另一个无效的JS框架(超过两年未提交)。它具有一些很酷的功能,例如 parasol interact以及一些集成,并且显然,有一些很聪明的人在从事此工作,但是 我认为没有理由在任何其他JS框架上使用此平台。

Parasol概要:

  • 不再活跃的JS框架
  • 技术:JavaScript,Web3.js
  • 区块链:本地/ Ganache,测试网,主网
  • 有测试
  • 维护:无效
  • 支持:无效
  • 开源

6、2021年以太坊开发框架总结

智能合约和区块链世​​界发展迅速。两年前的一些最热门工具已经是老新闻了,智能合约开发 框架也没有什么不同。看到Truffle保持在游戏的顶端是很酷的事情,但更重要的是,许多项目 都采用了不同的方法来解决问题。希望这对您有所帮助!


原文链接:The Top Blockchain Developer Frameworks for 2021

汇智网翻译整理,转载请标明出处