本文汇集了以太坊开发相关的各种工具、组件、平台与学习资源。大部分内容来自于:https://github.com/ConsenSysLabs/ethereum-developer-tools-list,会根据行业发展定期更新。
更新历史:
2018.07.30 添加 web3j 使用样例
2018.07.17 添加 geth rpc 安全审计工具
2018.07.07 初始版本
开发语言、框架与工具
语言
- Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语言。
- Bamboo - 是一种将智能合约描述为有限状态机的语言,把智能合约看成一个状态和交易的函数,同时生成一个新的状态。
- Vyper - 一种类 python 的面向合约编程语言,专注于以太坊虚拟机,着重于安全、简洁、和稳定性。
框架
- Truffle - 最为流行的智能合约开发、测试和部署框架。经常与 Ganache (也是由 Truffle 团队开发) 一起搭配使用。
- Embark - 一个 DApp 开发框架。
- Populus - 用Python语言写的智能合约开发框架。
- Etherlime - 基于 ethers.js 的 DApp 开发框架。
集成开发环境(IDE)
- Remix - 一个基于solidity语言的在线智能合约开发IDE,它提供从编译,调试到部署的全流程支持。
- Atom - Atom 编辑器可以结合 Atom Solidity Linter, Etheratom 等插件进行智能合约开发。
- Pragma - 一个非常简单的 solidity 合约在线 IDE。提供合约的编译、部署与调用支持。
- Superblocks Studio - Superblocks Studio 可以帮助你在线编写、编译与部署智能合约。目前处于 beta 版本。
- Vim solidity - 有了这个,使用 vim 也可以写愉快地写 solidity 了。
- Visual Studio Code - VSCode 是我日常用的最多的工具,好多支持 solidity 的插件。
- Intellij Solidity Plugin - JetBrains IntelliJ Idea IDE 上用的 solidity 插件,支持语法高亮,格式化与代码自动补全。
常用以太坊交互代码库
- Web3.js - 以太坊官方的 Javascript API
- Eth.js - 优化过的 Web3.js
- Ethers.js - 更加完整的以太坊 Javascript 代码库,包括 Web3.js 没有的足记词与 HD 钱包支持等。
- Web3.py - Python 版的 Web3
- Web3.php - PHP 版的 Web3
- Web3j - Java 版的 Web3, 这里可以查看具体使用样例
- Nethereum - .Net 版的 Web3
- Ethereum.rb - Ruby 版的 Web3
- Web3.hs - Haskell 版的 Web3
- KEthereum - Kotlin 版的 Web3
- Pyethereum - Python 版的以太坊核心客户端
- Drizzle - 基于 Redux 的用于链接以太坊的前端代码库
- Eventeum - 以太坊智能合约事件和后端微服务之间的桥梁
- Vortex - 可直接用于 DApp 的 Redux Store。通过 WebSockets 实现智能合约与后台数据的自动刷新。
相关工具
- Truffle boxes - 一些打包好的组件
- Local Raiden - 在 docker 容器中运行本地雷电网络以进行演示和测试
- Private networks deployment scripts - 私有 PoA 网络的开箱即用部署脚本
- Local Ethereum Network - 私有 PoW 网络的开箱即用部署脚本
- Kaleido - 使用 Kaleido 启动联盟区块链网络。非常适合 PoC 和测试
- Cheshire - CryptoKitties API 和智能合约的本地沙箱实现
- Solc - Solidity 编译器
- Solidity cli - 更快更好的编译 Solidity
- Ethereumjs - 以太坊实用的 javascript 代码库集合,比如 ethereumjs-util 和 ethereumjs-tx 等
- Ethjs - 简单好用的 JS 模块
- Eth lightwallet - 在 Node 和浏览器里用的以太坊轻钱包
- RLP - RLP 编码的 JS 版实现
- Solium - 用于识别和修复 Solidity 中的代码格式和安全问题
- Ethereal - 一个命令行工具,用于管理以太坊中的常见任务
- ABI decoder - 用于解码以太坊交易中数据参数和事件的库
- Ethereum ABI UI - 根据以太坊合约 ABI 自动生成 UI 表单字段和关联的验证器
- Eth crypto - 用于以太坊的加密javascript 函数以及将它们与 web3js 和 solidity 一起使用的教程
- Solidity flattener - 一个可以将工程中相互引用的合约合并到一个合约文件的工具
- JS IPFS API - JS 实现的与 IPFS API 交互的代码库
- Ganache - 具有 UI 的本地以太坊简单实现
- SpankCard - 浏览器里用的以太坊钱包
- Parity Signer - 允许签署交易的移动应用
- py-eth - 以太坊 Python 语言工具集
- Decode - 用以解析提交给本地 testrpc 节点的交易,使其更易读,更易于理解
基础架构相关
客户端
- Geth - Go 语言实现版本
- Parity - Rust 语言实现版本
- Cpp-ethereum - C++ 语言实现版本
- Pyethapp - 基于 pyethereum 的 Python 语言实现版本
- Trinity - 基于 py-evm 的 Python 语言实现版本
- Ethereumjs - 基于 ethereumjs-vm 的 JS 实现版本
- Ethereumj - Java 语言实现版本
- Harmony - 基于 Ethereumj 的以太坊节点实现,EtherCamp出品
- Seth - 命令行版的 MetaMask
- Mustekala - 以太坊轻客户端实现,MetaMask 团队出品
- Exthereum - Elixir 语言实现版本
- EWF Parity - 兼容以太坊的能源区块链客户端
- Quorum - 基于以太坊改造的关注数据隐私的授权访问区块链, JP Morgan 出品
存储
- Swarm - 去中心化存储平台和内容分发服务,是以太坊 web3 技术栈的基础层服务
- IPFS - 去中心化存储网络,致力于使网络更快,更安全,更开放的点对点超媒体协议
- IPFS-Store - 带检索功能的 IPFS 服务 API
- OrbitDB - 基于 IPFS 的去中心化数据库
消息
- Whisper - DApps 相互通信的通信协议, 以太坊 web3 技术栈的基础层服务
- DEVp2p Wire Protocol - 以太坊节点间的点对点通信
钱包
- Metamask - 广为实用的浏览器插件钱包
- Gnosis multisig wallet - 多重签名钱包
- Mist - 官方钱包
- MyEtherWallet - 安全方便地与区块链交互的工具
- Ether Address Lookup - 以太坊地址检测 Chrome 浏览器插件
- MyCrypto - 和 MyEtherWallet 类似的钱包工具
- Portis - 方便用户使用 DApp 的 web 端钱包
- Toshi - 移动端 DApp 浏览器
- Trust - 移动端以太坊钱包
- Status - 基于 react 实现的移动端以太坊操作系统
- imToken - 广为使用的闭源钱包
- WallETH - 开源的 Android 以太坊钱包
- Trezor - 知名度很高的硬件钱包
- Ledger - 支持多币种的硬件钱包
- KeepKey - 另一款硬件钱包
浏览器
- Etherscan - 最为流行的以太坊浏览器,用于查看交易信息和合约代码
- Etherchain Light - 用于以太坊私链的区块链浏览器
- POA Explorer - 支持 POA 共识的以太坊浏览器
- QuickBlocks - 访问以太坊区块链数据的工具集
gas 计算
- EthGasStation - 估计交易费用和时间的网站
- Petrometer - 计算特定账户每天所花费的 gas
- CryptoProf - 智能合约 gas 消耗测量工具
相关服务
- Oracalize - 预言机服务
- Infura - 以太坊节点服务
- Regis - 基于以太坊的数字资产登记平台
- uPort - 身份认证
- Netstats - 以太坊网络统计
- ENS - 以太坊域名系统
- Name Bazaar - 以太坊域名市场
- Quantstamp - 安全审计
- SmartCheck - solidity 源码静态分析
- MD4 Online Hash Function - hash 算法在线工具
测试网络水龙头(faucet)
合约代码库
- Zeppelin - 经过测试的可重用合约库比如 SafeMath、 ZeppelinOS 等
- Modular Libraries - 另一个合约库
- DateTime Library - 省 gas 的solidity 时间处理库
- Aragon - DAO 协议
- 0x - DEX 协议
测试
- Solidity code coverage - solidity 单元测试覆盖率
- Solidity coverage - 另一个 solidity 代码覆盖率工具
- Solidity function profiler - 列出合约函数
- Espresso - solidity 测试框架
- Eth tester - 以太坊应用测试套件
- Cliquebait - 简化验收测试的工具
- Hevm - 专为合约测试的 EVM 实现
- Ethereum graph debugger - solidity 调试图形化工具
安全
- gethspoit - Geth rpc 安全审计工具
- Mythril - 智能合约静态安全分析
- Oyente - 智能合约静态安全分析
- Porosity - 智能合约反编译与静态安全分析
- Ethersplay - EVM 反汇编
- Evmdis - EVM 反汇编
- Hydra - 去中心化的合约安全分析框架
- Solgraph - 图形化智能合约处理流程
- Manticore - 合约分析工具
- Solidity security blog - 合约安全分析博客
- Awesome Buggy ERC20 Tokens - 问题合约汇集
- 智能合约最佳实践 - by ConsenSys
- Safety wiki - 以太坊安全
知识
- CryptoZombies - 以太坊僵尸教程
- Solidity idiosyncrasies - solidity 陷阱,局限性和特质
- Ethereum development with Go - 用 go 语言进行以太坊开发
- Chainshot building blocks - 免费课程
- Delegate call - token 激励的问答社区
- Stackexchange - 问答社区
- r/EthDev - Subreddit
- Ethernaut - 游戏中掌握智能合约安全
治理
- Ethresear.ch - 参与以太坊研究工作的论坛, 包括但不限于: Casper, Sharding, EVM improvements, Crytpeconomics, Plasma and State-channels
- Fellowship of Ethereum Magicians - 以太坊社区论坛
- EIPs - 以太坊改进提案库
- ERCs - The Ethereum Request for Comment repository
参考资料
- Wiki - 以太坊知识库
- Yellow Paper - 以太坊黄皮书
- Beige Paper - 不带那些特殊符号的以太坊黄皮书
- 精通以太坊 - by Andreas M. Antonopoulos, Gavin Wood
- EVM opcodes - 以太坊指令集
- EVM illustrated - 以太坊虚拟机的解释文档
- 4bytes - 合约 4 字节方法签名库
网友评论