以太坊开发资源全面指南【2019】

本文汇总用于开发以太坊应用的各种工具、组件、设计模式、开发框架、教程等。

目录

新手入门

  • Solidity - 最流行的智能合约开发语言
  • Truffle - 最流行的智能合约开发、测试和部署框架。使用npm安装命令行工具即可开始编写你的第一个智能合约。
  • Metamask - 实现与DApp交互的Chrome浏览器扩展钱包
  • Truffle boxes - 用于以太坊生态系统的打包组件
  • OpenZeppelin新手套件 - 开发者整合工具箱,可以迅速启动支持智能合约的应用开发。 包括Truffle、 OpenZeppelin SDK、 用于智能合约审计的EVM包OpenZeppelin/contracts-ethereum-package以及一个react应用。
  • EthHub.io - 众包实现的以太坊文档集,包括其历史、治理、未来计划和开发资源等
  • Cobra - 一个快速、灵活且简洁的以太坊智能合约开发、测试及部署框架
  • Fortmatic - 一个简单易用的SDK,用于开发web3 DApp,无需扩展或下载
  • Portis - 自带SDK的非守护型钱包,无需安装任何东西即可与DApp轻松集成

开发者工具

智能合约开发

智能合约开发语言

  • Solidity - 以太坊智能合约开发语言
  • Bamboo - 另一种以太坊智能合约开发语言
  • Vyper - 新的实验性质的Pythonic智能合约开发语言
  • Flint - 目前还在开发当中的新开发语言,安全特性包括资产类型、状态迁移和安全整数等

开发框架

  • Truffle - 最流行的智能合约开发、测试与部署框架。Truffle套件包括Truffle、 GanacheDrizzle。 点击这里 查看Truffle的详细文档。
  • Embark - Dapp开发框架
  • Waffle - 高级智能合约开发测试框架,灵活、速度快,基于ethers.js实现
  • Dapp - Dapp开发框架,前身为DApple
  • Etherlime - 基于ethers.js的DApp开发框架
  • Parasol - 智能合约敏捷开发环境,包括测试、INFURA部署、自动生成合约文档等功能。 Paraso的特点是其高度的灵活性与定制支持能力。
  • 0xcert - 用于构建去中心化应用的JavaScript框架
  • OpenZeppelin SDK - 用于开发、编译、升级、部署以及智能合约交互的工具套件
  • sbt-ethereum - 用于智能合约交互与部署的文本终端,支持tab不全,支持钱包和ABI管理、ENS以及高级Scala集成
  • Brownie - 用于部署、测试及智能合约交互的Python框架
  • Cobra - 用于以太坊智能合约的开发、测试和部署的一个简单、高效且灵活的开发框架。

集成开发环境

其他工具

  • Atra Blockchain Services - 一个Web服务,用于构建、部署和维护以太坊区块链上的去中心化应用
  • Buidler - 一个可扩展的开发者工具,帮助智能合约开发者提高工作效率

测试链

  • ethnode - 运行一个开发用的以太坊节点(Geth或Parity),简单到只需要执行npm i -g ethnode && ethnode.
  • Ganache - 用于开发和测试的以太坊区块链仿真器,带有图形化界面和日志
  • Kaleido - 用于搭建一个联盟区块链,对概念验证和测试非常有帮助
  • Pantheon私有链 - 使用docker容器运行一个Pantheon私有链
  • 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网络的部署、治理
  • getho - DApp开发平台,包括PoA私有区块链和智能合约测试工具
  • Ethereum on Google Cloud - 搭建基于PoW共识的以太坊区块链
  • Infura - 提供以太坊API,支持Mainnet, Ropsten, Rinkeby, Goerli和Kovan

测试币Faucet

访问以太坊

前端开发包

  • Web3.js - Javascript Web3库
    • Eth.js - Javascript Web3 的一个替代库
    • Ethers.js - Javascript Web3 的另一个替代库,包含钱包功能以及一些有用的工具
    • light.js - 为轻客户端优化的一个响应式JS库
    • Web3Wrapper - Web3的Typescript替代库
    • Ethereumjs - 以太坊辅助功能集,例如 ethereumjs-utilethereumjs-tx
    • flex-contractflex-ether - 一个零配置的高层库,用于智能合约交互和交易构建
    • ez-ens 简单、零配置的以太坊命名服务地址解析器
    • web3x - web3.js的A TypeScript移植,其优势在于支持类型安全
  • Nethereum - 跨平台的以太坊开发框架
  • Drizzle - 连接区块链的Redux库
  • Tasit SDK - 采用React Native开发原生手机DApp的一个JavaScript SDK
  • Subproviders - 包含一些有益的提供器,用于 Web3-provider-engine
  • web3-react - 用于构建单页以太坊DApp的React框架
  • Vortex - 一个内置Dapp支持的Redux状态库。采用WebSocket实现智能、动态的后台数据刷新。 支持TruffleEmbark
  • Strictly Typed - Javascript替代
  • ChainAbstractionLayer - 使用单一接口实现与不过区块链的通信,支持以太坊
  • Delphereum - 访问以太坊区块链的Delphi接口,支持跨平台的原生DApp开发:Windows、macOS、iOS以及 Android.

后端开发包

开箱即用套件

  • Truffle boxes - 用于以太坊生态的组件套装
  • Pantheon Private Network - 在Docker容器内运行一个由Pantheon节点组成的私有链
  • Testchains - 用于快速响应的预配置 .NET 开发链
  • Blazor/Blockchain Explorer - Wasm区块链浏览器

  • Local Raiden - 在docker容器内运行一个本地Raiden网络,用于演示和测试

  • Private networks deployment scripts - 开箱即用的私有PoA网络部署脚本
  • Parity Demo-PoA Tutorial - 一个循序渐进的使用parity搭建一个PoA测试链的教程
  • Local Ethereum Network - 开箱即用的PoW私有链部署脚本
  • Kaleido - 用于快速搭建一个联盟区块链,对概念验证和测试很有帮助
  • Cheshire - 加密猫API和智能合约的本地沙箱实现,封装为Truffle Box
  • aragonCLI - 用于创建和开发Aragon应用及组织
  • ColonyJS - 一个JavaScript客户端,提供了与Colony网络智能合约交互的API
  • ArcJS - 一个访问DAOstack Arc以太坊智能合约的JavaScript开发库
  • Arkane Connect - 一个JavaScript客户端,提供了访问Arkane网络的API以及用于构建DApp的钱包提供器
  • Blocknative - Assist.js是一个可嵌入的组件,用于提高DApp的可用性。

以太坊ABI工具

  • ABI decoder - 用于解码以太坊交易中的数据参数和事件的开发库
  • ABI-gen - 基于合约ABI生成TypeScript合约包装类
  • Ethereum ABI UI - 基于合约ABI自动生成用户界面表单
  • headlong - 类型安全的合约ABI以及RLP编码Java库
  • One Click dApp - 基于ABI即时创建一个DApp并提供访问URL
  • Truffle Pig - 一个用于查找和读取Truffle生成的合约构件的开发工具,提供简单的HTTP API。 用于本地开发,通过http提供合约ABI
  • Ethereum Contract Service - 一个MESG服务,用于访问以太坊合约

设计模式及最佳实践

智能合约设计模式
可升级性

基础设施

以太坊客户端

存储

  • IPFS - 去中心化存储和文件引用
    • IPFS-Store - IPFS 存储服务,包含附加的搜索能力
    • OrbitDB - 基于IPFS的去中心化数据库
    • JS IPFS API - IPFS HTTP API的客户端JS开发库
    • TEMPORAL - 提供访问IFPS及其他分布式/去中心化存储协议的API
  • Swarm - 去中心化存储平台及内容分布服务,以太坊web3技术栈的原生基础层服务
  • Infura - 提供IPFS API网络和内容固定的云端服务

消息

  • Whisper - DApp的通信协议,以太坊Web3技术栈的原生基础层服务
  • DEVp2p Wire Protocol - 以太坊/Whisper节点的P2P通信协议
  • Pydevp2p - RLPx 网络层的Python实现

测试工具

  • Truffle Teams - 用于truffle项目的零配置持续集成
  • Solidity code coverage - Solidity代码覆盖工具
  • Solidity coverage - 用于Solidity智能合约代码覆盖检查的替代工具
  • Solidity function profiler - Solidity合约函数性能分析器
  • Sol-profiler - 另一个Solidity智能合约性能分析器
  • Espresso - 高速、并行、热从在的solidity测试框架
  • Eth tester - 以太坊应用测试工具套件
  • Cliquebait - 使用docker简化智能合约应用的集成与测试
  • Hevm - 特别用于单元测试和智能合约调试的EVM实现
  • Ethereum graph debugger - Solidity 图形化调试器
  • Tenderly CLI - 提供容易读懂的栈回溯,加速应用开发
  • Solhint - 代码分析器,用于智能合约开发的安全、代码风格及最佳实践规则
  • Ethlint - 用于识别和修正solidity中的代码风格和安全问题的代码分析器,前身为Solium
  • Decode - 一个NPM包,用于解析提交到本地testrpc节点的交易,以便开发者阅读和理解交易内容
  • truffle-assertions - 一个NPM包,包含额外的断言及测试辅助工具,支持事件是否触发的断言。
  • Psol - Solidity词法预处理器,使用mustache.js风格的语法,支持宏、条件编译,可自动包含远程依赖
  • solpp - Solidity预处理器,包含指令、表达式语言、高精度计算等功能
  • Decode and Publish – 解析、发布以太坊裸交易,类似于https://live.blockcypher.com/btc-testnet/decodetx/
  • Doppelgänger - 用于单元测试的智能合约依赖模拟库
  • rocketh - 测试以太坊智能合约的库,支持自选web库和测试运行期。
  • pytest-cobra - PyTest的以太坊智能合约插件

安全工具

监视

  • amberdata.io - 提供实时监视、异常检测、代币指标、智能合约审计等,图形化可视,支持区块链搜索
  • Neufund - Smart Contract Watch - 智能合约和交易监视工具
  • Scout - 将以太坊智能能合约的活动和事件日志转化为实时数据流
  • Tenderly - 以仪表盘形式提供可靠的智能合约监视和审计,无需用户自建主机
  • Chainlyt - 探索智能合约的而使用情况,跟踪特定合约函数的调用
  • BlockScout - 审查分析EVM类区块链的工具。以太坊网络的唯一完整功能的区块链浏览器

其他工具

  • aragonPM - 一个去中心化的包管理器,基于 aragonOS和以太坊
  • Truffle boxes - 用于快速开发DApp的组件套装
  • Solc - Solidity编译器
  • Sol-compiler - 项目层的solidity编译器
  • Solidity cli - 编译器命令行
  • Solidity flattener - 拉平solidity项目,有利于可视化导入的合约
  • Sol-merger - 另一个将导入合约合并为单一文件的工具
  • RLP - RLP编码的JavaScript实现
  • eth-cli - 有助于学习和开发以太坊应用的命令行工具套装
  • Ethereal - 可以完成常见任务的以太坊命令行工具
  • Eth crypto - 以太坊密码学算法js库,与web3js和solidity一起使用
  • Parity Signer - 手机应用可以用来进行交易签名
  • py-eth - 以太坊生态中的python工具集
  • truffle-flattener - 合并truffle项目中的solidity文件及依赖
  • Decode - 解码交易
  • 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代码
  • EthToolbox - 包含链下工具的web应用,例如密钥恢复、地址格式化、单位换算等等
  • Unity3dSimpleSample - 以太坊和Unity的集成演示
  • Flappy - 以太坊和Unity的集成演示
  • Wonka - Nethereum业务规则引擎示例
  • Resolver-Engine - 一组用于标准化solidity输入和构件解析的工具

智能合约标准及开发库

ERCs - 以太坊ERC仓库

  • 代币
    • ERC-20 - 同质化代币合约标准
    • ERC-721 - 非同质化代币合约标准
    • ERC-777 - 同质化代币合约改进标准
    • ERC-918 - 可铸造代币标准
  • ERC-165 - 发布和检测智能合约所实现接口的标准
  • ERC-725 - 密钥管理和执行的代理合约,目的是建立基于区块链的身份识别
  • ERC-173 - 合约持有者判定接口标准

智能合约开发库

第2层架构开发指南

可扩展性

支付与状态通道

Plasma

侧链

隐私与保密

zkSNARKs
  • ZoKrates - 以太坊 zkSNARKS工具箱
  • The AZTEC Protocol - 以太坊网络的保密交易,在主网已激活
  • 代理再加密 (PRE)
    • NuCypher Network - 代理再加密网络,用于实现去中心化系统的数据隐私
    • pyUmbral - PRE密码学开发库
  • 全同态加密 (FHE)
    • NuFHE - GPU 加速的FHE开发库

UI组件


原文链接:ethereum developer tools list

汇智网翻译,转载请标明出处