开发语言、框架与工具

语言

  • 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)

  • Rinkeby faucet
  • Kovan faucet
  • Ropsten 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 调试图形化工具

安全

  • 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 字节方法签名库

关注微信公众

程序新视界

更多技术、架构、管理等知识分享,请关注微信公众号:程序新视界(ID:ershixiong_see_world)



以太坊开发者资源工具集合插图1

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2019/07/06/%e4%bb%a5%e5%a4%aa%e5%9d%8a%e5%bc%80%e5%8f%91%e8%80%85%e8%b5%84%e6%ba%90%e5%b7%a5%e5%85%b7%e9%9b%86%e5%90%88/