以太坊开发工具及资源大全

以太坊开发工具大全 - 包含 250 多个推荐的开发工具、代码库、工具站点。 涵盖内容包含:合约开发、测试、安全分析、数据分析、开发框架、测试网络、开发范式等

以太坊开发工具大全 - 包含 250 多个推荐的开发工具、代码库、工具站点。 涵盖内容包含:合约开发、测试、安全分析、数据分析、开发框架、测试网络、开发范式等。

新手指引

  • Solidity -最受欢迎的智能合约语言。
  • Truffle - 最流行的智能合约开发,测试和部署框架。通过npm安装命令行工具,Truffle 新手教程
  • Metamask -Chrome 钱包插件,用来与Dapps进行交互。
  • Truffle Box - 可以直接使用各种打包好的开发组件。
  • OpenZeppelin Starter Kits - 多功能的入门套件,帮助开发人员快速启动基于智能合约的应用程序。包括了 Truffle、OpenZeppelin SDK、经审计过的 OpenZeppelin/contracts-ethereum-package 智能合约库,react-app 和 方便设计的 rimble 。
  • EthHub.io - 以太坊的全面概述 - 描述以太坊历史、治理、未来计划和开发资源。
  • Cobra - 在以太坊虚拟机(EVM)上进行测试和部署的开发环境框架。
  • Fortmatic - 用于构建web3 dApp的钱包SDK,无需让用户下载钱包插件或App。
  • Portis - 非托管钱包SDK,无需安装就可与与DApp交互。
  • Kauri.io - 一个关注Web3和新兴技术的社区型的知识平台。分享高质量的技术文章(hahaha 海外版登链社区么 ), 这里有入门基础知识
  • dfuse - 丝滑的区块链API。
  • biconomy -通过使用简单易用的SDK启用元交易,在dapp中进行无需gas的交易。

智能合约开发

智能合约语言

  • Solidity -以太坊智能合约语言
  • Vyper -新的实验性pythonic编程语言

开发构架

  • Truffle - 最流行的智能合约开发,测试和部署框架。Truffle套件包括Truffle,Ganache,和Drizzle从这里可深入了解Truffle
  • Embark - DApp开发框架
  • Waffle - 一个小巧、灵活的高级智能合约开发和测试框架(基于ethers.js)
  • dapp-tools -DApp开发框架(命令行脚手架)
  • Etherlime -基于ethers.js的Dapp部署框架
  • Parasol - 敏捷智能合约开发环境, 有测试,INFURA部署,自动合约文档等功能。
  • 0xcert -用于构建去中心化应用程序的JavaScript框架
  • OpenZeppelin SDK - 一套工具帮助开发,编译,升级,部署智能合约并与合约交互的工具。
  • sbt-ethereum -一个用于智能合约交互和开发的命令控制台(可自动补全命令),可进行钱包和ABI管理,支持ENS以及高级Scala集成。
  • Brownie - 用于部署、测试并与智能合约交互的Python框架。
  • Cobra - 在以太坊虚拟机(EVM)上进行测试和部署的开发环境框架。

集成开发环境(IDE)

其他工具

  • Atra区块链服务 - Atra提供Web服务来帮助在以太坊区块链上构建,部署和维护去中心化应用程序。
  • Buidler -可扩展的开发人员工具,可组合所需工具来帮助智能合约开发人员提高生产率。
  • 用于VSCode的Azure 开发套件 -VSCode扩展,方便在Visual Studio Code中创建智能合约并进行部署

测试区块链网络

  • ethnode -运行以太坊节点(Geth或Parity)进行开发,一条命令启动:npm i -g ethnode && ethnode
  • Ganache - 具有可视化UI和日志显示的测试以太坊区块链的应用程序
  • Kaleido -使用Kaleido来建立联盟区块链网络。非常适合PoC和测试
  • Besu 私有网络 - 在Docker容器中运行Besu节点的私有网络- Orion -由PegaSys开发的隐私交易组件- Artemis -由PegaSys开发的以太坊2.0信标链的Java实现
  • Cliquebait -通过模拟真实区块链网络的docker实例简化了智能合约集成和测试
  • 本地雷电网络 -在Docker容器中运行本地Raiden网络以进行演示和测试
  • 私有网络部署脚本 -现成的用于启动PoA网络的部署脚本
  • 本地以太坊网络 -现成的用于启动本地PoW网络的部署脚本
  • Azure上的以太坊 - 用于PoA联盟链网络的部署和治理
  • Google Cloud上的以太坊 - 基于工作量证明建立以太坊网络
  • Infura - 通过API访问以太坊网络(包括主网和多个测试网:Ropsten,Rinkeby,Goerli,Kovan)
  • Alchemy - 和 Infura 一样的节点提供商,可用的免费访问额外更高。

其他可用的节点,可参考文章:以太坊可用RPC节点列表

获取测试以太水龙头

与以太坊交互

前端以太坊API

  • Web3.js - Javascript Web3 API

    以下几个 API 作用和 Web3.js 类似,可供选择:
  • Nethereum -跨平台的以太坊开发框架
  • dfuse -使用dfuse Ethereum API的TypeScript库
  • Drizzle - Redux库,将前端连接到区块链
  • Tasit SDK -使用React Native制作原生移动以太坊dapp的JavaScript SDK
  • Subproviders -与Web3-provider-engine结合使用的几个有用的子提供商(包括一个LedgerSubprovider - 用于向dApp添加Ledger硬件钱包支持)
  • web3-react -用于构建单页以太坊dApp的React框架
  • ethvtx -支持以太坊且与框架无关的redux存储配置, 文档
  • 类型严格 - Javascript替代方案
  • ChainAbstractionLayer -使用单个界面与不同的区块链(包括以太坊)进行通信。
  • Delphereum -以太坊区块链的Delphi接口,允许开发适用于Windows,macOS,iOS和Android的本地dApp。

后端以太坊API

  • Web3.py - Python Web3
  • Web3.php - PHP Web3
  • 以太坊-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的替代品(或在其之上)运行,用Golang写。
  • EthContract -一组帮助在Elixir中查询智能合约的帮助方法
  • MESG -MESG服务,可根据其地址和ABI与任何以太坊合约进行交互。
  • 以太坊服务 -MESG服务,用于与以太坊中的事件进行交互并与其进行交互。
  • Marmo -Python,JS和Java SDK,用于简化与以太坊的交互。使用中继器将交易成本分担给中继器。

开箱即用工具

  • Truffle Box - 可以直接使用各种打包好的开发组件。
  • Besu私有网络 -在Docker容器中运行Besu节点的私有网络
  • Testchains -预先配置的.NET开发链以实现快速响应的PoA网络

  • 本地雷电网络 -在Docker容器中运行本地Raiden网络以进行演示和测试
  • 私有网络部署脚本 - 现成的用于启动PoA网络的部署脚本MESG
  • Parity Demo-PoA教程 - 一个教程,用于构建具有2个节点的PoA测试链。
  • 本地以太坊网络 - 现成的用于启动Pow网络的部署脚本
  • Kaleido -使用Kaleido来建立联盟区块链网络,非常适合PoC和测试。
  • Cheshire - CryptoKitties API和智能合约的本地沙盒实现,可以作为Truffle Box使用
  • aragonCLI - aragonCLI用于创建和开发Aragon应用程序和组织。
  • ColonyJS - 提供用于与Colony 网络智能合约进行交互的API的JavaScript客户端。
  • ArcJS -便于javascript应用程序访问DAOstack Arc以太坊智能合约的库。
  • Arkane Connect -JavaScript客户端,提供与Arkane Network(用于构建用户友好型dapp的钱包提供商)进行交互的API。
  • Blocknative - Assist.js是一个可嵌入的小部件,用于提高Dapp的可用性。该工具通过监听交易内存池的方式,告知最终用户所进行的操作,用来克服(甚至防止)常见的陷阱和障碍。

以太坊ABI工具

  • Hashex - 一个 Web 工具,通过 ABI 和参数获得ABI 编码数据
  • Ethereum input data decoder - 一个 Web 工具,通过 ABI 和input 数据获得参数详情。
  • ABI解码器 - 用于从以太坊交易中解码数据参数和事件的库
  • ABI-gen -从合约ABI生成Typescript合约包装器。
  • 以太坊 ABI UI - 以太坊合约ABI自动生成UI表单字段定义和相关的验证器
  • headlong - 类型安全的合约ABI和递归长度前缀库(Java 版本)
  • OneClick dApp - 使用ABI在唯一的URL上立即创建dApp。
  • Truffle pig -开发工具,提供简单的HTTP API来查找和读取Truffle生成的合约文件,以便在本地开发期间使用。通过http提供新的合约ABI。

开发范式与最佳实践

智能合约开发范式

可升级性

基础设施

以太坊客户端

  • Besu -以Apache 2.0许可开发并以Java编写的开源以太坊客户端。该项目由Hyperledger托管。
  • Geth - Go 客户端
  • OpenEthereum - Rust客户端
  • Aleth - C ++ 客户端
  • Nethermind - .NET 客户端
  • Infura - 一种托管服务,提供符合以太坊客户端标准的 API
  • Trinity -使用 Python 客户端 py-evm
  • 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 - 易于使用的API集成到IPFS和其他分布式/去中心化存储协议中
  • Swarm -分布式存储平台和内容分发服务,以太坊web3技术栈的基础层服务
  • Infura - 托管的IPFS API网关和pinning服务
  • 3Box 存储 -用于用户控制的分布式存储的api。建立在IPFS和Orbitdb之上。

通信协议

  • Whisper -DApp相互通信的通信协议,以太坊Web3技术栈的服务
  • DEVp2p Wire 协议 -运行以太坊/Whisper节点之间的P2P通信
  • Pydevp2p -RLPx网络层的Python实现
  • 3Box线程 - 一个方便 开发人员实现IPFS持久化,或 内存中 p2p 通信。

测试工具

  • Truffle Team -零配置持续集成Truffle项目
  • Solidity 代码覆盖率 - Solidity 代码覆盖率工具
  • Solidity 覆盖率 -Solidity 代码覆盖率工具(另一个替代方案)
  • Solidity 函数分析器 - Solidity 合约函数性能分析器
  • Sol-profiler - Solidity 合约函数性能分析器(另一个替代方案)
  • Espresso -快速,并行化,可热加载 Solidity 测试框架
  • Eth tester -用于测试以太坊应用程序的工具套件
  • Cliquebait -通过类似于真实区块链网络的docker实例简化了智能合约应用程序的集成和接受测试
  • Hevm -hevm项目是以太坊虚拟机(EVM)的实现,专门用于单元测试和调试智能合约
  • 以太坊 graph debuger - Solidity 图形调试器
  • Tenderly CLI -通过人类可读的堆栈跟踪加快开发速度
  • EthTx - 详细分析交易信息 - (查看代币的流动和函数调用)。
  • Solhint -Solidity Linter,可提供安全性,编程风格指南和最佳实践规则,以进行智能合约验证
  • Ethlint -Linter可以识别和修复Solidity(以前为Solium)中的编程风格和安全问题
  • Decode -npm软件包,它将交易提交到本地testrpc节点进行解析,以使其更易读和理解
  • Truffle断言 -带有其他断言和实用工具的npm软件包,在Truffle中测试Solidity智能合约。最重要的是,它能对是否已触发特定事件进行断言。
  • Psol -Solidity词法预处理器,具有mustache.js 语法风格、宏、条件编译和包含自动远程依赖关系。
  • solpp -Solidity预处理器,具有全面的指令和表达式语言,高精度数学和许多有用的辅助函数。
  • 解码和发布 – 解码并发布原始的以太坊交易。类似于https://live.blockcypher.com/btc-testnet/decodetx/
  • Doppelgänger -一个用于在单元测试期间模拟智能合约依赖关系的库。
  • rocketh - 一个简单的工具,用来测试以太坊智能合约,可以允许使用任何web3库和来运行测试程序。
  • pytest-cobra -PyTest插件,用于测试智能合约。

安全工具

  • EthTx - 详细分析交易信息 - (查看代币的流动和函数调用)。
  • MyXX -以太坊开发人员的安全验证平台和工具生态系统
  • Mythril -开源EVM字节码安全性分析工具(另一个替代方案)
  • Oyente -智能合约静态安全分析
  • Securify -以太坊智能合约的安全扫描器
  • SmartCheck -静态智能合约安全分析器
  • Ethersplay -EVM反汇编器(python)
  • Manticore -智能合约和二进制文件上的符号执行工具
  • Slither -Solidity静态分析框架
  • Adelaide - SECBIT对Solidity编译器的静态分析插件
  • solv-verify -用于对Solidity智能合约的模块化验证
  • Solidity安全博客 -已知攻击媒介和常见反模式的完整列表
  • 有漏洞 ERC20代币 -受到代币影响的ERC20智能合约中的漏洞集合
  • 免费的智能合约安全审核 -来自Callisto Network的免费智能合约安全审核
  • Piet -可视化Solidity体系架构分析器

交易与数据监控

  • Alethio -先进的以太坊分析平台,提供实时监控和异常监控,包含代币各种指标,智能合约审计,图形可视化和区块链搜索。还可以探索以太坊去中心化交易所的实时市场信息和交易活动。
  • amberdata.io -提供实时监控和异常监控,包含代币各种指标,智能合约审计,图形可视化和区块链搜索
  • Neufund-智能合约观察 -监视大量智能合约和交易的工具
  • Scout -以太坊上智能合约的活动和事件日志的实时数据馈送
  • Tenderly -一个平台,可通过Web仪表板的形式为用户提供可靠的智能合约监控和警报。
  • Chainlyt -使用已解码的交易数据探索智能合约,查看如何使用合约并通过特定的函数调用搜索交易
  • BlockScout -用于检查和分析基于EVM的区块链的工具。一款以太坊网络的功能完善的区块链浏览器。
  • Terminal - 用于监视dapp的控制面板。终端可用于监视用户,dapp,区块链基础设施,交易等。
  • Ethereum-watcher -用Golang编写的可扩展框架,用于侦听链上事件并做出响应。

其他工具

  • aragonPM - 由 aragonOS 和 Ethereum 支持的去中心化软件包管理器。aragonPM 支持对软件包升级进行分布式管理,从而消除集中式故障点。
  • Truffle boxes 用于快速构建 DApp 的打包组件- Cheshire - CryptoKitties API 和智能合约的本地沙盒实现,可以作为Truffle boxes 使用
  • 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 框架下,合并 Solidity 的所有依赖项
  • Decode - npm 软件包,它将 tx 提交到本地 testrpc 节点的解析,使它们更具可读性和易懂性
  • TypeChain - 以太坊智能合约的 Typescript 绑定
  • EthSum - 一个简单的以太坊地址校验和工具
  • PHP based Blockchain indexer - 在 PHP 中索引块或侦听的事件
  • Web3Model - 用统一的方式接入所有钱包
  • Purser - JavaScript 的基于以太坊的钱包通用钱包工具。支持软件,硬件和 Metamask-使dApp 开发有一致的接口接入所有钱包。
  • Node-Metamask - 从 node.js 连接到 MetaMask
  • Solidity-docgen - Solidity 项目的文档生成器
  • Ethereum ETL - 将以太坊区块链数据导出到 CSV 或 JSON 文件
  • prettier-plugin-solidity - solidity-用于格式化 Solidity 代码的插件
  • Unity3dSimpleSample - 以太坊和 Unity 集成Demo
  • Flappy - 以太坊和 Unity 集成Demo/示例
  • Wonka - Nethereum 业务规则引擎Demo/示例
  • Resolver-Engine - 一组用于标准化框架中 Solidity 导入和工件解析的工具。
  • eth-reveal - 探究交易详情,使用在线找到的 ABI 尽可能解码方法,事件日志和回退的原因。
  • Ethereum-tx-sender -一个用 Golang 编写的有用的库,用于可靠地发送交易-提取一些棘手的底层细节,例如gas优化,随机数计算,同步和重试。
  • truffle-plugin-verify - 从 Truffle 命令行在 Etherscan 上无缝验证合约源代码。

智能合约标准和代码库

ERC 标准(以太坊评论提案库)

  • 代币标准
  • ERC-20 - 可替代资产的原始代币合约
  • ERC-721 -不可替代资产的代币标准
  • ERC-777 - ERC-20改进版代币标准
  • ERC-918 -可采矿代币标准
  • ERC-165 -创建一种标准方法来发布和检测智能合约实现的接口。
  • ERC-725 -用于密钥管理和执行的代理合约,以建立区块链身份。
  • ERC-173 -合约所有权的标准接口

流行的智能合约库

二层扩容开发指南

可扩展性

Rollup

参考

Rollup 各方案异同简介

  • ZK Rollup ZkSync loopring
  • Optimistic Rollup
  • Arbitrum Rollup

支付/状态通道

Plasma

  • 学习Plasma -作为节点应用程序的网站,该应用程序始于康奈尔大学的2018 IC3-以太坊加密货币新手训练营,涵盖了所有Plasma变体(MVP /Cash/借记卡)
  • Plasma MVP -OmiseGO的最小可行血浆的研究实现
  • Plasma MVP Golang -Golang实现和最小可行血浆规范的扩展
  • Plasma Guard -在需要时自动观看并挑战或退出OmisegoPlasma网络。
  • Plasma OmiseGo Watcher -与Plasma OmiseGo网络交互并通知任何拜占庭事件。

侧链

隐私/保密

zkSNARKs
  • ZoKrates -以太坊上的zkSNARKS的工具箱

  • AZTEC协议 -以太坊网络上的隐私交易,在以太坊主网上实时实现

  • Nightfall -将任何ERC-20/ERC-721代币转为隐私交易-开源工具和微服务

  • 代理重新加密(PRE)

  • NuCypher网络 -代理重新加密网络,可在去中心化系统中实现数据隐私

  • pyUmbral -门限代理重新加密密码库

  • 全同态加密(FHE)

  • NuFHE -GPU加速的FHE库

预构建的UI组件


本翻译由 Cell Network 赞助支持。

点赞 15
收藏 36
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

1 条评论

请先 登录 后评论
翻译小组
翻译小组
0x9e64...7c84
大家看到好的文章可以在 GitHub 提 Issue: https://github.com/lbc-team/Pioneer/issues 欢迎关注我的 Twitter: https://twitter.com/UpchainDAO