链就码林高手

本页为读者提供以太坊应用程序开发的工具、组件、模式以及平台列表。

本列表译自ConsenSys,促进开发者之间工具、开发模式和组件的共享十分有必要。

感谢ConsenSys的整理!

极速上手工具

  • Solidity 主流智能合约编程语言

  • Truffle 主流智能合约开发、测试和部署框架。通过npm安装cli,然后就可以开始编写您的第一个智能合约

  • Metamask 可与Dapps进行交互的Chrome插件钱包

  • Truffle boxes 以太坊生态系统的打包组件

  • OpenZeppelin Starter Kits 多合一入门工具箱,供开发人员快速上手基于智能合约的应用程序。包括Truffle、OpenZeppelin SDK、OpenZeppelin/contracts-ethereum-package EVM软件包、react-app和rimble

  • EthHub.io 针对以太坊历史、治理、发展计划和开发资源的全面介绍

  • Cobra 快速,灵活、简单的以太坊智能合约开发环境框架,在以太坊虚拟机 (EVM) 上进行测试和部署

  • Fortmatic 易于使用的SDK,无需扩展或下载即可构建web3 DApp

  • Portis 配备SDK的非托管钱包,可轻松与DApp进行交互而无需其他安装

  • Kauri.io 基于社区的Web3和新兴技术知识平台

  • dfuse 易用的区块链API,构建一流的DApp

开发工具

智能合约开发

智能合约语言

  • Solidity - 以太坊智能合约编程语言

  • Vyper - 实验性python式编程语言

  • Flint - 具有安全功能的新智能合约编程语言,包含资产类型、状态转换和安全整数,仍处于开发阶段

框架

  • Truffle - 主流智能合约开发、测试和部署框架。Truffle套件包括Truffle、Ganache, and Drizzle. (教程

  • Embark - DApp开发框架

  • Waffle - 小型、灵活、快速的高级智能合约开发和测试框架(基于ethers.js)

  • Dapp - DApp开发框架

  • Etherlime - 基于ethers.js的DApp部署框架

  • Parasol - 具备测试、Infura部署、自动合约文档等功能的智能合约开发环境

  • 0xcert - 编写DApp的JavaScript框架

  • OpenZeppelin SDK - 一套协助开发、编译、升级、部署智能合约并与之交互的工具

  • sbt-ethereum - 制表符完整的、基于文本的控制台,用于智能合约交互和开发,包括钱包和ABI管理、ENS支持以及高级Scala集成

  • Brownie - Python框架,用于以太坊智能合约部署、测试、交互

  • Cobra - 灵活简易的以太坊智能合约开发环境框架,在EVM上进行测试和部署

IDEs

  • Remix - 具有内置静态分析功能的Web IDE,可测试区块链虚拟机

  • Ethereum Studio - 网页IDE。内置浏览器区块链虚拟机,Metamask集成(一键测试网/主网部署),包括事务记录器和实时编码WebApp等众多其他功能。

  • Atom - 原子编辑器

  • Vim solidity - Solidity Vim语法文件

  • Visual Studio Code - Visual Studio Code扩展,增加对Solidity的支持

  • Ethcode - Visual Studio Code扩展,用于编译、执行和调试Solidity&Vyper程序

  • Intellij Solidity Plugin - JetBrains IntelliJ Idea IDE(免费/商业)的开源插件,具有语法高亮、格式设置、代码完成等功能

  • YAKINDU Solidity Tools - 基于Eclipse的IDE。具有代码完成和帮助、代码导航、语法着色、内置编译器、快速修复和模板功能。

  • Eth Fiddle - Loom Network开发的IDE,可编写、编译和调试智能合约。易于共享和查找代码片段。

其他工具

网络测试工具

  • ethnode - 运行以太坊节点(Geth或Parity)进行开发和测试

  • Ganache - 具有可视化UI和日志的以太坊区块链的测试类应用程序

  • Kaleido - 使用Kaleido扩展联盟区块链网络,非常适合PoC和测试

  • Besu Private Network - 在Docker容器中运行Besu节点的专用网络

  • 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网络的部署和治理

  • Ethereum on Google Cloud - 基于PoW构建以太坊网络

  • Infura - 访问以太坊网络的API(主网/Ropsten/Rinkeby/Goerli/Kovan)

  • CloudFlare Distributed Web Gateway - 通过Cloudflare对以太坊网络进行访问,而无需运行的节点

  • Chainstack - 共享和专用的以太坊节点即服务(主网/Ropsten)

Ether水龙头 (Faucets)

以太坊通信

前端以太坊APIs

  • Web3.js - Javascript Web3

    • Eth.js - Javascript Web3替代

    • Ethers.js - Javascript Web3替代,实用程序和钱包功能

    • light.js - 轻客户端优化的高级反应式JS库

    • Web3Wrapper - TypeScript语言Web3替代

    • Ethereumjs - 以太坊实用程序功能集合,例如 ethereumjs-utilethereumjs-tx

    • flex-contractflex-ether - 现代化的零配置高级库,用于与智能合约进行交互并进行交易

    • ez-ens - 简单的零配置以太坊域名服务(ENS)地址解析器

    • web3x - web3.js的TypeScript端口。结构小巧和全类型安全性,包括合约交互安全性

  • Nethereum - 跨平台以太坊开发框架

  • dfuse - 以使用dfuse Ethereum API的TypeScript库

  • Drizzle - 将前端连接到区块链的Redux库

  • Tasit SDK - JavaScript SDK,使用React Native制作本地以太坊移动DApp

  • Subproviders - 几个有用的子提供程序,可与Web3-provider-engine结合使用(包括一个LedgerSubprovider,用于为DApp添加Ledger硬件钱包支持)

  • web3-react - 用于构建单页以太坊DApp的React框架

  • ethvtx - 支持以太坊且框架不可知的Redux存储配置(文档

  • 严格类型 - Javascript替代

  • ChainAbstractionLayer - 通过单个界面与不同的区块链(包括以太坊)进行通信。

  • Delphereum - 以太坊区块链的Delphi接口,可以开发适用于Windows/macOS/iOS和Android的本地DApp

后端以太坊APIs

  • 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

  • Eventeum -Kauri用Java编写的以太坊智能合约事件和后端微服务之间的桥接

  • Ethereumex - 以太坊区块链的Elixir JSON-RPC客户端

  • Ethereum-jsonrpc-gateway - 允许运行多个以太坊节点以实现冗余和负载平衡的网管。可作为Infura替代(或在其之上)运行,以Go语言编写。

  • EthContract - 在Elixir中查询ETH智能合约的辅助方法

  • Ethereum Contract Service - MESG服务,可根据其地址和ABI与任何以太坊合约进行交互

  • Ethereum Service - MESG服务,用于与以太坊中的事件进行交互

  • Marmo - Python,JS和Java SDK,用于简化与以太坊的交互,将交易成本转移给中继器

Bootstrap/即用工具

  • Truffle boxes - 以太坊生态系统的打包组件

  • Besu Private Network - 在Docker容器中运行Besu节点的专用网络

  • Testchains - 预先配置的.NET开发链以实现快速响应(PoA)

  • Local Raiden - 在Docker容器中运行本地Raiden网络以进行演示和测试

  • Private networks deployment scripts - 专用PoA网络的现成部署脚本

  • Parity Demo-PoA Tutorial -使用两个节点搭建PoA测试链的教程

  • Local Ethereum Network - 专用PoW网络的现成部署脚本

  • Kaleido - 使用Kaleido扩展联盟区块链网络,非常适合PoC和测试

  • Cheshire - CryptoKitties API和智能合约的本地沙盒实现,可以作为Truffle Box使用

  • aragonCLI - aragonCLI用于创建和开发Aragon应用程序和组织。

  • ColonyJS - 用于与Colony Network智能合约交互API的JavaScript客户端

  • ArcJS - 便于javascript应用程序访问DAOstack Arc以太坊智能合约的库

  • Arkane Connect - 用于与Arkane Network进行交互的API的JavaScript客户端

  • Blocknative - Assist.js是可嵌入的小部件,可提高DApp可用性。该工具以编程形式识别并给出了清晰的操作,便于终端用户与MetaMask交互,以克服(甚至防止)常见的陷阱和障碍

以太坊ABI工具

Application Binary Interface 应用程序二进制接口

  • ABI decoder - 用于解码以太坊交易中数据参数和事件的库

  • ABI-gen - 从合约ABI生成Typescript合约包装程序

  • Ethereum ABI UI - 从以太坊合约ABI自动生成UI表单字段定义和关联的验证器

  • headlong - 类型安全的合约ABI和递归长度前缀Java库

  • One Click dApp - 使用ABI在唯一的URL上立即生成DApp

  • Truffle Pig - 开发工具,提供简单的HTTP API来查找和读取Truffle生成的合约文件,以便在本地开发时使用,通过http提供新的合约ABI

  • Ethereum Contract Service - MESG服务,可根据其地址和ABI与任何以太坊合约进行交互

  • Nethereum-CodeGenerator - 基于Web的生成器,可基于Solidity智能合约创建基于Nethereum的C#接口和服务

模式&最佳实践

智能合约开发模式

基础设施

以太坊客户端

  • 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 - 以太坊客户端工具,如同“命令行的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 - 将API集成到IPFS和其他分布式/去中心化存储协议中

  • Swarm - 分布式存储平台和内容分发服务,以太坊web3堆栈的本地基础层服务

  • Infura - 托管IPFS API网关和固定服务

  • 3Box Storage - 用户控制的分布式存储API,基于IPFS和Orbitdb

消息

  • Whisper - DApp通信协议,以太坊web3堆栈的本地基础层服务

  • DEVp2p Wire Protocol - 以太坊点对点通信协议

  • Pydevp2p - RLPx网络层的Python实现

  • 3Box Threads - 使开发者能够持久实现IPFS的API,或在内存中实现点对点消息传递

测试工具

  • Truffle Teams - Truffle项目的零配置持续集成

  • Solidity code coverage - Solidity代码覆盖工具

  • Solidity coverage - Solidity智能合约备选覆盖工具

  • Solidity function profiler - 智能合约功能探查器

  • Sol-profiler - 升级版智能合约探查器

  • Espresso - 快速、并行、热重载Solidity测试框架

  • Eth tester - 以太坊应用程序测试工具组件

  • Cliquebait - 使用与真实区块链网络极为相似的Docker实例简化智能合约应用程序的集成和接受测试

  • Hevm - hevm项目是以太坊虚拟机的实现,专用于单元测试和调试智能合约

  • Ethereum graph debugger - Solidity图形调试器

  • Tenderly CLI - 通过人类可读的堆栈跟踪加速开发

  • Solhint - 提供安全性、样式指南和最佳实践规则,用于智能合约验证

  • Ethlint - 可以识别并修复Solidity中样式和安全性问题(前身为Solium)

  • Decode - npm软件包,将事务提交到本地testrpc节点进行解析,使其更具可读性和易懂性

  • truffle-assertions - npm软件包,具备额外断言和实用程序,用于测试使用Truffle的Solidity智能合约

  • Psol - 具有mustache.js样式的语法、宏、条件编译和自动远程依赖关系包含的Solidity词法预处理器

  • solpp - 具有全面指令、表达式语言、高精度运算和许多辅助功能的Solidity预处理器和展平器

  • Decode and Publish – 解码并发布原始以太坊事务

  • Doppelgänger - 用于在单元测试期间模拟智能合约依赖关系的库

  • rocketh - 用于以太坊智能合约测试的简单库,可以选择任意web3库和测试程序

  • pytest-cobra - PyTest插件,用于测试以太坊智能合约

安全工具

  • MythX - 以太坊开发者的安全验证平台和工具生态系统

  • Mythril - EVM字节码安全性开源分析工具

  • Oyente - 静态智能合约安全性分析工具

  • Securify - 以太坊智能合约安全扫描器

  • SmartCheck - 静态智能合约安全分析器

  • Ethersplay - EVM反汇编器

  • Evmdis - EVM反汇编器

  • Hydra - 加密经济合约安全性框架,去中心化安全性赏金

  • Solgraph - 智能合约安全性分析可视化Solidity控制流

  • Manticore - 智能合约和二进制的符号执行工具

  • Slither - Solidity静态分析框架

  • Adelaide - Solidity编译器的SECBIT静态分析扩展程序

  • solc-verify - 用于Solidity智能合约的模块化验证程序

  • Solidity security blog - 已知攻击媒介和常见反模式的完整列表

  • Awesome Buggy ERC20 Tokens - 带有通证实例的ERC20智能合约漏洞集合

  • Free Smart Contract Security Audit - Callisto Network的免费智能合约安全审计

  • Piet - 可视化Solidity架构分析

监测

  • Alethio - 以太坊分析平台,可提供实时监控、预测和异常检测、通证指标、智能合约审计,图形可视化和区块链搜索。还可以观察以太坊去中心化交易所的实时市场信息和交易活动

  • amberdata.io - 提供实时监控、预测和异常检测、通证指标、智能合约审计,图形可视化和区块链搜索

  • Neufund - Smart Contract Watch - 用于监测大量智能合约和交易的工具

  • Scout - 以太坊上智能合约活动和事件日志的实时数据馈送

  • Tenderly - 该平台可通过网页面板为用户提供可靠的智能合约监测和警报,无需用户托管或维护基础架构

  • Chainlyt - 探索具有解码交易数据的智能合约,查看合约的使用方式以及通过特定功能调用搜索交易

  • BlockScout - 用于检查和分析基于EVM的区块链,针对以太坊网络唯一功能齐备的区块链浏览器

  • Terminal - 用于监测DApp的控制面板。Terminal可用于监测用户、DApp、区块链基础设施和交易等

  • Ethereum-watcher - Go语言可扩展框架,用于收听链上事件并做出响应

其他工具

  • aragonPM - 由aragonOS和以太坊提供支持的去中心化软件包管理器。aragonPM支持对软件包升级进行去中心化治理,从而消除中心故障点

  • Truffle boxes - 用于快速构建DApp的打包组件

    • Cheshire - CryptoKitties API和智能合约的本地沙盒实现,可以作为Truffle Box使用

  • Solc - Solidity编译器

  • Sol-compiler - 项目级Solidity编译器

  • Solidity cli - 简捷可靠的Solidity编译器

  • Solidity flattener - 将Solidity项目合并到平面文件实用程序,有助于可视化导入的合约或在Etherscan上验证合约

  • Sol-merger - 备选,将所有导入合并到单个Solidity合约文件

  • RLP - JavaScript递归长度前缀编码

  • eth-cli - CLI工具集合,可辅助以太坊学习和开发

  • Ethereal - Ethereal是用于管理以太坊中常见任务的命令行工具

  • Eth crypto - 以太坊的加密javascript函数以及将其与web3js和solidity结合使用的教程

  • Parity Signer - 允许签名交易的移动应用程序

  • py-eth - 以太坊生态系统的Python工具集合

  • truffle-flattener - Concats使用Truffle开发的实体文件及其所有依赖项

  • Decode - npm软件包,对提交到本地testrpc节点的事务进行解析,使其更可读易懂

  • TypeChain - 以太坊智能合约的Typescript绑定

  • EthSum - 简单的以太坊地址校验和工具

  • PHP based Blockchain indexer - 允许索引区块或收听PHP中的事件

  • Purser - 基于以太坊的钱包的JavaScript通用钱包工具。支持软件、硬件和Metamask钱包

  • Node-Metamask - 通过node.js连接Metamask

  • Solidity-docgen - Solidity项目的文档生成器

  • Ethereum ETL - 将以太坊区块链数据导出为CSV或JSON文件

  • prettier-plugin-solidity - 用于格式化Solidity代码

  • Unity3dSimpleSample - 以太坊和Unity集成演示

  • Flappy - 以太坊和Unity集成演示/样本

  • Wonka - Nethereum业务规则引擎演示/样本

  • Resolver-Engine - 用于在框架中标准化Solidity导入和工件解析的工具

  • eth-reveal - 节点和浏览器工具,用于检查事务,使用在线找到的ABI尽可能解码方法、事件日志和还原原因

  • Ethereum-tx-sender - 用Golang编写的库,能够可靠地发送交易,抽象出棘手的底层细节,例如gas优化、随机数计算、同步等

智能合约标准&库

ERCs - The Ethereum Request for Comment repository 以太坊意见征求稿

  • 通证

    • ERC-20 - 可置换资产的原始通证合约

    • ERC-721 - 不可置换资产的通证标准

    • ERC-777 - 可置换资产的优化版通证标准

    • ERC-918 - 可挖矿通证标准

  • ERC-165 - 创建一种标准方法,发布和检测智能合约实现的接口

  • ERC-725 - 用于密钥管理和执行的代理合约,以建立区块链身份

  • ERC-173 - 合约所有权的标准接口

主流智能合约库

  • Zeppelin - 包含经测试的可重用智能合约,例如SafeMath和OpenZeppelin SDK库,以实现智能合约的可升级性

  • cryptofin-solidity - Solidity库集合,用于在以太坊上构建安全且节省gas的智能合约

  • Modular Libraries - 使用以太坊虚拟机构建用于区块链的软件包

  • DateTime Library - 节省gas的Solidity日期和时间库

  • Aragon - DAO协议。包含aragonOS智能合约框架,重点关注可升级性和治理

  • ARC - DAO的操作系统和DAO堆栈基础层

  • 0x - DEX(去中心化交易所)协议

  • Token Libraries with Proofs - 根据给定的规范和高级属性,包含通证合约wrt.的正确性证明

  • Provable API - 提供使用Provable服务的合约,允许进行链下操作、数据获取和计算

开发者指南及第二层基础设施

扩容性

支付/状态通道

侧链

隐私

zkSNARKs

  • ZoKrates - 以太坊zkSNARKS工具箱

  • The AZTEC Protocol - 以太坊网络上的私密交易,实现已上线以太坊主网

  • Nightfall - 将所有ERC-20 / ERC-721通证设为私有-开源工具和微服务

  • NuCypher Network - 再加密代理网络,可在去中心化系统中增强数据隐私

  • pyUmbral - 门限代理再加密密码库

  • NuFHE - GPU加速的FHE库

预建UI组件