智能合约开发框架让工程师可以部署和测试他们的智能合约,从而使工程师的工作更加轻松。我花了数小时和数天时间浏览ConsenSys和Ethereum网站上推荐的每个框架,以查看哪个最适合2021年。使用的标准很简单。该框架需要:部署到本地区块链以进行快速高效的测试使用Chainlink将智能合约部署到Kovan测试网。第三个标准很重要,因为它允许我测试框架如何与其他包交互以及集成测试。从2021年开始,像Oracle、OpenZeppelin这样的第三方工具基本上就得用了,这也是为什么最后一部分这么重要的原因。我们将简要介绍2021年你需要了解的其他一些很棒的工具,但本文不会涵盖ETH钱包、以太坊客户端或文本编辑器等初学者工具。智能合约开发框架我将推荐三种智能合约开发框架。每个框架都略有不同,所以选择它的理由也不同。它们是:Hardhat(JavaScript)Truffle(JavaScript)Brownie(Python)让我们仔细看看为什么应该使用它,为什么它位于列表的顶部,以及其他值得注意的地方。1.Hardhat图片来源:HardhaHardhat是目前最好的框架之一,拥有一些最快的测试、最好的教程和最简单的集成。老实说,每个喜欢JS框架的人都应该在某个时候尝试一下Hardhat。它真的很容易上手,它有一个快速测试,而且上手真的很容易。他们的Discord也非常快速地回答问题,所以如果您遇到问题,您可以随时寻求帮助。他们使用Waffle和Ethers.js进行了测试,这可以说是更好的JavaScript智能合约框架,因为与web3.js相比,它的生活质量有了一些非常好的改进。它们还可以直接与OpenZeppelin的可升级智能合约插件集成,这是一个巨大的胜利。这个项目给人一种很棒的感觉:干净,做你想做的事,而且速度非常快。该项目正在不断改进,他们明确致力于让智能合约开发人员的生活更轻松。总结:ETH基金会资助的项目,以前的建设者技术:Javascript、Web3.js和Ethers.js插件、OpenZeppelin可升级合约插件、Etherscan插件、区块链分叉区块链:hardhatruntimeenvironment/native、testnet、mainnet有测试维护:非常活跃支持:ActiveOpening2.Truffle图片来源:Truffle多年来,Truffle一直是默认框架,这是有充分理由的。它是一个强大的框架,为许多其他框架树立了标准。您会很容易找到使用此平台的大多数项目,因此查找示例很容易。Truffle还可以轻松地与其姊妹工具Drizzle和Ganache集成。Ganache尤其是工程师运行本地区块链的最流行方式之一。对于那些寻找更多工具的人,您可以付费购买升级的Truffle团队帐户,并获得对智能合约、可视化部署和监控的持续集成的访问权限。它们还可以直接与OpenZeppelin的可升级智能合约插件集成,这是一个巨大的胜利。他们显然是一群才华横溢的工程师,他们希望让世界成为智能合约更美好的地方。Truffle测试的运行速度不如hardhat,而且由于用户数量庞大,获得支持可能很困难。自从被ConsenSys收购后,我很期待看到他们如何改进这个项目。他们的文档似乎开始减少并且难以遵循,但如果你用谷歌搜索你遇到的错误,你很可能会遇到遇到并解决它的人。我发现改进项目的一些最佳方法是在他们的GitHub上留下问题。无论如何,保持生态系统发展是我们的开源角色!由于几乎每个人都熟悉它,因此获得同行的支持通常很容易。我真的很希望看到团队在这个项目上得到更多支持,因为他们有这么多用户。总结:使用最广泛的平台;最近被ConsenSys收购(2020年11月)技术:Javascript、Web3.js、OpenZeppelin可升级合约插件、Etherscan插件、区块链分叉区块链:Ganache/native、测试网、主网有测试版维护:非常积极的支持:积极的开源和付费升级3.Brownie图片来源:BrownieBrownie深受Truffle的启发,Truffle基本上是Python的等价物,但增加了一些生活质量的变化。这个项目的大多数Python工程师都有同感:他们不喜欢JavaScript。由于它是用Python编写的,它消除了使用JavaScript带来的许多麻烦,您可以使用这个非常简单的框架来处理和部署智能合约。作为一个热爱Python的人,我对这个项目的未来感到非常兴奋,随着采用率的提高,越来越多的项目正在使用Python和这个框架来部署他们的智能合约。如果你来自Python世界,或者想要一个非常简单、干净的框架,毫无疑问这将非常适合你。简介:最好的Python框架,被Yearn.finance等DeFi项目使用。技术:Python、Web3.py、blockchainforks、Etherscanplugin、Vyper支持的区块链:Ganache/native、testnet、mainnetwithtests维护:非常活跃支持:活跃的开源除了其他三个顶级开发框架之外,有一个完整的dApp框架——Embark,也是一个区块链平台。图片来源:Embark我很惊讶地看到GitHub(3.1k)上有这么多排名前三的框架。这个工具有很多花里胡哨的东西。我花了一段时间才明白为什么,这是因为Embark是一个完整的dApp框架。这是一个全栈区块链平台。在Gitter的帮助下,我能够将Chainlink合约部署到Kovan网络。它带有一个UI,允许您在GUI中与区块链和合约进行交互。我很乐意看到人们更多地尝试这个框架,看看它能做什么。由于我在这个项目上花费的时间有限,我觉得我在这里可能没有做到公正。在我看来,将前端与后端解耦仍然是最佳实践,但如果你需要开始一个具有良好前端的项目并且不关心解耦,你应该100%检查该项目。这个项目非常酷,如果有人喜欢Hardhat和Truffle但想与全栈解决方案集成,这个项目将适合他们。摘要:具有大量前端开发功能的JavaScript框架技术:JavaScript、Web3.js、代理合约支持区块链:Ganache/local、测试网、带有测试的主网维护:轻度活跃支持:现在活跃的开源非框架工具,之前继续上面的内容,我想指出一些2021年重要的非框架工具。OpenZeppelin和升级插件Etherscan/BlockExplorervalidatorcreate-eth-app1。OpenZeppelin和升级插件OpenZeppelin是一个为智能合约工程师创建工具的平台。他们有一些默认设置,例如ERC20和ERC721工具,您可以在其中导入他们的合约并在几秒钟内构建令牌。看看用OpenZeppelin制作ERC20是多么容易:pragmasolidity^0.6.0;导入“@openzeppelin/contracts/token/ERC20/ERC20.sol”;contractGLDTokenisERC20{constructor(uint256initialSupply)publicERC20("Gold","GLD"){_mint(msg.sender,initialSupply);}}OpenZeppeliOpenZeppelin是一个开源项目。它的另一个重要方面是它的可升级合约功能。部署一个正在运行的项目意味着你必须部署一个代理合约,只要你想进行任何更改就需要更新它。这是另一个令人惊叹且干净的项目。老实说,无论您使用什么平台,每个项目都应该使用OpenZeppelin在某个时候创建??的东西。2.Etherscan/BlockExplorer验证器Etherscan是最流行的区块浏览器。当人们想要检查你的合同和你部署的内容时,除非他们有合同的ABI和地址,否则他们将无法检查。也许找到合约地址通常很容易,但获得ABI却很难。您希望人们能够轻松查看您的智能合约并与之交互,因此您必须对其进行验证,以便其他人可以这样做。大多数框架都有某种验证插件,您可以在其中部署智能合约,然后立即在Etherscan上对其进行验证。确保在您的应用程序中使用它。3.create-eth-app有很多后端智能合约很好,但是如果没有人可以使用你的dApp,那它就一文不值了。create-eth-app是一个允许您使用ReactJS将前端添加到智能合约的平台。它使用了许多新的React技巧,例如StateHooks,并且可以更轻松地构建一个真正强大的前端。替代框架以下是一些可能对您有用的其他替代框架。他们中的一些人确实有一些关于在智能合约中构建事物的非常酷的想法,我希望你们注意这些很酷的想法。这些工具可能需要更多的探索时间。Waffle(JS)Dapp.Tools(Haskell/CLI)SBT(Scala/CLI)Epirus(Java)1.Waffle图片来源:WaffleWaffle本身可以用作部署框架,尽管您必须编写更多自己的自定义内容脚本。它被列为智能合约框架,尽管与其他框架相比还不够。Waffle可以与任何你喜欢的框架一起使用,我目前使用的是Hardhat的默认工具。如果您想要一个框架可以提供的所有不错的功能,我不建议您单独使用它,但是如果您想要更原始、更简单和可定制的东西,那么您就不会出错。简介:专注于测试技术的轻量级JavaScript框架:JavaScript、Ethers.js。区块链:你运行的一切都有测试维护:非常积极的支持:积极的开源2.Dapp.Tools图片来源:Dapp.ToolsMakerDAO使用Dapp.Tools,这让我感到惊讶。它是用Haskell编写的,但支持许多我们喜欢和喜爱的插件,例如OpenZeppelin。它看起来像一个极简主义的框架,并且功能强大到足以做你想让它做的事。获得使用该平台部署合约的帮助,并欣赏它的简单性。如果您正在寻找一个命令行友好的极简主义框架,那么我建议您试一试。总结:MakerDAO使用的Haskell简单框架技术:Haskell/CLI区块链:Local/Ganache,testnet,主网有测试维护:active支持:activeshape”,Epirus的风格不完全像truffle,而是商业意义上的.他们有一个开源项目,但是有一个付费的升级工具供那些希望使用它的人使用。他们使用Java的Web3实现,看起来它还处于项目开发的早期阶段。我很高兴看到他们的支持Android,所以很好奇这个项目进展如何。Java智能合约平台不多,我们可以吸引更多的Java工程师进入这个行业。我不能部署到Kovan,因为它不支持,但是它看起来他们支持Rinkeby。无论如何,我很高兴看到该项目进展顺利。总结:类似于Truffle技术的Java实现:Java区块链:Ganache/native,testnet(不是Kovan)测试维护:主动支持:不是很活跃OpensourceSBTSBTwithpaidupgrades-Ethereum我玩过比较有趣的项目之一,SBT专注于智能合约交互,几乎完全来自命令行或与Scala。我的Scala经验几乎为零,因此我没有很好的观点来评估该平台。如果您了解Scala并希望加入以太坊,这似乎真的很酷。总结解决两个问题的命令行和Scala项目。适用于使用智能合约和智能合约工程师的爱好者。技术:Scala区块链:Local/Ganache、Testnet、Mainnet已测试维护:轻度活跃支持:不活跃开源一些过时的框架,或者您会不时看到这些弹出窗口。我敢肯定他们出来的时候很棒!但现在,它们不再受支持或处于非活动状态。OpenZeppelinCLI/SDK(JS)Etherlime(JS)Parasol(JS)1.OpenZeppelinSDK图片来源:OpenZeppelinSDK现在我终于明白为什么这个项目停止工作了。作为一个团队,他们希望专注于可升级智能合约的棘手问题。我能够比几乎任何其他框架更快地部署我的Chainlinked智能合约并读取ETH的价格。它也有一些非常好的CLI选项,就像Epirus和Hardhat。它还具有内置的可升级选项,这在几乎没有平台的世界中是巨大的。我不建议使用此功能,因为他们有意不再支持它,但这是我使用智能合约框架获得的最佳开发人员体验之一。我希望使用前三名的技术人员能够从中汲取灵感,使这个项目如此光彩夺目。我在上面说过,每个人都应该使用OpenZeppelin工具是有原因的。如果他们不停止这项工作,他们的SDK很容易成为排名前4的框架。总结OpenZeppelin是一个已弃用的智能合约框架。他们不赞成专注于升级插件。技术:JavaScript、Web3.js和Ethers.js插件,OpenZeppelin可升级合约插件区块链:本地、测试网、主网已测试维护:无效支持:无效2.开源的Etherlime图像源:EtherlimeEtherlime似乎是另一个JS框架,不受青睐,也没有积极开展工作。它与Infura已弃用的功能紧密结合,因此我们无法在Kovan上部署智能合约。看起来是个很强大的项目,本地开发看起来还是可以用的,但是不推荐使用。总结:无效的JS框架技术:JavaScript,Ethers.js区块链:本地,测试网,测试维护的主网:无效支持:无效3.Parasol图片来源:Parasol另一个无效的JS框架(两年多未提交),它有一些酷特征。例如Parasol交互和一些集成,显然有一些非常聪明的人在研究它,但我认为没有理由在任何其他JS框架上使用该平台。摘要:无效的JS框架技术:JavaScript、Web3.js区块链:Local/Ganache、Testnet、Mainnet已测试维护:无效支持:无效开源智能合约和区块链世??界正在快速发展。一些两年前最热门的工具已经是旧闻了,智能合约开发框架也不例外。很高兴看到Truffle始终处于领先地位,但更重要的是,许多项目采用了不同的方法来解决问题。
