本文汇总整理了超过250个以太坊区块链开发工具,内容涵盖新手入门、智能合约开发工具、 以太坊访问工具、以太坊基础设施、测试工具、安全工具、监控工具、智能合约标准、 智能合约开发库、layer 2开发、开发模式与最佳实践等12个大类,值得每一位以太坊开发人员 收藏。
用自己熟悉的语言学习 以太坊DApp开发 : Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart
1、新手入门
- Solidity - 最受欢迎的智能合约语言。
- Truffle - 最受欢迎的智能合约开发,测试和部署框架。通过npm安装cli,然后从此处开始编写您的第一个智能合约。
- Metamask - Chrome扩展程序钱包,可与Dapps进行交互。
- Truffle Boxes - 以太坊生态系统的打包组件。
- OpenZeppelin入门套件 - 开发人员的多合一入门盒,可快速启动其受智能合约支持的应用程序。包括Truffle,OpenZeppelin SDK,OpenZeppelin / contracts-ethereum-package EVM经审核的智能合约EVM软件包,react-app和rimble,易于设计。
- E - 以太坊的全面众包概述-它的历史,治理,未来计划和开发资源。
- Cobra - 用于以太坊虚拟机上智能合约的测试和部署的一个快速,灵活,简单的开发环境的框架。
- Fortmatic - 一种易于使用的SDK,无需扩展或下载即可构建web3 dApp。
- Portis - 具有SDK的非托管钱包,可轻松与DApp进行交互而无需安装任何东西。
- Kauri.io - 基于社区的Web3和新兴技术的知识平台。分享精选内容,并就最新,高质量的技术文章和系列进行协作。请查看“入门”社区以学习基础知识。
- dfuse -Slick区块链API可以构建世界一流的应用程序。
- Biconomy - 通过使用简单易用的SDK启用元交易来在dapp中进行无gas交易。
2、智能合约开发工具
智能合约语言:
- Solidity - 以太坊智能合约开发语言
- Vyper - 新的实验性python编程语言
智能合约开发框架:
- Truffle - 最受欢迎的智能合约开发,测试和部署框架。Truffle套件包括Truffle,Ganache和Drizzle。
- Embark - DAPP开发框架
- Waffle - 用于高级智能合约开发和测试的框架,体积小,灵活,快捷(基于e)
- Dapp - DApp开发的框架,DApple的继承者
- Etherlime - 用于Dapp部署的基于e的框架
- Parasol - 智能合约敏捷开发环境,包括测试,部署INFURA,自动合约文件等。它具有灵活,不受限制的设计以及无限的可定制性
- 0xcert - 用于构建去中心化应用程序的JavaScript框架
- OpenZeppelin SDK - 一套工具,可帮助您开发,编译,升级,部署智能合约并与之交互。
- sbt-ethereum - 一个基于选项卡的,基于文本的控制台,用于智能合约的交互和开发,包括钱包和ABI管理,ENS支持和高级Scala集成。
- Brownie - Brownie是一个Python框架,用于部署,测试以太坊智能合约并与之交互。
- Cobra - 用于EVM上智能合约的测试和部署的一个快速,灵活,简单的开发环境的框架。
集成开发环境:
- Remix - 具有内置静态分析功能的Web IDE,测试区块链VM,中文版
- 以太坊工作室 - Web IDE。内置浏览器区块链VM,Metamask集成(一键部署到Testnet / Mainnet),事务记录器和实时编码WebApp等众多其他功能。
- Atom - Atom编辑器,集成Solidity Linter等工具
- Vim solidity - Vim的solidity语法文件以确保可靠性
- Visual Studio Code - Visual Studio Code扩展,增加了对Solidity的支持
- Ethcode -Visual Studio Code扩展,用于编译,执行和调试Solidity&Vyper程序
- Intellij Solidity插件 - JetBrains IntelliJ Idea IDE(免费/商业)的开源插件,具有语法高亮,格式设置,代码完成等功能。
- YAKINDU Solidity Tools - 基于Eclipse的IDE。具有上下文相关的代码完成和帮助,代码导航,语法着色,内置编译器,快速修复和模板的功能。
- Eth Fiddle - 由The Loom Network开发的IDE ,可让您编写,编译和调试智能合约。易于共享和查找代码片段。
其他开发工具:
- Atra区块链服务 - Atra提供Web服务来帮助您在以太坊区块链上构建,部署和维护去中心化应用程序。
- Buidler - 可扩展的开发人员工具,可通过可靠地整合所需工具来帮助智能合约开发人员提高生产率。
- 用于VSCode的以太坊的Azure区块链开发套件 - VSCode扩展,允许创建智能合约并将其部署到Visual Studio Code中
区块链网络测试:
- ethnode - 运行一个开发用的以太坊节点(Geth或Parity),就像npm i -g ethnode && ethnode一样简单。
- Ganache - 用于以太坊区块链app开发,包含可视化界面和日志
- Kaleido - 使用Kaleido来建立联盟区块链网络。非常适合PoC和测试
- Besu私有链 - 在Docker容器中运行Besu节点的专用网络** Orion -PegaSys进行私人交易的组件** Artemis -PegaSys的以太坊2.0信标链的Java实现
- Cliquebait - 使用与真实区块链网络非常相似的Docker实例简化智能合约应用程序的集成和接受测试
- Local Raiden - 在Docker容器中运行本地Raiden网络以进行演示和测试
- 私有链部署脚本 - 专用PoA网络的现成部署脚本
- 以太坊局域网 - 专用PoW网络的现成部署脚本
- 基于Azure的以太坊 - 以太坊PoA联盟网络的部署和治理
- Google Cloud上的以太坊 - 基于工作量证明构建以太坊网络
- Infura - 以太坊访问API,支持Mainnet,Ropsten,Rinkeby,Goerli,Kovan
- CloudFlare分布式Web网关 - 通过Cloudflare提供对以太坊网络的访问,而不是运行自己的节点
- Chainstack - 共享和专用的以太坊节点即服务(Mainnet,Ropsten)
测试链以太水龙头:
- Rinkeby Faucet
- Kovan Faucet
- Ropsten Faucet
- Goerli Faucet
- Unversal Faucet
- Ne - 一个C#/.NET水龙头
3、以太坊访问工具
前端以太坊API:
- Web3.js -Javascript Web3,入门课程,电商实战课程
- E -Javascript Web3替代
- E - Javascript Web3替代,有用的实用程序和钱包功能
- lig为轻客户端优化的高级反应式JS库。
- Web3Wrapper -Typescript Web3替代
- Ethereumjs - 以太坊的实用程序功能集合,例如ethereumjs-util和ethereumjs-tx
- flex-contract和flex-ether - 现代化的,零配置的高级库,用于与智能合约进行交互并进行交易。
- ez-ens - 简单的零配置以太坊名称服务地址解析器。
- web3x - web3.js的TypeScript端口。好处包括小巧的构造和全类型的安全性,包括与合同进行交互时的安全性。
- [Nethereum](Nethereum-跨平台的以太坊开发框架
- dfuse - 使用dfuse以太坊API的TypeScript库
- Drizzle -Redux库将前端连接到区块链
- Tasit SDK - 一个JavaScript SDK,使用react native创建原生移动dapp
- Subproviders - 与Web3-provider-engine结合使用的几个有用的子提供商(包括用于向您的dApp添加Ledger硬件钱包支持的LedgerSubprovider)
- web3-react - 用于构建单页以太坊dApp的React框架
- ethvtx - 支持以太坊&框架无关的Redux存储配置。
- elm-ethereum - Javascript的强类型替代
- purescript-web3 - Javascript的强类型替代
- ChainAbstractionLayer - 使用单个界面与不同的区块链(包括以太坊)进行通信。
- Delphereum - 以太坊区块链的Delphi接口,允许开发适用于Windows,macOS,iOS和Android的本地dApp。) - 跨平台的以太坊开发框架
后端以太坊API:
- Web3.py - Python Web3,在线课程
- Web3.php - PHP Web3,在线课程
- Ethereum-php - PHP Web3
- Web3j - Java Web3,在线课程
- Nethereum - .Net Web3,在线课程
- E -Ruby Web3
- Web3.hs -Haskell Web3
- KEthereum -Kotlin Web3
- Eventeum - Java编写的以太坊智能合约事件和后端微服务之间的桥梁
- Ethereumex - 以太坊区块链的Elixir JSON-RPC客户端
- Ethereum-jsonrpc-gateway - 一个网关,允许您运行多个以太坊节点以实现冗余和负载平衡。可以作为Infura的替代品(或在其之上)运行。用Golang写。
- EthContract - 一组帮助在Elixir中查询ETH智能合约的助手方法
- 以太坊合约服务 - 一种MESG服务,可根据其地址和ABI与任何以太坊合约进行交互。
- 以太坊服务 - 一种MESG服务,用于与以太坊中的事件进行交互并与其进行交互。
- Marmo - Python中,JS和Java SDK,以简化与以太坊的相互作用。使用中继器将交易成本分担给中继器。
开箱即用工具:
- Truffle Boxes -以太坊生态系统的打包组件
- Besu专用网络 - 在Docker容器中运行Besu节点的专用网络
- 测试链- 预配置的.NET开发链,POA共识** Blazor / Blockchain Explorer -Wasm区块链浏览器(功能示例)
- Local Raiden - 在Docker容器中运行本地Raiden网络以进行演示和测试
- 专用网络部署脚本 - 专用PoA网络的现成部署脚本
- Parity Demo - PoA教程 - 分步教程,用于构建具有2个节点且具有Parity授权回合共识的PoA测试链
- 以太坊局域网 - 专用PoW网络的现成部署脚本
- Kaleido - 使用Kaleido来建立联盟区块链网络。非常适合PoC和测试
- Cheshire - CryptoKitties API和智能合约的本地沙箱实现,可以作为Truffle Box使用
- aragonCLI -aragonCLI用于创建和开发Aragon应用程序和组织。
- ColonyJS -JavaScript客户端,提供用于与Colony Network智能合约进行交互的API。
- ArcJS - 便于javascript应用程序访问DAOstack Arc以太坊智能合约的库。
- Arkane Connect -JavaScript客户端,提供用于与Arkane Network进行交互的API,Arkane Network是用于构建用户友好的dapp的钱包提供商。
- Blocknative -A是可嵌入的小部件,可提高Dapp的可用性。该工具以编程方式识别并概述了清晰的操作,供最终用户在与MetaMask进行交互时应遵循的操作,以克服(甚至防止)常见的陷阱和障碍。
以太坊ABI工具:
- ABI解码器 - 用于解码以太坊交易中的数据参数和事件的库
- abi-gen - 从合约ABI生成Typescript合同包装。
- 以太坊ABI UI - 从以太坊合约ABI自动生成UI表单字段定义和相关的验证器
- headlong -Java中类型安全的合约ABI和递归长度前缀库
- 一键式dApp - 使用ABI在唯一的URL上立即创建dApp。
- Truffle Pig- 一种开发工具,提供简单的HTTP API来查找和读取Truffle生成的合同文件,以便在本地开发期间使用。通过http提供新的合同ABI。
- 以太坊合约服务 - 一种MESG服务,可根据其地址和ABI与任何以太坊合约进行交互。
- Nethereum-CodeGenerator - 基于Web的生成器,可基于Solidity智能合约创建基于Nethereum的C#接口和服务。
4、以太坊基础设施
以太坊客户端:
- Besu -在Apache 2.0授权开发和用Java编写的以太坊开源客户端。该项目由Hyperledger托管。
- Geth -Go客户
- Parity - Rust客户
- Aleth -C ++客户端
- Nethermind -.NET Core客户端
- Infura -一种托管服务,提供符合以太坊客户端标准的API,中文文档
- Trinity - 基于PY-EVM实现的Python客户端
- Ethereumjs - 使用ethereumjs-vm的JS客户端
- Seth -Seth是一个以太坊客户端工具,就像“命令行的MetaMask”一样
- Mustekala -Metamask的以太坊轻客户端项目
- Exthereum -Elixir客户
- EWF Parity -Tobalaba测试网络的Energy Web Foundation客户端
- Quorum - JP Morgan授权的以太坊实现,支持数据隐私
- Mana - Elixir实现的以太坊客户端。
- Chainstack - 提供共享和专用Geth节点的托管服务
- QuikNode - 具有API访问和节点即服务的区块链开发人员云。
存储:
- IPFS -分散存储和文件引用
- Mahuta - 具有附加搜索功能的IPFS存储服务,以前是IPFS-Store
- OrbitDB - IPFS之上的分散式数据库
- JS IPFS API - 使用JavaScript实现的IPFS HTTP API客户端库
- TEMPORAL - 易于在IPFS和其他分布式/分散式存储协议中使用的API
- Swarm - 分布式存储平台和内容分发服务,以太坊web3栈原生底层
- Infura -托管IPFS API网关和固定服务
- 3Box存储 - 用于用户控制的分布式存储的api。建立在IPFS和Orbitdb之上。
讯息传递:
- Whisper -DApp相互通信的通信协议,这是以太坊web3堆栈的本机基础层服务
- DEVp2p协议 -运行以太坊/Whisper的节点之间的对等通信
- Pydevp2p -RLPx网络层的Python实现
- 3Box Threads -API,使开发人员能够持久地实现IPFS,或在内存中实现对等消息传递。
5、以太坊测试工具
- Truffle Teams - 零配置持续集成Truffle项目
- Solidity Code Coverage - SOlidity代码覆盖率工具
- Solidity Coverage - Solidity智能合约代码覆盖率工具
- SOlidity Function Profiler - Solidity合约功能分析器
- Sol-profiler - 替代和更新的Solidity智能合约分析器
- Espresso - 快速,并行,热加载的Solidity测试框架
- ETH测试仪 - 用于测试以太坊应用程序的工具套件
- Cliquebait - 使用与真实区块链网络非常相似的Docker实例简化智能合约应用程序的集成和接受测试
- Hevm - hevm项目是以太坊虚拟机(EVM)的实现,专门用于单元测试和调试智能合约
- 以太坊图调试器 - Solidity图形调试器
- Tenderly CLI - 通过可读的堆栈跟踪加快开发速度
- Solhint - Solidity linter,为智能合约验证提供安全性,样式指南和最佳实践规则
- Ethlint -Linter,用于识别和修复Solidity(以前为Solium)中的样式和安全问题
- Decode - npm软件包,它将tx提交到本地testrpc节点的解析,使它们更具可读性和易懂性
- truffle-assertions - 一个npm软件包,其中包含其他断言和实用程序,用于测试Truffle项目的Solidity智能合约。最重要的是,它增加了断言是否已发出特定事件的能力。
- Psol - 具有mu样式的语法,宏,条件编译和自动远程依赖关系包含的Solidity词法预处理器。
- solpp - 具有全面指令和表达语言,高精度数学和许多有用的辅助函数的Solidity预处理器和展平器。
- Decode and publish – 解码和发布原始的以太坊TX。类似于
- Doppelgänger -一个用于在单元测试期间模拟智能合约依赖关系的库。
- rocketh - 一个简单的库来测试以太坊智能合约,允许使用任何web3库和测试选择器。
- pytest-cobra -PyTest插件,用于测试以太坊区块链的智能合约。
6、以太坊安全工具
- MythX - 以太坊开发人员的安全验证平台和工具生态系统
- Mythril -开源EVM字节码安全性分析工具
- Oyente - 替代静态智能合约安全性分析
- Securify - 以太坊智能合约安全扫描器
- SmartCheck - 静态智能合约安全分析器
- Ethersplay -EVM反汇编程序
- Evmdis -替代EVM反汇编程序
- Hydra - cryptoeconomic合约安全性框架,去中心化漏洞赏金
- Solgraph - 可视化Solidity控制流程以进行智能合约安全性分析
- Manticore - 智能合约和二进制文件上的符号执行工具
- Slither - 一个Solidity静态分析框架
- Adelaide - SECBIT静态分析扩展到Solidity编译器
- solc-verify - 用于Solidity智能合约的模块化验证器
- Solidity Security Blog-已知攻击媒介和常见反模式的完整列表
- Buggy ERC20代币清单 - 受影响的代币中ERC20智能合约中的漏洞的集合
- 免费的智能合约安全审核- Callisto Network提供的免费的智能合约安全审核
- Piet - 可视化Solidity体系结构分析器
7、以太坊监控工具
- Alethio - 一个先进的以太坊分析平台,提供实时监控,洞察和异常检测,令牌指标,智能合约审计,图形可视化和区块链搜索。还可以探索以太坊去中心化交易所的实时市场信息和交易活动。
- amberda - 提供实时监控,洞察和异常检测,代币指标,智能合约审计,图形可视化和区块链搜索。
- Neufund -智能合约监视-一种监视大量智能合约和交易的工具
- Scout - 以太坊上智能合约的活动和事件日志的实时数据馈送
- Tenderly - 一种平台,可通过Web仪表板为用户提供可靠的智能合约监视和警报,而无需用户托管或维护基础架构
- Chainlyt - 使用解码的交易数据探索智能合约,查看合约的使用方式,并通过特定功能调用搜索交易
- BlockScout - 一种用于检查和分析基于EVM的区块链的工具。唯一以太坊网络的功能齐全的区块链浏览器。
- Terminal - 用于监视dapp的控制面板。终端可用于监视用户,dapp,区块链基础设施,交易等。
- Ethereum-watcher - 一个用Golang编写的可扩展框架,用于侦听链上事件并做一些响应。
8、其他以太坊开发工具
- aragonPM - 由aragonOS和Ethereum支持的去中心化软件包管理器。aragonPM支持对软件包升级进行分散式管理,从而消除集中式故障点。
- Truffle boxes - 用于快速构建DApp的打包组件。
- Cheshire - CryptoKitties API和智能合约的本地沙箱实现,可以作为松露盒使用
- Solc -Solidity编译器
- Sol-compiler - 项目级Solidity编译器
- Solidity CLI - 更快,更轻松,更可靠地编译Solidity代码
- Solidity Flattener - 将Solidity项目组合到平面文件实用程序。对于可视化导入的合同或在Etherscan上验证合同很有用
- Sol-merger - 替代方案,将所有导入合并到单个文件中以签订固定性合同
- RLP - JavaScript中的递归长度前缀编码
- eth-cli - 一系列CLI工具的帮助以太坊学习和开发
- Ethereal - Ethereal是用于管理以太坊中常见任务的命令行工具
- Eth crypto - 以太坊的加密javascript函数以及将其与web3js和solidity结合使用的教程
- Parity Signer - 移动应用程序允许签署交易
- py-eth - 以太坊生态系统的Python工具集合
- truffle-flattener - 合并在Truffle下开发的实体文件及其所有依赖项
- Decode - npm软件包,它将tx提交到本地testrpc节点的解析,使它们更具可读性和易懂性
- TypeChain - 以太坊智能合约的TypeScript绑定
- EthSum - 一个简单的以太坊地址校验和工具
- 基于PHP的区块链索引器 - 允许索引块或侦听PHP中的事件
- Purser - JavaScript的基于以太坊的通用钱包工具。支持软件,硬件和Metamask-使所有钱包进入dApp开发的一致且可预测的界面。
- Node-Metamask - 从node.js连接到MetaMask
- Solidity-docgen - Solidity项目的文档生成器
- 以太坊ETL - 将以太坊区块链数据导出到CSV或JSON文件
- prettier-plugin - solidity-用于格式化Solidity代码的漂亮插件
- Unity3dSimpleSample - 以太坊和Unity集成演示
- Flappy - Ethereum和Unity集成演示/样本
- Wonka -Nethereum业务规则引擎演示/样本
- Resolver-Engine - 一组用于标准化框架中Solidity导入和工件解析的工具。
- eth-reveal - 检查事务的节点和浏览器工具-使用在线找到的ABI尽可能解码方法,事件日志和任何还原原因。
- Ethereum-tx-sender - 一个用Golang编写的有用的库,用于可靠地发送交易-提取一些棘手的底层细节,例如Gas优化,随机数计算,同步和重试。
9、以太坊智能合约标准
- ERC-20 - 同质化通证标准
- ERC-721 - 非同质化通证标准,在线课程
- ERC-777 - 改进的同质化通证标准
- ERC-918 - 可挖矿通证标准
- ERC-165 - 创建一种标准方法来发布和检测智能合约实现的接口。
- ERC-725 - 密钥管理和执行的代理合同,用于建立区块链身份。
- ERC-173 - 合同所有权的标准接口
10、以太坊智能合约开发库
- Zeppelin - 包含经过测试的可重用智能合约,例如SafeMath和OpenZeppelin SDK库,以实现智能合约的可升级性
- cryptofin-solidity - 一系列Solidity库,用于在以太坊上构建安全且节约gas的智能合约。
- Modular Libraries - 一组使用以太坊虚拟机在区块链上使用的软件包
- DateTime库 - 节省gas的Solidity日期和时间库
- Aragon - DAO协议。包含aragonOS智能合约框架,重点关注可升级性和治理
- ARC - DAO和DAO堆栈基础层的操作系统。
- 0x - DEX协议
- 带有证明的代币库 - 包含代币合约wrt的正确性证明。给定的规格和高级属性
- Provable API - 提供使用Provable服务的合同,允许进行链下操作,数据获取和计算
11、以太坊Layer 2开发
支付/状态通道:
- 以太坊支付通道 - 50行代码中的以太坊支付通道
- µRaiden文档 - µRaiden发送者/接收者用例的指南和示例
Plasma:
- Learn Plasma - 网站作为节点应用程序,始于康奈尔大学的2018 IC3-以太坊加密新手训练营,涵盖所有Plasma变体(MVP /现金/借记)
- Plasma MVP - OmiseGO的最小可行产品实现
- Plasma MVP Golang - Golang版本的最小可行产品实现
- Plasma Guard - 在需要时自动观察并挑战或退出Omisego等离子网络。
- Plasma OmiseGo Watcher - 与Plasma OmiseGo网络互动并通知任何拜占庭事件。
侧链:
- POA网络
- POA桥
- POA桥UI
- POA桥合约
- Loom网络
- Matic网络
zkSNARKs:
- ZoKrates - 以太坊上的zkSNARKS的工具箱
- AZTEC协议 - 以太坊网络上的机密交易,在以太坊主网上实时实施
- Nightfall - 将任何ERC-20 / ERC-721代币设为私人-开源工具和微服务
- 代理重新加密(PRE)** NuCypher网络 - 代理重新加密网络,可在去中心化系统中实现数据保密** pyUmbral - 门限代理重新加密密码库
- 全同态加密(FHE)** NuFHE -GPU加速的FHE库
预建的UI组件:
- aragonUI - 一个包含Dapp组件的React库
- com - 一个包含Dapp组件的React库
- ui.decen - 一个包含Dapp组件的React库
- dapparatus - 可重用的React Dapp组件
- Metamask UI - Metamask React组件
- DappHybrid - 用于基于Web的分散式应用程序的跨平台混合托管机制
- Ne - 跨平台桌面钱包示例
- eth按钮 - 极简主义捐赠按钮
- Rimble设计系统 - 适用于去中心化应用的组件和设计标准。
- 3Box插件 - 插入用于社交功能的react组件。包括评论,个人资料和消息。
12、以太坊开发模式和最佳实践
智能合约开发模式:
- Dappsys:安全、简单和灵活的以太坊合约构建模块白名单可升级的ERC20代币ERC20-Token-VaultRole-based-access-control身份验证为MakerDAO或TAO提供构建块Dapp-a-day 1-10和Dapp-a-day 11-25中描述了用法
- OpenZeppelin合约:Solidity语言编写的可重用和安全智能合同的开放框架可能是使用最广泛的智能合约库与Dappsys相似,更多地集成到Truffle框架中有关安全审核最佳实践的博客
- 汇编高级工作室
- 简明以太坊Multisig - 特别是部分好处
- CryptoFin Solidity审核清单 - 常见发现清单,以及审核主网启动合同时要注意的问题。
- aragonOS:用于构建DAO,Dapp和协议的智能合约框架可升级性:智能合约可以升级到新版本权限控制:通过使用auth和authP修饰符,您可以保护功能,以便只有其他应用或实体才能访问它转发器:aragonOS应用程序可以将其执行操作的意图发送给其他应用程序,以便在满足一组要求的情况下转发意图
可升级性:
- von Elena Dimitrova的博客
- Aragon研究博客库驱动的开发Solidity代码部署高级技巧
- OpenZeppelin代理库
原文链接: