链就码林高手

本页为读者提供以太坊应用程序开发的工具、组件、模式以及平台列表。

本列表译自ConsenSys,促进开发者之间工具、开发模式和组件的共享十分有必要。

感谢ConsenSys的整理!

极速上手工具

  • Solidity 主流智能合约编程语言

  • Truffle 主流智能合约开发、测试和部署框架。通过npm安装cli,然后就可以开始编写您的第一个智能合约

  • Metamask 可与Dapps进行交互的Chrome插件钱包

  • Truffle boxes 以太坊生态系统的打包组件

  • OpenZeppelin Starter Kits 多合一入门工具箱,供开发人员快速上手基于智能合约的应用程序。包括Truffle、OpenZeppelin SDK、OpenZeppelin/contracts-ethereum-package EVM软件包、react-app和rimble

  • EthHub.io 针对以太坊历史、治理、发展计划和开发资源的全面介绍

  • Cobra 快速,灵活、简单的以太坊智能合约开发环境框架,在以太坊虚拟机 (EVM) 上进行测试和部署

  • Fortmatic 易于使用的SDK,无需扩展或下载即可构建web3 DApp

  • Portis 配备SDK的非托管钱包,可轻松与DApp进行交互而无需其他安装

  • Kauri.io 基于社区的Web3和新兴技术知识平台

  • dfuse 易用的区块链API,构建一流的DApp

开发工具

智能合约开发

智能合约语言

  • Solidity - 以太坊智能合约编程语言

  • Vyper - 实验性python式编程语言

  • Flint - 具有安全功能的新智能合约编程语言,包含资产类型、状态转换和安全整数,仍处于开发阶段

框架

  • Truffle - 主流智能合约开发、测试和部署框架。Truffle套件包括Truffle、Ganache, and Drizzle. (教程

  • Embark - DApp开发框架

  • Waffle - 小型、灵活、快速的高级智能合约开发和测试框架(基于ethers.js)

  • Dapp - DApp开发框架

  • Etherlime - 基于ethers.js的DApp部署框架

  • Parasol - 具备测试、Infura部署、自动合约文档等功能的智能合约开发环境

  • 0xcert - 编写DApp的JavaScript框架

  • OpenZeppelin SDK - 一套协助开发、编译、升级、部署智能合约并与之交互的工具

  • sbt-ethereum - 制表符完整的、基于文本的控制台,用于智能合约交互和开发,包括钱包和ABI管理、ENS支持以及高级Scala集成

  • Brownie - Python框架,用于以太坊智能合约部署、测试、交互

  • Cobra - 灵活简易的以太坊智能合约开发环境框架,在EVM上进行测试和部署

IDEs

  • Remix - 具有内置静态分析功能的Web IDE,可测试区块链虚拟机

  • Ethereum Studio - 网页IDE。内置浏览器区块链虚拟机,Metamask集成(一键测试网/主网部署),包括事务记录器和实时编码WebApp等众多其他功能。

  • Atom - 原子编辑器

  • Vim solidity - Solidity Vim语法文件

  • Visual Studio Code - Visual Studio Code扩展,增加对Solidity的支持

  • Ethcode - Visual Studio Code扩展,用于编译、执行和调试Solidity&Vyper程序

  • Intellij Solidity Plugin - JetBrains IntelliJ Idea IDE(免费/商业)的开源插件,具有语法高亮、格式设置、代码完成等功能

  • YAKINDU Solidity Tools - 基于Eclipse的IDE。具有代码完成和帮助、代码导航、语法着色、内置编译器、快速修复和模板功能。

  • Eth Fiddle - Loom Network开发的IDE,可编写、编译和调试智能合约。易于共享和查找代码片段。

其他工具

网络测试工具

  • ethnode - 运行以太坊节点(Geth或Parity)进行开发和测试

  • Ganache - 具有可视化UI和日志的以太坊区块链的测试类应用程序

  • Kaleido - 使用Kaleido扩展联盟区块链网络,非常适合PoC和测试

  • Besu Private Network - 在Docker容器中运行Besu节点的专用网络

  • 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网络的部署和治理

  • Ethereum on Google Cloud - 基于PoW构建以太坊网络

  • Infura - 访问以太坊网络的API(主网/Ropsten/Rinkeby/Goerli/Kovan)

  • CloudFlare Distributed Web Gateway - 通过Cloudflare对以太坊网络进行访问,而无需运行的节点

  • Chainstack - 共享和专用的以太坊节点即服务(主网/Ropsten)

Ether水龙头 (Faucets)

以太坊通信

前端以太坊APIs

  • Web3.js - Javascript Web3

    • Eth.js - Javascript Web3替代

    • Ethers.js - Javascript Web3替代,实用程序和钱包功能

    • light.js - 轻客户端优化的高级反应式JS库

    • Web3Wrapper - TypeScript语言Web3替代

    • Ethereumjs - 以太坊实用程序功能集合,例如ethereumjs-utilethereumjs-tx

    • flex-contractflex-ether - 现代化的零配置高级库,用于与智能合约进行交互并进行交易

    • ez-ens - 简单的零配置以太坊域名服务(ENS)地址解析器

    • web3x - web3.js的TypeScript端口。结构小巧和全类型安全性,包括合约交互安全性

  • Nethereum - 跨平台以太坊开发框架

  • dfuse - 以使用dfuse Ethereum API的TypeScript库

  • Drizzle - 将前端连接到区块链的Redux库

  • Tasit SDK - JavaScript SDK,使用React Native制作本地以太坊移动DApp

  • Subproviders - 几个有用的子提供程序,可与Web3-provider-engine结合使用(包括一个LedgerSubprovider,用于为DApp添加Ledger硬件钱包支持)

  • web3-react - 用于构建单页以太坊DApp的React框架

  • ethvtx - 支持以太坊且框架不可知的Redux存储配置(文档

  • 严格类型 - Javascript替代

  • ChainAbstractionLayer - 通过单个界面与不同的区块链(包括以太坊)进行通信。

  • Delphereum - 以太坊区块链的Delphi接口,可以开发适用于Windows/macOS/iOS和Android的本地DApp

Backend Ethereum APIs

  • 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

  • Eventeum - A bridge between Ethereum smart contract events and backend microservices, written in Java by Kauri

  • Ethereumex - Elixir JSON-RPC client for the Ethereum blockchain

  • Ethereum-jsonrpc-gateway - A gateway that allows you to run multiple Ethereum nodes for redundancy and load-balancing purposes. Can be ran as an alternative to (or on top of) Infura. Written in Golang.

  • EthContract - A set of helper methods to help query ETH smart contracts in Elixir

  • Ethereum Contract Service - A MESG Service to interact with any Ethereum contract based on its address and ABI.

  • Ethereum Service - A MESG Service to interact with events from Ethereum and interact with it.

  • Marmo - Python, JS, and Java SDK for simplifying interactions with Ethereum. Uses relayers to offload transaction costs to relayers.

Bootstrap/out of box tools

  • Truffle boxes - Packaged components for the Ethereum ecosystem

  • Besu Private Network - Run a private network of Besu nodes in a Docker container

  • Testchains - Pre-configured .NET devchains for fast response (PoA) ** Blazor/Blockchain Explorer - Wasm blockchain explorer (functional sample)

  • Local Raiden - Run a local Raiden network in docker containers for demo and testing purposes

  • Private networks deployment scripts - Out-of-the-box deployment scripts for private PoA networks

  • Parity Demo-PoA Tutorial - Step-by-Step tutorial for building a PoA test chain with 2 nodes with Parity authority round consensus

  • Local Ethereum Network - Out-of-the-box deployment scripts for private PoW networks

  • Kaleido - Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing

  • Cheshire - A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box

  • aragonCLI - aragonCLI is used to create and develop Aragon apps and organizations.

  • ColonyJS - JavaScript client that provides an API for interacting with the Colony Network smart contracts.

  • ArcJS - Library that facilitates javascript application access to the DAOstack Arc ethereum smart contracts.

  • Arkane Connect - JavaScript client that provides an API for interacting with Arkane Network, a wallet provider for building user-friendly dapps.

  • Blocknative - Assist.js is an embeddable widget that improves Dapp usability. The tool programmatically identifies and outlines clear actions for end-users to follow when interacting with MetaMask to overcome — and even prevent — common pitfalls and obstacles.

Ethereum ABI (Application Binary Interface) tools

  • ABI decoder - library for decoding data params and events from Ethereum transactions

  • ABI-gen - Generate Typescript contract wrappers from contract ABI's.

  • Ethereum ABI UI - Auto-generate UI form field definitions and associated validators from an Ethereum contract ABI

  • headlong - type-safe Contract ABI and Recursive Length Prefix library in Java

  • One Click dApp - Instantly create a dApp at a unique URL using the ABI.

  • Truffle Pig - a development tool that provides a simple HTTP API to find and read from Truffle-generated contract files, for use during local development. Serves fresh contract ABIs over http.

  • Ethereum Contract Service - A MESG Service to interact with any Ethereum contract based on its address and ABI.

  • Nethereum-CodeGenerator - A web based generator which creates a Nethereum based C# Interface and Service based on Solidity Smart Contracts.

Patterns & Best Practices

Patterns for Smart Contract Development

Upgradeability

Infrastructure

Ethereum Clients

  • Besu - an open-source Ethereum client developed under the Apache 2.0 license and written in Java. The project is hosted by Hyperledger.

  • Geth - Go client

  • Parity - Rust client

  • Aleth - C++ client

  • Nethermind - .NET Core client

  • Infura - A managed service providing Ethereum client standards-compliant APIs

  • Trinity - Python client using py-evm

  • Ethereumjs - JS client using ethereumjs-vm

  • Seth - Seth is an Ethereum client tool—like a "MetaMask for the command line"

  • Mustekala - Ethereum Light Client project of Metamask

  • Exthereum - Elixir client

  • EWF Parity - Energy Web Foundation client for the Tobalaba test network

  • Quorum - A permissioned implementation of Ethereum supporting data privacy by JP Morgan

  • Mana - Ethereum full node implementation written in Elixir.

  • Chainstack - A managed service providing shared and dedicated Geth nodes

  • QuikNode - Blockchain developer cloud with API access and node-as-a-service.

Storage

  • IPFS - Decentralised storage and file referencing

    • Mahuta - IPFS Storage service with added search capability, formerly IPFS-Store

    • OrbitDB - Decentralised database on top of IPFS

    • JS IPFS API - A client library for the IPFS HTTP API, implemented in JavaScript

    • TEMPORAL - Easy to use API into IPFS and other distributed/decentralised storage protocols

  • Swarm - Distributed storage platform and content distribution service, a native base layer service of the Ethereum web3 stack

  • Infura - A managed IPFS API Gateway and pinning service

  • 3Box Storage - An api for user controlled, distrubuted storage. Built on top of IPFS and Orbitdb.

Messaging

  • Whisper - Communication protocol for DApps to communicate with each other, a native base layer service of the Ethereum web3 stack

  • DEVp2p Wire Protocol - Peer-to-peer communications between nodes running Ethereum/Whisper

  • Pydevp2p - Python implementation of the RLPx network layer

  • 3Box Threads - API to allow developers to implement IPFS persisted, or in memory peer to peer messaging.

Testing Tools

  • Truffle Teams - Zero-Config continuous integration for truffle projects

  • Solidity code coverage - Solidity code coverage tool

  • Solidity coverage - Alternative code coverage for Solidity smart-contracts

  • Solidity function profiler - Solidity contract function profiler

  • Sol-profiler - Alternative and updated Solidity smart contract profiler

  • Espresso - Speedy, parallelised, hot-reloading solidity test framework

  • Eth tester - Tool suite for testing Ethereum applications

  • Cliquebait - Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network

  • Hevm - The hevm project is an implementation of the Ethereum virtual machine (EVM) made specifically for unit testing and debugging smart contracts

  • Ethereum graph debugger - Solidity graphical debugger

  • Tenderly CLI - Speed up your development with human readable stack traces

  • Solhint - Solidity linter that provides security, style guide and best practice rules for smart contract validation

  • Ethlint - Linter to identify and fix style & security issues in Solidity, formerly Solium

  • Decode - npm package which parses tx's submitted to a local testrpc node to make them more readable and easier to understand

  • truffle-assertions - An npm package with additional assertions and utilities used in testing Solidity smart contracts with truffle. Most importantly, it adds the ability to assert whether specific events have (not) been emitted.

  • Psol - Solidity lexical preprocessor with mustache.js-style syntax, macros, conditional compilation and automatic remote dependency inclusion.

  • solpp - Solidity preprocessor and flattener with a comprehensive directive and expression language, high precision math, and many useful helper functions.

  • Decode and Publish – Decode and publish raw ethereum tx. Similar to https://live.blockcypher.com/btc-testnet/decodetx/

  • Doppelgänger - a library for mocking smart contract dependencies during unit testing.

  • rocketh - A simple lib to test ethereum smart contract that allow to use whatever web3 lib and test runner you choose.

  • pytest-cobra - PyTest plugin for testing smart contracts for Ethereum blockchain.

Security Tools

  • MythX - Security verification platform and tools ecosystem for Ethereum developers

  • Mythril - Open-source EVM bytecode security analysis tool

  • Oyente - Alternative static smart contract security analysis

  • Securify - Security scanner for Ethereum smart contracts

  • SmartCheck - Static smart contract security analyzer

  • Ethersplay - EVM disassembler

  • Evmdis - Alternative EVM disassembler

  • Hydra - Framework for cryptoeconomic contract security, decentralised security bounties

  • Solgraph - Visualise Solidity control flow for smart contract security analysis

  • Manticore - Symbolic execution tool on Smart Contracts and Binaries

  • Slither - A Solidity static analysis framework

  • Adelaide - The SECBIT static analysis extension to Solidity compiler

  • solc-verify - A modular verifier for Solidity smart contracts

  • Solidity security blog - Comprehensive list of known attack vectors and common anti-patterns

  • Awesome Buggy ERC20 Tokens - A Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected

  • Free Smart Contract Security Audit - Free smart contract security audits from Callisto Network

  • Piet - A visual Solidity architecture analyzer

Monitoring

  • Alethio - An advanced Ethereum analytics platform that provides live monitoring, insights and anomaly detection, token metrics, smart contract audits, graph visualization and blockchain search. Real-time market information and trading activities across Ethereum's decentralized exchanges can also be explored.

  • amberdata.io - Provides live monitoring, insights and anomaly detection, token metrics, smart contract audits, graph visualization and blockchain search.

  • Neufund - Smart Contract Watch - A tool to monitor a number of smart contracts and transactions

  • Scout - A live data feed of the activities and event logs of your smart contracts on Ethereum

  • Tenderly - A platform that gives users reliable smart contract monitoring and alerting in the form of a web dashboard without requiring users to host or maintain infrastructure

  • Chainlyt - Explore smart contracts with decoded transaction data, see how the contract is used and search transactions with specific function calls

  • BlockScout - A tool for inspecting and analyzing EVM based blockchains. The only full featured blockchain explorer for Ethereum networks.

  • Terminal - A control panel for monitoring dapps. Terminal can be used to monitor your users, dapp, blockchain infrastructure, transactions and more.

  • Ethereum-watcher - An extensible framework written in Golang for listening to on-chain events and doing something in response.

Other Miscellaneous Tools

  • aragonPM - a decentralized package manager powered by aragonOS and Ethereum. aragonPM enables decentralized governance over package upgrades, removing centralized points of failure.

  • Truffle boxes - Packaged components for building DApps fast.

    • Cheshire - A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box

  • Solc - Solidity compiler

  • Sol-compiler - Project-level Solidity compiler

  • Solidity cli - Compile solidity-code faster, easier and more reliable

  • Solidity flattener - Combine solidity project to flat file utility. Useful for visualizing imported contracts or for verifying your contract on Etherscan

  • Sol-merger - Alternative, merges all imports into single file for solidity contracts

  • RLP - Recursive Length Prefix Encoding in JavaScript

  • eth-cli - A collection of CLI tools to help with ethereum learning and development

  • Ethereal - Ethereal is a command line tool for managing common tasks in Ethereum

  • Eth crypto - Cryptographic javascript-functions for Ethereum and tutorials to use them with web3js and solidity

  • Parity Signer - mobile app allows signing transactions

  • py-eth - Collection of Python tools for the Ethereum ecosystem

  • truffle-flattener - Concats solidity files developed under Truffle with all of their dependencies

  • Decode - npm package which parses tx's submitted to a local testrpc node to make them more readable and easier to understand

  • TypeChain - Typescript bindings for Ethereum smartcontracts

  • EthSum - A Simple Ethereum Address Checksum Tool

  • PHP based Blockchain indexer - allows indexing blocks or listening to Events in PHP

  • Purser - JavaScript universal wallet tool for Ethereum-based wallets. Supports software, hardware, and Metamask -- brings all wallets into a consistent and predictable interface for dApp development.

  • Node-Metamask - Connect to MetaMask from node.js

  • Solidity-docgen - Documentation generator for Solidity projects

  • Ethereum ETL - Export Ethereum blockchain data to CSV or JSON files

  • prettier-plugin-solidity - Prettier plugin for formatting Solidity code

  • Unity3dSimpleSample - Ethereum and Unity integration demo

  • Flappy - Ethereum and Unity integration demo/sample

  • Wonka - Nethereum business rules engine demo/sample

  • Resolver-Engine - A set of tools to standarize Solidity import and artifact resolution in frameworks.

  • eth-reveal - A node and browser tool to inspect transactions - decoding where possible the method, event logs and any revert reasons using ABIs found online.

  • Ethereum-tx-sender - A useful library written in Golang to reliably send a transaction — abstracting away some of the tricky low level details such as gas optimization, nonce calculations, synchronization, and retries.

Smart Contract Standards & Libraries

ERCs - The Ethereum Request for Comment repository

  • Tokens

    • ERC-20 - Original token contract for fungible assets

    • ERC-721 - Token standard for non-fungible assets

    • ERC-777 - An improved token standard for fungible assets

    • ERC-918 - Mineable Token Standard

  • ERC-165 - Creates a standard method to publish and detect what interfaces a smart contract implements.

  • ERC-725 - Proxy contract for key management and execution, to establish a Blockchain identity.

  • ERC-173 - A standard interface for ownership of contracts

  • Zeppelin - Contains tested reusable smart contracts like SafeMath and OpenZeppelin SDK library for smart contract upgradeability

  • cryptofin-solidity - A collection of Solidity libraries for building secure and gas-efficient smart contracts on Ethereum.

  • Modular Libraries - A group of packages built for use on blockchains utilising the Ethereum Virtual Machine

  • DateTime Library - A gas-efficient Solidity date and time library

  • Aragon - DAO protocol. Contains aragonOS smart contract framework with focus on upgradeability and governance

  • ARC - an operating system for DAOs and the base layer of the DAO stack.

  • 0x - DEX protocol

  • Token Libraries with Proofs - Contains correctness proofs of token contracts wrt. given specifications and high-level properties

  • Provable API - Provides contracts for using the Provable service, allowing for off-chain actions, data-fetching, and computation

Developer Guides for 2nd Layer Infrastructure

Scalability

Payment/State Channels

Plasma

  • Learn Plasma - Website as Node application that was started at the 2018 IC3-Ethereum Crypto Boot Camp at Cornell University, covering all Plasma variants (MVP/Cash/Debit)

  • Plasma MVP - OmiseGO's research implementation of Minimal Viable Plasma

  • Plasma MVP Golang - Golang implementation and extension of the Minimum Viable Plasma specification

  • Plasma Guard - Automatically watch and challenge or exit from Omisego Plasma Network when needed.

  • Plasma OmiseGo Watcher - Interact with Plasma OmiseGo network and notifies for any byzantine events.

Side-Chains

Privacy / Confidentiality

zkSNARKs

  • ZoKrates - A toolbox for zkSNARKS on Ethereum

  • The AZTEC Protocol - Confidential transactions on the Ethereum network, implementation is live on the Ethereum main-net

  • Nightfall - Make any ERC-20 / ERC-721 token private - open source tools & microservices

  • Proxy Re-encryption (PRE) ** NuCypher Network - A proxy re-encryption network to empower data privacy in decentralized systems ** pyUmbral - Threshold proxy re-encryption cryptographic library

  • Fully Homomorphic Encryption (FHE) ** NuFHE - GPU accelerated FHE library

Prebuilt UI Components