以太坊开发资源大全【2019】

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

目录

  • 新手入门
  • 开发者工具
    • 智能合约开发语言
    • 开发框架
    • 集成开发环境
    • [测试链(#测试链)
    • 测试币Faucet
  • 访问以太坊
    • 前端开发包
    • 后端开发包
    • 开箱即用套件
    • 以太坊ABI工具
  • 设计模式与最佳实践
    • 智能合约设计模式
    • 可升级性
  • 基础设施
    • 以太坊客户端
    • 存储
    • 消息
  • 测试工具
  • 安全工具
  • 监视
  • 其他工具
  • 智能合约标准及开发库
    • [ERCs - 以太坊ERC仓库](#ERCs - 以太坊ERC仓库)
    • 智能合约开发库
  • 第2层架构开发指南
    • 可扩展性
    • 支付与状态通道
    • Plasma
    • 侧链
  • 隐私与保密
    • zkSNARKs
  • UI组件

新手入门

  • 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轻松集成

  • java比特币开发详解 - Java工程师比特币开发学习课程。

  • php比特币开发详解 - Php工程师比特币开发学习课程。

  • c#比特币开发详解 - C#工程师比特币开发学习课程。

  • java以太坊开发详解 - java和android程序员进行区块链以太坊开发的web3j详解。

  • python以太坊详解 - python工程师使用web3.py进行区块链以太坊开发的详解。

  • php以太坊开发详解 - 使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。

  • 以太坊智能合约及DApp开发入门 - 智能合约与dapp应用开发,适合入门。

  • 以太坊电商DApp开发详解 - 使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。

  • Flutter以太坊开发详解 - 详细讲解如何使用为Flutter应用增加以太坊区块链支持。

  • ERC721以太坊通证实战 - 以一个数字艺术品创作与分享DApp的实战开发为主线讲解NFT规范及应用开发。

  • C#以太坊开发详解 - 讲解如何使用C#开发基于.Net的以太坊应用。

  • EOS智能合约与DApp开发入门 - 帮助你快速入门EOS区块链去中心化应用的开发并完成一个便签DApp的开发。

  • 深入浅出玩转EOS钱包开发 - 以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发。

  • Hyperledger Fabric 区块链开发详解 - 适合Nodejs工程师学习Fabric区块链开发。

  • Hyperledger Fabric java 区块链开发详解 - 适合java工程师学习Fabric区块链开发的最佳选择。

  • tendermint区块链开发详解 - 适合希望使用tendermint进行区块链开发的工程师

开发者工具

智能合约开发

智能合约开发语言

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

开发框架

  • Truffle - 最流行的智能合约开发、测试与部署框架。Truffle套件包括Truffle、
    Ganache和 Drizzle。
    点击这里
    查看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 - 用于以太坊智能合约的开发、测试和部署的一个简单、高效且灵活的开发框架。

集成开发环境

  • Remix - Web IDE,内置静态分析、测试链VM
  • Superblocks Lab - Web IDE,内置区块链VM、Metamask集成、交易日志等
  • Atom - Atom 编辑器 + Atom Solidity Linter + Etheratom + autocomplete-solidity + language-solidity
  • Pragma - Solidity极简编辑器,支持智能合约接口自动生成
  • Vim solidity - Solidity的Vim语法文件
  • Visual Studio Code - Visual Studio Code编辑器扩展,支持Solidity
  • Intellij Solidity Plugin - JetBrains IntelliJ Idea IDE )的开源扩展,支持
    语法高亮、格式化、代码完成等
  • YAKINDU Solidity Tools - 基于Eclipse的IDE,基于上下文的代码完成及帮助、代码导航、语法加色等
  • Eth Fiddle - The Loom Network开发的IDE,支持编写、编译、调试智能合约,方便分享和查找代码片段

其他工具

  • 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

  • Rinkeby faucet
  • Kovan faucet
  • Ropsten faucet
  • Goerli faucet
  • Universal faucet
  • Nethereum.Faucet - 一个C#/.NET的faucet

访问以太坊

前端开发包

  • Web3.js - Javascript Web3库
    • Eth.js - Javascript Web3 的一个替代库
    • Ethers.js - Javascript Web3 的另一个替代库,包含钱包功能以及一些有用的工具
    • light.js - 为轻客户端优化的一个响应式JS库
    • Web3Wrapper - Web3的Typescript替代库
    • Ethereumjs - 以太坊辅助功能集,例如
      ethereumjs-util 和
      ethereumjs-tx
    • flex-contract和flex-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实现智能、动态的后台数据刷新。
    支持Truffle 和Embark。
  • Strictly Typed - Javascript替代
    • elm-ethereum
    • purescript-web3
  • ChainAbstractionLayer - 使用单一接口实现与不过区块链的通信,支持以太坊
  • Delphereum - 访问以太坊区块链的Delphi接口,支持跨平台的原生DApp开发:Windows、macOS、iOS以及 Android.

后端开发包

  • Web3.py - Python Web3
  • Web3.php - PHP Web3
  • Ethereum-php - PHP Web3
  • Web3j - Java Web3
  • Nethereum - .Net Web3
  • Ethereum.rb - Ruby Web3
  • Web3.hs - Haskell Web3
  • KEthereum - Kotlin Web3
  • Pyethereum - 以太坊项目的Python核心库
  • Eventeum - 以太坊智能合约事件和后台微服务桥接实现,Java实现
  • Ethereumex - Elixir实现的以太坊JSON-RPC 客户端
  • EthContract - 帮助查询以太坊智能合约的Elixir辅助工具包
  • Ethereum Contract Service - 一个MESG服务,实现与以太坊智能合约的交互
  • Ethereum Service - 一个MESG服务,监听以太坊事件并与区块链交互

开箱即用套件

  • 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服务,用于访问以太坊合约

设计模式及最佳实践

智能合约设计模式
  • Dappsys: Safe, simple, and flexible Ethereum contract building blocks
    • 包含了以太坊Solidity合约开发中常见问题的解决方案,例如
      • 白名单
      • 可升级的ERC20代币
      • ERC20代币保险库
      • 身份验证(RBAC)
      • …更多…
    • 提供MakerDAO or The TAO的开发模块
    • 在创建自己的、未测试的解决方案之前应当进行咨询
    • 使用方法说明参见Dapp-a-day 1-10 以及 Dapp-a-day 11-25
  • OpenZeppelin Contracts: An open framework of reusable and secure smart contracts in the Solidity language.
    • 可能是使用最广泛的开发库和智能合约
    • 类似于Dappsys,不过与Truffle框架的集成更紧密
    • 博客:安全审计方面的最佳实践
  • Assembly高级工作组
  • 简化以太坊多签 -
  • CryptoFin Solidity Auditing Checklist - 主网上线的智能合约的审计清单
  • aragonOS: A smart contract framework for building DAOs, Dapps and protocols
    • 可升级性: 智能合约可以升级到新版本
    • 权限控制:通过使用authauthP修饰符,你可以保护合约功能只允许授权用户访问
    • 转发器: aragonOS应用可以将其执行意图转发至其他应用
可升级性
  • Blog von Elena Dimitrova, Dev at colony.io
    • https://blog.colony.io/writing-more-robust-smart-contracts-99ad0a11e948
    • https://blog.colony.io/writing-upgradeable-contracts-in-solidity-6743f0eecc88
  • Aragon research blog
    • 库驱动的开发
    • Solditiy代码高级部署技术
  • OpenZeppelin的代理库

基础设施

以太坊客户端

  • Pantheon - PegaSys开发的Java客户端

  • Geth - Go客户端

  • Parity - Rust客户端

  • Aleth - C++ 客户端

  • Nethermind - .NET Core 客户端

  • Pyethapp - Python 客户端,基于 pyethereum

  • Infura - 提供以太坊客户端兼容API的云端服务

  • Trinity - Python客户端,基于py-evm

  • Ethereumjs - JS客户端,基于ethereumjs-vm

  • Ethereumj - 以太坊基金会提供的Java 客户端

  • Harmony - EtherCamp提供的Java客户端

  • Seth - 命令行的MetaMask

  • Mustekala - Metamask的以太坊轻客户端

  • Exthereum - Elixir客户端

  • EWF Parity - Energy Web基金会提供的客户端,用于Tobalaba测试链

  • Quorum - 一个许可制的以太坊实现,支持数据隐私,开发者JP Morgan

  • Mana - Elixir实现的以太坊全节点

存储

  • 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的以太坊智能合约插件

安全工具

  • MythX - 面向以太坊开发者的安全验证平台和工具生态
  • Mythril Classic - 开源的EVM字节码安全分析工具
  • Oyente - 另一个智能合约安全静态分析工具
  • Securify - 以太坊智能合约安全扫描器
  • SmartCheck - 静态智能合约安全分析器
  • Porosity - 以太坊智能合约反编译和安全分析工具
  • Ethersplay - EVM 反汇编工具
  • Evmdis - 另一个EVM反汇编工具
  • Hydra - 去中心化安全研究框架
  • Solgraph - 可视化Solidity控制流,用于智能合约安全分析
  • Manticore - 智能合约的符号化执行工具
  • Slither - Solidity静态分析框架
  • Adelaide - Solidity编译器的SECBIT静态分析扩展
  • solc-verify - Solidity智能合约的模块化验证器
  • Solidity security blog - 已知攻击及常见反模式的全面清单
  • Awesome Buggy ERC20 Tokens - ERC20智能合约漏洞集
  • Free Smart Contract Security Audit - 来自Callisto网络的免费的智能合约安全审计

监视

  • 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 - 合约持有者判定接口标准

智能合约开发库

  • Zeppelin - 包含经过测试的可复用智能合约,
    例如SafeMath 和 ZeppelinOS
  • cryptofin-solidity - 用于构建安全、节约的智能合约的solidity开发库
  • Modular Libraries - 一组用于EVM区块链的开发包
  • DateTime Library - 一个gas低耗的Solidity日期和时间库
  • Aragon - DAO协议,包含aragonOS智能合约开发框架 ,
    关注焦点是可升级性和治理。
  • ARC - DAO操作系统,DAO技术栈的基础层
  • 0x - DEX 协议
  • Token Libraries with Proofs - 包含代币合约的正确性证明实现。
  • Provable API - 提供使用Provable服务的合约,支持链下动作、数据提取和计算

第2层架构开发指南

可扩展性

支付与状态通道

  • Ethereum Payment Channel - 50行代码实现以太坊支付通道
  • µRaiden Documentation - µRaiden 发送/接收指南

Plasma

  • 学习Plasma - 涵盖所有Plasma变体(MVP/Cash/Debit)
  • Plasma MVP - OmiseGO 的Plasm最小可行产品实现
  • Plasma MVP Golang - Plasma的Golang最小可行产品实现
  • Plasma Cash - 简单的Plasma现金实现
  • Plasma Exit - 自动监测或退出Omisego Plasma网络
  • Plasma OmiseGo Watcher - 访问Plasma OmiseGo网络并通知任何拜占庭事件

侧链

  • POA Network
    • POA Bridge
    • POA Bridge UI
    • POA Bridge Contracts
  • Loom Network

隐私与保密

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

UI组件

  • aragonUI - 包含DAPP组件的React开发库
  • components.bounties.network - 包含DApp组件的React开发库
  • lorikeet.design - 包含DApp组件的React开发库
  • ui.decentraland.org - 包含DApp组件的React开发库
  • dapparatus - 可复用的react dapp组件
  • Metamask ui - Metamask React 组件
  • DappHybrid - 跨平台混合式托管机制,用于基于web的去中心化应用
  • Nethereum.UI.Desktop - 跨平台桌面钱包示例
  • eth-button - 最简的捐赠按钮
  • Rimble Design System - 去中心化应用的自适应组件和设计规范

原文链接:以太坊开发资源全面指南 — 汇智网

你可能感兴趣的:(以太坊开发)