开发区块链应用的时候,需要开发智能合约,以及调用智能合约的模块(如UI)等。
注:以下除非特别注明,都是以以太网络为开发对象。
- 智能合约开发语言
- solidity
- Vyper(基于Python的以太坊变成语言)
- LLL(Lisp风格的底层编程语言)
- Serpent
- 开发工具(IDE)
- Remix IDE,基于浏览器;
- Ethfiddle,基于浏览器,由Loom Network团队开发;
- atom.io 是一个与github直接能够连接的IDE环境,通过安装Linter-Solidity、Etheratom、autocomplete-solidity、language-solidity等插件,就能进行Solidity项目的编译开发了;
- vim,通过安装vim-solidity插件即可进行solidity的开发;
- Eclipse下的 Solidity-ide 插件;
- visual studio+azure。 Microsoft发布了Azure区块链开发套件,专门用于支持以太坊开发,并和Visual Studio完全集成。
- ChainIde云端的支持多个公链的开发IDE工具,由纯白矩阵提供。;
- 合约开发框架
一旦开始写智能合约,会重复做大量的操作,比如编译源码为字节码和abi,部署到网络,测试然后部署合约等等。而合约开发框架则标准化和自动化了这些琐碎的工作。它们提供了一个好的开发,部署,以及更为重要的,测试智能合约的体验。
- Truffle
A world class development environment, testing framework and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM), aiming to make life as a developer easier. - Embark
A development environment, testing framework, and other tools integrated with Ethereum, IPFS, and Whisper. - openzeppelin
OpenZeppelin提供了一个结果考验的安全编写智能合约的类库,同时也提供了一套方便开发者编译、部署、升级智能合约、调用智能合约的开发框架/SDK。 - Clevis
Ethereum blockchain orchestration, testing, and command line interface. - BlockTest GreenHouse
user-centric blockchain development platform. Greenhouse supports and connects users at every stage of the blockchain development.
DevOps 平台能够让客户和区块链开发人员轻松构建区块链网络,并针对现实业务场景开发健壮的应用程序,加快开发流程的同时还提供了完善的控制和监督。 - getwaffle.io
A framework for advanced smart contract development and testing (based on ethers.js). - DAPP
Framework for DApp development, successor to Dapple - Etherlime
Ethers.js based framework for dapp development (Solidity & Vyper), deployment, debugging, testing and more - brownie
Python-based development environment and testing framework. - Parasol
Agile smart contract development environment with testing, automatic contract documentation and more. It features a flexible and unopinionated design with unlimited customizability - 0xcert framework
JavaScript library that provides tools for building powerful decentralized applications. - sbt-ethereum
A tab-completey, text-based console for smart-contract interaction and development, including wallet and ABI management, ENS support, and advanced Scala integration. - Nethereum
Cross-platform Ethereum development framework - cobra
A fast, flexible and simple development environment framework for Ethereum smart contract, testing and deployment on Ethereum virtual machine(EVM). - alchemy
alchemy提供了一个更广义上的开发框架,而不仅仅是智能合约。Alchemy提供了和多个公链交互的API、开发工具、以及数据监控和分析工具。 - Substrate
A modular blockchain framework that lets you pick and choose the right components for your application or enterprise。是Polkadot体系下的一个区块链框架。这个框架提供了以下功能的定制:
A default PoS blockchain
Upgradable runtimes
Pluggable consensus (PoS, PoW, PoA)
Block production, synchronization
Efficient storage
Efficient state machine
P2P networking layer
Built in crypto primitives
Light client support
Suite of libraries to modify runtime logic, i.e. manage storage, accounts, staking, a treasury, consensus and more
UI kits
- 智能合约安全工具
开发智能合约,其安全性到底如何,是每个开发者需要关注的问题。而一些专业的工具可能很大程度上解决问题。
- Slither
Solidity static analysis framework written in Python 3. - Mythx
A smart contract security analysis API that supports Ethereum, Quorum, Vechain, Roostock, Tron and other EVM-compatible blockchains. MythX是使用了Mythril, 用来检查EVM的字节码的安全分析工具。 - Manticore
A command line interface that uses a symbolic execution tool on smart contracts and binaries. - ChainseSecurity
Security scanner for Ethereum smart contracts. - Erc20-Verifier
A verification tool used to check if a contract complies with the ERC20 standard.
- 以太网数据的获取/数据的监控
区块链作为一个大账本,其中数据的更新和获取对于应用非常重要。因此,数据的获取和监控服务必不可少。这里面有很多项目已经商业化。
- Alethio
Consensys提供的工具。用于以太网数据的访问、监控和报告。An advanced Ethereum analytics platform that provides live monitoring, insights and anomaly detection, token metrics, smart contract audits, graph visualization and blockchain search. - Amberdata
Provides live monitoring, insights and anomaly detection, token metrics, smart contract audits, graph visualization and blockchain search. - Blocknative
利用Notify API,获得ERC-20和ERC-721的交易状态变化的实时通知;
利用onboard.js可以连接桌面和mobile的wallet。 - The Graph
The Graph 建立了一个在去中心化的网络上查询区块链数据的机制。有了 Graph,dApp 团队就不用再为了查询数据而运行一个中心化的服务器了,他们可以用上免信任的、公开的基础设施,很容易就能获得特定区块链的数据。用户可以用 ETH 或 DAI 来支付查询数据的费用,验证者则通过质押 GRT、运行基础设施来赚取收益。A protocol for indexing Ethereum and IPFS data and querying it using GraphQL. - DFuse
基于EOS和以太网的数据分析接口 - CRUD API
由纯白矩阵提供,为多条区块链环境提供CRUD API服务,使得用户可以通过Web API对区块链方便的进行数据挖掘,数据分析和数据钻取。无需任何环境搭建,一键接入十几种区块链环境。 - Infura
Consensys提供的API 套件。可通过 HTTPS 和 WebSockets 提供到以太坊和 IPFS 网络的即时访问。按API请求付费。 - Dune Analytics
Instantly create and share analysis of Ethereum data. - 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 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 - ethereum-watcher
An extensible framework written in Golang for listening to on-chain events and doing something in response.
开发应用的时候,开发者需要运行一个节点;或者利用第三方的节点服务,来和主网进行沟通。当然,非开发者也可以运行节点参与区块链的运作。
- 节点
6.1 节点/客户端
- geth
运行一个全节点(官方的节点,go语言)。Go Ethereum is one of the three original implementations (along with C++ and Python) of the Ethereum protocol. It is written in Go, fully open source and licensed under the GNU LGPL v3. - OpenEthereum
过去叫Parity,运行一个轻节点,它是第三方的,Rust语言写的以太坊客户端(也是一个全节点的实现),集成到了Web浏览器,并使之成为一个DApp浏览器。 - pyethapp
以python为基础的客户端,实现以太坊加密经济状态机。 - Besu
Hyperledger Besu is an open source Enterprise Ethereum client developed under the Apache 2.0 license and written in Java. - Nethermind
Ethereum client written in C# .NET Core. - Aleth
The collection of C++ libraries and tools for Ethereum, formerly known as cpp-ethereum project. - Trinity
Python client using py-evm - EthereumJS
JS client using ethereumjs-vm - exthereum
Elixir implementation of Ethereum's Blockchain. - Mana-Ethereum
An open-source Ethereum blockchain client built using Elixir.
6.2 本地节点版本:
- Ganache
GanacheCLI (previously Testrpc), a NodeJS package, is a fast and customizable blockchain emulator. It simulates the Ethereum network on a single computer and allows you to make calls to the blockchain without any of the hassles of running a real Ethereum node.
属于Truffle开发体系中的一部分。 - EthNode
Run an Ethereum node (Geth or Parity) for local development.
6.3 节点服务提供商;
- bison trails
在多个公链上运行节点的云端设施(ETH 2.0测试中,不含以太网1.0版本) - blockdaemon
提供多个公链运行节点的设施 - DAppNode
提供多种公链节点的软硬件解决方案 - VipNode
提供以太全节点,并可以为Vipnode的付费客户提供优先服务从而获得收入。 - QuikNode
提供以太全节点,同时也提供按照API调用次数计费的服务。 - Ankr
Ankr makes infrastructure for deploying any blockchain node easy, accessible, affordable and instantly distributed across the globe.
- Dapp浏览器
很多时候,开发应用并不需要链接到节点,而是可以通过Dapp浏览器和以太进行交互。
- Mist
以太坊官方的DApp浏览器。一个漂亮的界面来与以太坊节点交互,与智能合约发、收交易。
+Status
一个手机上可以使用的DApp浏览器,同时也是一个钱包,一个去中心化的隐私消息软件。 - MetaMask
Google浏览器扩展,把Chrome变成了一个DApp浏览器。它的核心特性是注入以太坊提供的web3.js,让DApp连接到以太坊节点服务。
- 各类类库
8.1 与智能合约交互:
web3.js
go-ethereum中的abigen
的程序,提供了go包,用来与智能合约交互。
8.X 应用层类库/API:
- 3Box
对用户来说,3Box提供了去中心化的方式让用户注册自己的3Box profile(通过IPFS存储),并将自己的在3Box的消息和数据通过OrbitDB进行P2P的存储。
在此基础上,3Box为开发者提供了三类API,分别是Profile、Message、Data,使得开发者无需花很多的时间在用户(公私钥)管理和去中心化数据存储上,也方便使得在自己的DApp加上消息的功能。
而3Box的底层,则是使用了项目方自己开发的ceramic.network,Ceramic's public infrastructure allows participants to create signed, append-only, tamper-proof documents that act as a censorship-resistant and universally available source of truth for important information. Ceramic documents are stored in IPFS, encoded using IPLD, and anchored in one or more blockchains. - tierion
Tierion enables to create a verifiable database of any data or process on the bitcoin blockchain by offering developer tools & API to add data to the distributed ledger. Tierior has also developed an open standard called ChainPoint for recording data and generating receipts that contain all the info need.
At the heart of Tierion’s technological infrastructure is the Chainpoint Proof protocol. The protocol comes into play whenever a user adds something in Tierion’s data store. Chainpoint and Tierion’s API anchors the data to the blockchain in order to generate a timestamp proof. - hummingbot
Hummingbot is an open-source orchestration tool that allows anyone to create and operate high-frequency market making bots. - Zerion Defi SDK
DeFi SDK is the on-chain balanceOf for DeFi protocols. It support the following futures:
Query user assets and debt deposited in DeFi protocols like Maker, Aave, dYdX, etc.
Get the underlying components of complex derivative ERC20 tokens
Interact with multiple DeFi protocols in a unified way
- 其他工具
- prosity
反编译以太坊智能合约的字节码 - evmdis
Disassembly - Fleek
Fleek is everything you need to build fast, modern sites & apps on IPFS. All in one seamless workflow. - Rimble
DAPP相关的视觉控件。 - simpleid.xyz
类似于GA的基于区块链地址的用户分析工具 - Grid
A desktop application for downloading, configuring, and running Ethereum nodes and tools. - Builder
A task runner for Ethereum smart contract developers.
- 教学
- eth.build
通过图形化的编程方式提供一些标准化流程和概念的教学,比如哈希、公私钥、交易、钱包等 - Learn Libra
libra的教学,纯白矩阵提供,通过开发名为Move Castle的游戏进行。 - Crypto Zombia
通过开发名为Crypto Zombia的游戏进行Solidity的教学。 - Ethereum Studio
Web-based IDE ideal for new developers looking to experiment with smart contracts. Ethereum Studio features multiple templates, MetaMask integration, transaction logger, and a built in-browser Ethereum Virtual Machine (EVM) to help you get started building on Ethereum as fast as possible.
- 跨链专用
随着区块链的普及,以及各种不同的公链之间交互的增多,在开发区块链应用的时候,跨链的需求也变得越来越常见。这里列的项目,就是为了开发跨链应用而成立的。
- Loom
Loom是以太的一条侧链,因为使用了DPos的共识机制,所以交易不需要手续费,交易确认快速,对用户友好,而其智能合约和以太网上的Solidity合约兼容。同时,集成了和BTC、TRON、以太、币安链,开发者可以方便得在DApp里集成相应公链上的资产。 - Chain Abstraction Layer
Communicate with different blockchains (including Ethereum) using a single interface. - MoonBeam
Decentralized and permissionless, Moonbeam provides an Ethereum-compatible smart contract platform that makes it easy to build natively interoperable applications. Polkadot上的智能合约平行链,能够让开发人员轻松在Polkadot网络上创建智能合约。 - plasm
基于 Substrate 的一个可扩展性 DApp 平台,未来可作为 Polkadot 的平行链。开发者可以在 Plasm 网络上构建任何应用程序,而不必考虑可扩展性问题。 - edgeware
Polkadot上的智能合约平行链,能够让开发人员轻松在Polkadot网络上创建智能合约。Edgeware is a high-performance, self-upgrading WASM smart contract platform, in the Polkadot ecosystem.
- 给非技术人员使用的“开发”工具
上文提到的所有的工具,都是给技术人员用的。让非技术人员能够通过一些特定的工具,“开发”出符合他们需求的区块链应用程序,便是这类工具的着眼点。
注:虽然听起来很高大上,但实际上这类工具或者应用面非常狭窄,或者非常难用,或者还是需要比较多的技术能力才能使用。因此,这个方向很美好,但实现起来有很多问题。就如同传统世界一直在说要让不懂编程的人也能开发出好程序,但实际上到现在为止还没有一个应用能达到这样的效果。
- mintable
创建、浏览、交易ERC-721的地方。无需代码即可创建ERC-721的智能合约。 - One Click dApp
利用智能合约的ABI,不需要编程,即可创建DAPP。Generate a frontend directly from ABI for fast development and testing. - Open Law
一个在合同管理、签署和自动执行相关智能合约的工具。参见文章:《OpenLaw介绍》 - Etherscripter.com
通过组件和运算符的拖拽编辑智能合约的图形编辑器,能生成LLL、Serpent和XML代码。