2021年优秀区块链开发者框架

区块链
智能合约开发框架允许工程师部署和测试他们的智能合约,从而使工程师的工作变得更轻松。

 智能合约开发框架允许工程师部署和测试他们的智能合约,从而使工程师的工作变得更轻松。

[[386465]]

我花了数小时和几天的时间浏览ConsenSys和以太坊网站上的每个推荐框架,以了解哪种框架最适合2021年。

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

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

第三个标准很重要,因为它使我能够测试框架如何与其他软件包交互以及进行集成测试。

从2021年开始,基本上必须使用Oracle和OpenZeppelin等第三方工具,这就是为什么最后一部分如此重要的原因。

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

智能合约开发框架

我将推荐三个智能合约开发框架。每种框架略有不同,所以选择它的原因也不同。他们是:

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

让我们来仔细阅读一下,了解您为什么要使用它,为什么它位于列表的顶部,以及其他值得注意的地方。

1. Hardhat

 

 

 

[[386466]]

 

图片来源:Hardha

Hardhat是目前最好的框架之一,具有一些最快的测试,最好的教程和最简单的集成。

老实说,每个喜欢JS框架的人都应该在某个时候尝试使用Hardhat。

它真的很容易上手,它进行了快速的测试,而且入门非常简单。他们的Discord也一直非常迅速地回答问题,因此,如果遇到问题,您总是可以寻求帮助。他们使用Waffle和Ethers.js进行测试,这可以说是更好的JavaScript智能合约框架,这是由于与web3.js相比,生活质量有了一些非常不错的改进。他们还可以与OpenZeppelin的可升级智能合约插件直接集成,这是一个巨大的胜利。

这个项目给人一种很棒的感觉:干净利落、执行您想要的操作,并且真的很快。

该项目正在不断改进,他们显然致力于使智能合约开发人员的生活更轻松。

概括:

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

2.Truffle

 

 

 

 

图片来源:Truffle

Truffle几年来一直是默认框架,这是有充分理由的。

它是一个强大的框架,为其他许多人树立了标准。您会很容易找到使用此平台的大多数项目,因此查找示例很容易。

Truffle也可以很容易地与它的姊妹工具Drizzle和Ganache集成在一起。Ganache特别是工程师运行本地区块链的最流行方法之一。对于那些寻求更多工具的人,您可以支付升级后的Truffle团队帐户的费用,并可以访问智能合约的持续集成,可视化部署和监视。他们还可以与OpenZeppelin的可升级智能合约插件直接集成,这是一个巨大的胜利。

他们显然是一群有才华的工程师,他们想要使世界成为一个更好的智能合约场所。

Truffle测试的运行速度不如安全帽那样快,并且由于用户数量众多,获得支持可能很困难。自从被ConsenSys收购以来,我很期待看到他们将如何改善这个项目。他们的文档似乎开始下降,很难遵循,但是如果您通过Google搜索遇到的错误,很可能会遇到曾经遇到该错误并已解决的人。

我发现改善项目的一些最佳方法是将问题留在他们的GitHub上。无论如何,保持生态系统不断壮大是我们的开源职责!

由于几乎每个人都熟悉它,因此获得同行的支持通常很容易。

我真的希望看到团队在这个项目上获得更多支持,因为他们有这么多用户。

概括:

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

3.Brownie

 

 

[[386467]]

 

图片来源:Brownie

Brownie受到Truffle的极大启发,这基本上与Python等效,并增加了一些生活质量更改。这个项目大多数Python工程师感受都一样:他们不喜欢JavaScript。

由于它是用Python编写的,因此消除了使用JavaScript带来的许多麻烦,并且您获得了使用此奇妙的简单框架来处理和部署智能合约。

作为一个自己喜欢Python的人,我为这个项目的未来感到非常兴奋,随着采用率的提高,越来越多的项目正在使用Python和此框架来部署他们的智能合约。

如果您来自Python世界,或者想要一个非常简单,干净的框架,毋庸置疑这个将非常适合你。

概括:

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

除了另外三个顶部的开发框架外,还有一个完整的dApp框架——

Embark,它也是一个区块链平台。

 

 

 

[[386468]]

 

图片来源:Embark

我很惊讶地看到在GitHub(3.1k)上排名前三的框架如此之多。

这个工具有很多钟声和口哨声。我花了一些工夫才了解了个中缘由,这是因为Embark是一个完整的dApp框架。这是一个全栈的区块链平台。

在Gitter的一些帮助下,我能够将Chainlink合同部署到Kovan网络。它带有一个UI,使您可以在GUI中与区块链和合同进行交互。

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

这个项目很酷,如果有人喜欢Hardhat和Truffle,但又想与全栈解决方案集成,这个将会适合这些人。

概括:

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

非框架工具

现在,在继续上述操作之前,我想指出2021年的一些重要非框架工具。

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

1.OpenZeppelin和升级插件

OpenZeppelin是一个平台,可为智能合约工程师创建工具以供使用。他们有一些默认设置,例如ERC20和ERC721工具,您可以在其中导入他们的合同并在几秒钟内建立一个令牌。

看看用OpenZeppelin制作ERC20有多简单:

 

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

OpenZeppelin是一个开源项目。它的另一个重要方面是其可升级合同功能。部署一个正在运行的项目意味着您必须部署一个代理合同,该代理合同在您要进行任何更改时都需要更新。这是另一个让人感到惊奇和干净的项目。老实说,每个项目,无论您使用什么平台,都应该使用OpenZeppelin在某个时候创建的内容。

2.Etherscan / Block Explorer验证程序

Etherscan是最受欢迎的区块浏览器。当人们想要签出您的合同以及您已部署的内容时,除非他们具有ABI和合同地址,否则他们将无法进行检查。或许找到合同地址通常很容易,但是要获得ABI却很困难。

您希望人们能够轻松地查看您的智能合约并与之互动,因此您必须对其进行验证,以便其他人能做到这一点。大多数框架都有某种验证插件,您可以在其中部署智能合约,然后立即在Etherscan上对其进行验证。确保在您的应用程序中使用它。

3.create-eth-app

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

代替框架

下面介绍一些其他的代替框架,这些框架可能对您有用。他们中的一些确实对将智能合约框架中的内容有一些非常酷的想法,我希望你们能注意到这些很棒的想法。

这些工具可能会花费更多的探索时间。

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

1.Waffle

 

图片来源:Waffle

Waffle本身可以用作部署框架,尽管您必须编写更多自己的自定义脚本。尽管将其与其他框架进行比较有不及,但它被列为智能合约框架。

Waffle可以与您喜欢的任何框架一起使用,我当前是使用Hardhat的默认工具。

如果您希望框架可以提供所有不错的功能,就不建议自己单独使用它,但是如果您想使用更原始,更简单,可自定义的框架,那么选择它就不会有错。

概括:

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

2.Dapp.Tools

 

 

 

 

图片来源:Dapp.Tools

MakerDAO使用了Dapp.Tools,这让我感到惊讶。它是用Haskell编写的,但支持许多我们喜欢和喜欢的插件,例如OpenZeppelin。

它看起来像一个极简主义的框架,功能强大到足以执行您想要的操作。能够令您在使用此平台部署合同方面获得帮助,并且对它的简洁性产生好感。

如果您正在寻找一个对命令行友好的极简主义框架,那么我建议您可以试试这个。

概括:

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

3.Epirus

 

 

 

图像来源:Epirus

即使我说的是“松露状”,Epirus的风格也不是完全像松露状,而是商业意义上的。

他们有一个开源项目,但有一个付费的升级工具,供那些希望与之合作的人使用。他们使用Java的Web3实施,而且看起来仍处于项目开发的早期阶段。我很高兴看到他们对Android的支持,因此我很想知道这个项目的进展情况。

由于Java智能合约平台不多,因此我们可以吸引更多的Java工程师进入该行业。

我无法部署到Kovan,因为它不受支持,但看起来他们已经支持Rinkeby。无论如何,我很高兴看到项目进展顺利。

概括:

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

SBT-以太坊

 

 

 

 

我玩过的更有趣的项目之一,SBT专注于几乎完全从命令行或与Scala进行的智能合约交互。我的Scala经验几乎为零,因此我没有很好的观点来评估该平台。如果您了解Scala并寻求加入以太坊,这似乎可能真的很酷。

概括

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

一些过时的框架

或者您会不时看到这些弹出窗口。

我敢肯定,当它们问世时,它们是很棒的!

但是现在,它们不再受支持或处于非活动状态。

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

1.OpenZeppelin SDK

 

 

 

图片来源:OpenZeppelin SDK

现在,我终于明白了为什么该项目停止为此工作了。

作为一个团队,他们希望专注于可升级智能合约这一棘手的问题。

我能够部署我的Chainlinked智能合约,并比几乎任何其他框架更快地读取ETH的价格。它还具有一些非常不错的CLI选项,就像Epirus和Hardhat一样。它还内置了可升级的选件,这在很少有平台可以使用的世界中是巨大的。

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

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

概括

  • OpenZeppelin是弃用的智能合约框架。他们不赞成将重点放在升级插件上。
  • 技术:JavaScript,Web3.js和Ethers.js插件,OpenZeppelin可升级合同插件
  • 区块链:本地,测试网,主网
  • 有测试
  • 维护:无效
  • 支持:无效
  • 开源的

2.Etherlime

 

 

 

图像来源:Etherlime

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

概括:

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

3.Parasol

 

 

 

 

图片来源:Parasol

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

概括:

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

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

责任编辑:华轩 来源: 区块链研究实验室
相关推荐

2018-03-19 19:30:19

2012-06-13 01:23:30

开发者程序员

2021-06-15 11:10:00

JavaScript框架语言

2020-12-24 16:54:14

后端开发框架

2019-02-13 09:00:00

区块链比特币加密货币

2021-12-10 07:47:30

谷歌开发者工具

2021-02-24 13:41:17

Java开发者工具

2020-12-20 19:05:41

腾讯区块链腾讯云

2018-05-25 00:25:17

区块链技术智能

2018-06-11 09:58:40

区块链Bluffer指南

2021-12-17 11:10:05

Chrome开发工具

2021-06-14 09:54:46

框架开发应用程序

2020-12-25 17:34:08

区块链加密货币比特币

2020-05-07 18:01:14

区块链开发编程语言

2013-01-07 08:42:43

开发者

2022-05-24 15:13:22

开发区块链编程语言

2021-06-11 18:05:31

App平台框架

2021-03-26 09:36:45

CSS框架前端

2022-11-02 14:43:29

2021-05-13 06:12:21

Java开发技能
点赞
收藏

51CTO技术栈公众号