Ξ

链就码林高手

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


本列表译自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


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组件


目录