以太坊开发工具及资源大全
以太坊开发工具大全 - 包含 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的交易。
智能合约开发
智能合约语言
开发构架
- 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)
- Remix -内置静态分析的Web IDE。
- Atom编辑器 - 可用插件 Atom Solidity Linter,Etheratom, autocomplete-solisity和language-solidity
- Vim solidity - 为 Solidity 准备的Vim语法文件
- VS Code - Visual Studio Code 增加了对Solidity的支持
- Ethcode - VS Code插件,可用于编译,执行和调试Solidity&Vyper程序
- 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 - 具有可视化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 类似,可供选择:- Eth.js - Javascript Web3 API
- Ethers.js - Javascript Web3 API ,包含实用工具和钱包功能
- light.js - 针对轻客户端优化的响应式JS库。
- Web3Wrapper -Typescript Web3 API
- Ethereumjs - 以太坊的实用工具函数集合,例如: ethereumjs-util和ethereumjs-tx
- flex-contact和flex-ether - 现代化的零配置用于与智能合约进行交互的库。
- ez-ens - 简单的零配置以太坊域名服务地址解析器。
- web3x - web3.js的TypeScript 移植。具有小巧和类型安全的优势。
-
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框架
-
类型严格 - 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网络
- Blazor /区块链资源管理器 - Wasm区块链资源管理器(功能示例)
-
本地雷电网络 -在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。
开发范式与最佳实践
智能合约开发范式
- Dappsys:收集整理了一些安全且高可复用合约模块- 提供以太坊/常见问题的解决方案,例如:- 白名单
- 可升级的ERC20代币
- ERC20-Token-Vault
- 授权(RBAC)
- ...更多...
- 为[MakerDAO]提供了构建基块(https://github.com/makerdao/maker-otc)或TAO
- 在创建自己的未经测试的解决方案之前应咨询
- [Dapp-a-day 1-10]中描述了用法(https://steemit.com/@nikolai)和Dapp-a-day 11-25
- OpenZeppelin合约:以Solidity语言编写的可重用和安全智能合约的开放框架。- 可能是使用最广泛的代码库和智能合约
- 与Dappsys类似,更多集成到Truffle框架中
- 博客: 关于安全审核最佳实践
- Assembly 高级研讨课
- 简单以太坊Multisig(多签)
- CryptoFin Solidity 审核清单 - 主网上线前常见问题审计清单。
- aragonOS:用于构建DAO,Dapp和协议的智能合约框架- 可升级性:智能合约可以升级到新版本
- 权限控制:通过使用auth和authP修饰符,可以控制经过允许的实体能访问函数
- 转发器:aragonOS应用程序可以将其执行操作的动作发送给其他应用程序,以便在满足一组要求时转发动作
可升级性
- 博客 von Elena Dimitrova,来自Colony.io的开发者
- https://blog.colony.io/writing-more-robust-smart-contracts-99ad0a11e948
- https://blog.colony.io/writing-upgradeable-contracts-in-solidity-6743f0eecc88
- Aragon 研究博客
- 库驱动开发
- 高级Solidity代码部署技术
- OpenZeppelin代理库
基础设施
以太坊客户端
- 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 -合约所有权的标准接口
流行的智能合约库
- Zeppelin -包含经过测试的可重用智能合约,例如SafeMath和OpenZeppelin SDK 库实现智能合约的可升级性
- DateTime库 - 节省 gas 的Solidity日期和时间库
- Aragon -DAO协议,包含aragonOS智能合约框架专注于可升级性和治理
- ARC -DAO和DAO堆栈的基础层的操作系统。
- 0x -DEX协议
- Token Libraries with Proofs -包含代币合约wrt的正确性证明。
- 可证明的API -提供使用Provable服务的合约,允许进行链下操作,数据获取和计算
二层扩容开发指南
可扩展性
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组件
- aragonUI -包含Dapp组件的React库
- components.bounties.network -包含Dapp组件的React库
- ui.decentraland.org -包含Dapp组件的React库
- dapparatus -可重复使用的React Dapp组件
- Metamask ui -Metamask React组件
- DappHybrid -用于基于Web的去中心化应用程序的跨平台混合托管机制
- Nethereum.UI.Desktop -跨平台桌面钱包示例
- eth-button -极简主义捐赠按钮
- 边框设计系统 -适用于去中心化应用的组件和设计标准。
- 3Box插件 社交功能的react组件。包括评论,个人资料和消息。
本翻译由 Cell Network 赞助支持。
很强,很喜欢