以太坊开发者工具的最新终极清单,用于在以太坊上开发应用程序的可用工具,组件,框架和平台的指南。
对于任何开发者,无论你是一个睁大眼睛的Web3新手还是一个头发灰白的OG加密无政府主义技术霸主,Github都是你的朋友。特别是ConsenSys Github可能是你在整个互联网上找到的最明确的Ethereum开发工具库。
无论是基础知识,编码语言,IDE,API,ABI,框架,最佳实践,智能合约标准,测试工具还是faucets,ConsenSys Github都能满足你现在开始在以太坊区块链上构建去中心化应用所需的一切。
ConsenSys的产品经理推动了这个清单的创建,他们认为需要在新的和经验丰富的区块链开发人员之间更好地共享工具,开发模式和组件。
新开发者从这里开始!
- Solidity:最流行的智能合约语言。
- Truffle:最流行的智能合约开发,测试和部署框架。通过NPM安装CLI,然后从这里开始编写你的第一份智能合约。
- Metamask:与Dapps交互的Chrome扩展钱包。
- Truffle boxes:以太坊生态系统的包装组件。
- EthHub.io:以太坊的全面概述,包括其历史,治理,未来计划和开发资源。
- Infura:可扩展,安全,可靠地访问以太坊网络。
开发工具/tool
智能合约开发工具/tool
智能合约语言/language
- Solidity:以太坊智能合约语言。
- Bamboo:一种变形的智能合约语言。
- Vyper:新的实验性pythonic编程语言。
- LLL:低级Lisp语言。
- Flint:正在开发的新语言,具有安全功能,包括资产类型,状态转换和安全整数。
框架/Frameworks
- Truffle:最受欢迎的智能合约开发,测试和部署框架。Truffle套件包括Truffle, Ganache, and Drizzle. 深入了解Truffle
- Embark:DApp开发框架。
- Waffle:高级智能合约开发和测试框架,小巧,灵活,快速(基于ethers.js)。
- Dapp:DApp开发框架,DApple的继任者。
- Populus:以太坊开发框架中最可爱的动物图片。
- Etherlime:基于ethers.js的Dapp部署框架。
- Parasol:敏捷智能合约开发环境,包括测试,INFURA部署,自动合约文档等。它具有灵活和不受欢迎的设计,可无限制地定制。
- 0xcert:用于构建去中心化应用程序的JavaScript框架。
IDEs
- Remix:内置静态分析的Web IDE,测试区块链VM。
- Superblocks Lab:内置浏览器blochain VM,Metamask集成(一键部署到Testnet/Mainnet),交易记录器和实时代码WebApp以及许多其他功能。
- Atom:使用Atom编辑器Atom Solidity Linter,Etheratom,autocomplete-solidity,和language-solidity包。
- Pragma:非常简单的Web IDE,用于实现solidity,以及自动生成的智能合约接口。
- Vim solidity:Vim solidity 语法文件。
- Visual Studio Code:Visual Studio Code扩展,增加了对Solidity的支持。
- Intellij Solidity Plugin:开源插件JetBrains IntelliJ Idea IDE (free/commercial)语法高亮,格式化,代码完成等。
- YAKINDU Solidity Tools:基于Eclipse的IDE。具有上下文敏感的代码完成和帮助,代码导航,语法着色,内置编译器,快速修复和模板。
- Eth Fiddle:由The Loom Network开发的IDE,允许你编写,编译和调试智能合约。易于共享和查找代码段。
测试区块链网络/Test
- Ganache:用于测试以太坊区块链的应用程序,带有可视UI和日志。
- Kaleido:使用Kaleido打造财团区块链网络。非常适合PoC和测试。
- Pantheon Private Network:在Docker容器中运行Pantheon节点的专用网络。
- Orion:PegaSys执行私人交易的组件。
- Artemis:PegaSys的以太坊2.0信标链的Java实现。
- Cliquebait:使用非常类似于实际区块链网络的docker实例简化集成并接受智能合约应用程序的测试。
- Local Raiden:在Docker容器中运行本地Raiden网络,以进行演示和测试。
- Private networks deployment scripts:私有PoA网络的即插即用部署脚本。
- Local Ethereum Network:私有PoW网络的即插即用部署脚本。
- Ethereum on Azure:联盟链的部署和治理以太网PoA网络。
- getho:DApp开发平台,包括PoA私有区块链和智能合约测试工具。
- Ethereum on Google Cloud:基于PoW构建以太坊网络。
Test Ether faucets
- Rinkeby faucet
- Kovan faucet
- Ropsten faucet
- Universal faucet
- Nethereum.Faucet:一个 C#/.NET faucet。
以太坊的交互/Communicating
以太坊前端APIs/Frontend
-
Web3.js:Javascript Web3
- Eth.js:Javascript Web3替代方案。
- Ethers.js:Javascript Web3替代,有用的实用程序和钱包功能。
- Web3Wrapper:Typescript Web3替代方案。
- Ethereumjs:以太坊的实用函数集合如ethereumjs-util和ethereumjs-tx。
- flex-contract和flex-ether现代零配置的用于与智能合约交互和进行交易的高级别库。
- ez-ens简单的零配置以太坊名称服务地址解析器。
- web3x:web3.js的TypeScript端口。优势包括包括与合约交互时微服务构建和完整类型安全。
- Nethereum:跨平台的以太坊开发框架。
- Drizzle:使用Redux库将前端连接到区块链。
- Tasit SDK:一个JavaScript SDK,用于使用React Native制作原生移动端的以太坊dapps。
- Subproviders:与Web3-provider-engine 结合使用的几个有用的子提供程序,包括用于为你的dApp添加Ledger硬件钱包支持的LedgerSubprovider。
- web3-react:用于构建单页以太坊dApp的React框架。
- Vortex:一个Dapp-ready Redux Store。借助WebSockets,智能和动态后台数据刷新。Truffle和Embark。
- 其他Javascript替代品
以太坊后端APIs/Backend
- Web3.py:Python Web3
- Web3.php:PHP Web3
- Ethereum-php:PHP Web3
- Web3j:Java Web3
- Nethereum:.Net Web3
- Ethereum.rb:Ruby Web3
- Web3.hs:Haskell Web3
- KEthereum:Kotlin Web3
- Pyethereum:以太坊项目的Python核心库。
- Eventeum:以太坊智能合约事件和后端微服务之间的桥梁,由Kauri用Java编写。
- Ethereumex:Ethereum区块链的Elixir JSON-RPC客户端。
- EthContract:帮助查询Elixir中的ETH智能合约的一组帮助方法。
Bootstrap/out of box tools
- Truffle boxes:以太坊生态系统的打包组件。
- Pantheon Private Network:在Docker容器中运行Pantheon节点的专用网络。
- Testchains:预配置的.NET devchains,用于快速响应(PoA)。
- Blazor/Blockchain Explorer:Wasm区块链资源管理器(功能样本)。
- Local Raiden:在Docker容器中运行本地Raiden网络,以进行演示和测试。
- Private networks deployment scripts:私有PoA网络的即插即用部署脚本。
- Parity Demo-PoA Tutorial:构建具有2个节点的PoA测试链的分步教程,具有奇偶校验授权共识。
- Local Ethereum Network:私有PoW网络的即插即用部署脚本。
- Kaleido:使用Kaleido打造财团区块链网络。非常适合PoC和测试。
- Cheshire:CryptoKitties API和智能合约的本地沙箱实现,可作为Truffle Box使用。
- Aragon CLI:Aragon CLI用于创建和开发Aragon应用程序。
- ColonyJS:JavaScript客户端,提供用于与Colony Network智能合约交互的API。
- ArcJS:便于javascript应用程序访问DAOstack Arc以太坊智能合约的库。
Ethereum ABI (Application Binary Interface) tools
- ABI decoder:用于解码以太坊交易中的数据参数和事件的库。
- ABI-gen:从合约ABI生成Typescript合约包装。
- Ethereum ABI UI:从以太坊合约ABI自动生成UI表单字段定义和相关验证器。
- headlong:Java中的类型安全合约ABI和递归长度前缀库。
- One Click dApp:使用ABI在唯一的URL上即时创建dApp。
- Truffle Pig:一种开发工具,提供简单的HTTP API,用于查找和读取Truffle生成的合约文件,以便在本地开发期间使用。通过http提供新合约ABI。
模式和最佳实践/Patterns & Best Practices
智能合约开发的模式/Patterns for Smart Contract Development
-
Dappsys: 安全,简单,灵活的以太坊合约构建模块
- 有解决以太坊/ Solidity常见问题的方法,例如, eg.
- 为MakerDAO或The TAO提供构建模块。
- 在创建自己未经测试的解决方案之前,应该咨询。
- 使用情况见Dapp-a-day 1-10和Dapp-a-day 11-25
-
OpenZeppelin: Solidity语言中可重用且安全的智能合约的开放框架。
- 可能是最广泛使用的库和智能合约。
- 与Dappsys类似,更多地集成到Truffle框架中。
- 关于安全审计的最佳实践的博客
- Advanced Workshop with Assembly
- Simpler Ethereum Multisig:特别是Benefits。
- CryptoFin Solidity Auditing Checklist:常见审查结果清单,以及审核主网启动合约时需要注意的问题。
-
aragonOS: 构建DAO,Dapps和协议的智能合约框架
- 易读性:智能合约可以升级到更新版本。
- 权限控制:通过使用
auth
和authP
修饰符,你可以保护功能,只有其他应用程序或实体才能访问它。 - 转发器:aragonOS应用程序可以将其意图发送给其他应用程序,以便在满足一系列要求时转发意图。
可升级性/Upgradebility
基础设施/Infrastructure
客户端/Ethereum Clients
- Pantheon:PegaSys的Java客户端。
- Geth:Go客户端。
- Parity:Rust客户端。
- Aleth:C++客户端。
- Pyethapp:使用pyethereum的Python客户端。
- Trinity:使用py-evm的Python客户端。
- Ethereumjs:使用ethereumjs-vm的JS客户端。
- Ethereumj:以太坊基金会的Java客户端。
- Harmony:EtherCamp的Java客户端。
- Seth:Seth是一个以太坊客户端工具,就像命令行的MetaMask。
- Mustekala:Metamask的以太坊轻客户端项目。
- Exthereum:Elixir客户端。
- EWF Parity:Tobalaba测试网络的Energy Web Foundation客户端。
- Quorum:JP Morgan支持的允许实施以太坊支持数据隐私。
- Mana:用Elixir编写的以太坊全节点实现。
存储/Storage
-
IPFS:去中心化存储和文件引用。
- IPFS-Store:具有附加搜索功能的IPFS存储服务。
- OrbitDB:IPFS之上的去中心化数据库。
- JS IPFS API:IPFS HTTP API的客户端库,用JavaScript实现。
- TEMPORAL:易于使用的API到IPFS和其他分布式/去中心化存储协议。
- Swarm:分布式存储平台和内容分发服务,以太坊web3堆栈的本机基础层服务。
消息传递/Messaging
- Whisper:DApps相互通信的通信协议,是以太坊web3堆栈的本机基础层服务。
- DEVp2p Wire Protocol:运行以太坊/Whisper的节点之间的对等通信。
- Pydevp2p:RLPx网络层的Python实现。
测试工具/Testing Tools
- Solidity code coverage:Solidity代码覆盖率工具。
- Solidity coverage:Solidity智能合约的替代代码覆盖范围。
- Solidity function profiler:Solidity智能合约分析器。
- Sol-profiler:备选和更新的Solidity智能合约分析器。
- Espresso:快速,并行化,热重载solidity测试框架。
- Eth tester:用于测试以太坊应用程序的工具套件。
- Cliquebait:使用非常类似于实际区块链网络的docker实例简化集成并接受智能合约应用程序的测试。
- Hevm:hevm项目是以太坊虚拟机(EVM)的一个实现,专门用于单元测试和调试智能合约。
- Ethereum graph debugger:Solidity图形调试器。
- Tenderly CLI:利用人类可读的堆栈跟踪加速你的开发。
- Solhint:为智能合约验证提供安全性,样式指南和最佳实践规则。
- Ethlint:用于识别和修复Solidity(以前称Solium)中的样式和安全问题的Linter。
- Decode:npm包解析提交给本地testrpc节点的tx,使其更易读,更易理解。
- truffle-assertions:一个带有额外断言和实用程序的npm包,用于测试与松露的Solidity智能合约。最重要的是,它增加了断言特定事件是否已经发出的能力。
- Psol:具有mustache.js样式语法,宏,条件编译和自动远程依赖包含的Solidity词法预处理器。
- solpp:Solidity预处理器和flattener,具有全面的指令和表达式语言,高精度数学和许多有用的辅助函数。
- Decode and Publish:解码并发布原始以太坊tx,https://live.blockcypher.com/btc-testnet/decodetx/
- Doppelgänger:用于在单元测试期间模拟智能合约依赖关系的库。
- rocketh:一个简单的lib来测试以太坊智能合约,允许使用你选择的任何web3 lib和测试运行器。
安全工具/Security Tools
- MythX:以太坊开发人员的安全验证平台和工具生态系统。
- Mythril Classic:开源EVM字节码安全分析工具。
- Oyente:替代静态智能合约安全性分析。
- Securify:以太坊智能合约的安全扫描程序。
- SmartCheck:静态智能合约安全分析器。
- Porosity:基于区块链的以太坊智能合约的反编译器和安全分析工具。
- Ethersplay:EVM反汇编程序。
- Evmdis:替代EVM反汇编程序。
- Hydra:加密经济合约安全框架,去中心化安全奖励。
- Solgraph:可视化智能合约安全性分析的Solidity控制流程。
- Manticore:智能合约和二进制文件的符号执行工具。
- Slither:一个Solidity静态分析框架。
- Adelaide:Solidity编译器的SECBIT静态分析扩展。
- Solidity security blog:已知攻击向量和常见反模式的综合列表。
- Awesome Buggy ERC20 Tokens:ERC20与Token智能合约中的漏洞集合。
- Free Smart Contract Security Audit:来自Callisto Network的免费智能合约安全审计。
监控/Monitoring
- Neufund - Smart Contract Watch:一种监控大量智能合约和交易的工具。
- Scout:以太坊上智能合约的活动和事件日志的实时数据Feed。
- Chainlyt:使用已解码的交易数据探索智能合约,查看合约的使用方式以及使用特定函数调用搜索交易。
其他工具/Other Miscellaneous Tools
-
Truffle boxes:用于快速构建DApps的打包组件。
- Cheshire:CryptoKitties API和智能合约的本地沙箱实现,可作为Truffle Box使用。
- 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下开发的Concats solidity文件及其所有依赖项。
- Decode:npm包解析提交给本地testrpc节点的tx,使其更易读,更易理解。
- TypeChain:以太坊智能合约的Typescript绑定。
- EthSum:一个简单的以太坊地址校验和工具。
- PHP based Blockchain indexer:允许索引块或在PHP中监听事件。
- Purser:基于以太坊的钱包的JavaScript通用钱包工具。支持软件,硬件和Metamask,将所有钱包都集成到dApp开发的一致且可预测的界面中。
- Node-Metamask:从node.js连接到MetaMask。
- Solidity-docgen:Solidity项目的文档生成器。
- Ethereum ETL:将以太坊区块链数据导出为CSV或JSON文件。
- prettier-plugin-solidity:用于格式化Solness代码的更漂亮的插件。
- EthToolbox:一款为以太坊开发人员提供离线工具的网络应用程序。 EC恢复,地址格式化程序,单位转换器,哈希函数,密钥生成器等。
- Unity3dSimpleSample:以太坊和Unity集成演示。
- Flappy:以太坊和Unity集成演示/示例。
- Wonka:Nethereum业务规则引擎演示/示例。
智能合约标准库/Smart Contract Standards & Libraries
ERCs:Ethereum Request for Comment资料库
热门智能合约库/Popular Smart Contract Libraries
- Zeppelin:包含经过测试的可重用智能合约SafeMath和ZeppelinOS library可升级智能合约。
- cryptofin-solidity:一系列Solidity库,用于在以太坊上构建安全,高效的智能合约。
- Modular Libraries:一组使用以太坊虚拟机在区块链上使用的软件包。
- DateTime Library:一个节气的Solidity日期和时间库。
- Aragon:DAO协议。包含aragonOS smart contract framework重点关注可升级性和治理。
- ARC:DAO的操作系统和DAO堆栈的基础层。
- 0x:DEX protocol
- Token Libraries with Proofs:包含通证合约的正确性证明。给定规格和高级属性。
第二层基础架构的开发人员指南/Developer Guides for 2nd Layer Infrastructure
可伸缩性/Scalability
支付和状态 / Payment/State Channels
- Ethereum Payment Channel:以太网支付通道50行代码。
- µRaiden Documentation:µRaiden发送者/接收者用例的指南和样本。
Plasma
- Learn Plasma:网站作为节点应用程序,开始于康奈尔大学2018年IC3-Ethereum Crypto训练营,涵盖所有Plasma variants (MVP/Cash/Debit)。
- Plasma MVP:OmiseGO对最小可行Plasma的研究实施。
- Plasma MVP Golang:Golang实现和最小可行Plasma规范的扩展。
- Plasma Cash:简单的Plasma现金实施。
侧链/Side-Chains
隐私Privacy / 保密Confidentiality
zkSNARKs
- ZoKrates:以太坊上的zkSNARKS工具箱。
- The AZTEC Protocol:以太坊网络上的机密交易,在以太坊主网上实施。
预编译UI组件/Prebuilt UI Components
- ui.aragon.org:包含Dapp组件的React库。
- components.bounties.network:包含Dapp组件的React库。
- lorikeet.design:包含Dapp组件的React库。
- ui.decentraland.org:包含Dapp组件的React库。
- dapparatus:可重复使用的React Dapp组件。
- Metamask ui:Metamask React组件。
- DappHybrid:基于Web的去中心化应用程序的跨平台混合托管机制。
- Nethereum.UI.Desktop:跨平台桌面钱包示例。
======================================================================
分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:
- java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
- php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
- python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
- 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
- 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
- ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
- C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
- EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
- java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
- php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
- tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。
汇智网原创翻译,转载请标明出处。这里是以太坊开发者工具的最新清单