面向开发者的以太坊资源

Sam Richards
Last edit: @samajammin, September 3, 2020
See contributors
Edit page

开发者资源

入门指南

以太坊开发小白?别担心,踏破铁鞋无觅处,我们将从这里开始。 由以太坊社区编写的这些入门指南将为开发者介绍以太坊堆栈的基础知识,这里涉及到的核心概念也许与传统开发者所熟悉的应用程序开发有所不同,但在以下文档中会加以阐释。

想要立即开始编码? 点击这里开始

需要更基础的入门知识? 查阅我们的学习资源

参考资源

智能合约语言

任何在以太坊虚拟机 (EVM) 上运行的程序通常被称作“智能合约”。 以太坊上最受欢迎的智能合约编程语言是 SolidityVyper,其他编程语言正处于不断开发阶段

Solidity 以太坊上最受欢迎的智能合约语言,灵感来自 C++、Python 和 Javascript

Vyper - 基于 Python 的以太坊编程语言,致力于提升安全性

在寻找其他选择?

特定开发语言资源

我们正在构建一套特定语言的登陆页面,以供开发人员用其喜欢的编程语言来了解以太坊。

开发者工具

以太坊社区提供了数量众多且持续增长的开发工具,帮助开发者搭建、测试和部署应用程序。 以下是最受以太坊开发者欢迎的工具,可以从这里开始。 如果想要进一步探索,请查询开发工具详表

工具框架

Truffle - 开发环境、测试框架、部署通道及其他工具。

Embark - 开发环境、测试框架以及与以太坊、IPFS 和 Whisper 集成的其他工具。

Waffle - 高级智能合约开发和测试的框架 (基于 ethers.js)。

Etherlime - 基于 Ethers.js 的框架,用于去中心化应用程序开发(Solidity 和 Vyper)、部署、调试、测试等。

其他工具

Ethereum Grid- 用于下载、配置和运行以太坊客户端及以太坊工具的桌面应用程序。

Buidler - 以太坊智能合约开发者的任务运行工具。

OpenZeppelin SDK - 终极智能合同工具包:一套帮助您开发、编译、升级、部署智能合约并与之交互的工具。

The Graph - 用于为以太坊和 IPFS 数据建立索引并使用 GraphQL 对其进行查询的协议。

Tenderly - 用错误跟踪、警报、性能指标和详细的合约分析来轻松监测您的智能合约的平台。

Python Tooling - 通过 Python 进行以太坊交互的各种库。

Brownie - 基于 Python 的开发环境和测试框架。

web3j - 以太坊的 Java/Android/Kotlin/Scala 集成库。

One Click Dapp - 直接从 ABI 生成一个前端进行快速开发和测试。

在寻找其他选择?

集成开发环境 (IDE)

Ethereum Studio - 基于网页的 IDE,是希望尝试智能合约的新开发者的理想选择。 Etherum Studio 有多个模板,MetaMask 集成,交易日志记录器, 和一个内置的浏览器以太坊虚拟机 (EVM),帮助您尽快开始在以太坊上搭建。

Visual Studio Code - 以太坊官方支持的专业跨平台 IDE。

Remix - 基于网页的 IDE,内置静态分析和区块链测试虚拟机。

EthFiddle - 基于网页的 IDE,使您能编写、编译和调试智能合约。

在寻找其他选择?

前端 JavaScript API

Web3.js - 以太坊 JavaScript API

Ethers.js - JavaScript 和 TypeScript 中完整的以太坊钱包实现和实用工具。

Web3.js - 针对轻客户端优化的高级响应式 JS 库。

Web3-wrapper - 可替代 Web3.js 的 Typescript。

在寻找其他选择?

后端 API

Infura - 以太坊 API 即服务。

Cloudflare 以太坊网关

Nodesmith - JSON-RPC API 访问以太坊主网和测试网。

Chainstack - 共享及专用的以太坊节点即服务。

存储

IPFS - 星际文件系统(InterPlanetary File System)是以太坊的去中心化存储和文件引用系统。

Swarm - 以太坊 web3 堆栈的分布式存储平台和内容分发服务。

OrbitDB - 基于 IPFS 的去中心化点对点数据库。

安全工具

智能合约安全

Slither - 用 Python 3 编写的 Solidity 静态分析框架。

MythX - 以太坊智能合约的安全分析 API。

Mythril - EVM 字节码安全分析工具。

SmartContract.codes - 用于搜索经过验证的 Solidity 源代码的搜索引擎。

Manticore - 在智能合约和二进制文件上使用符号执行工具的命令行界面。

Securify - 以太坊智能合约安全分析工具。

ERC20 Verifier - 用于检查合约是否符合 ERC20 标准的验证工具。

形式化验证

有关形式化验证的信息

在寻找其他选择?

测试工具

Solidity-Coverage - 替代性 Solidity 代码覆盖工具。

hevm - 以太坊虚拟机实现,专门用于单元测试以及调试智能合约。

Whiteblock Genesis - 端到端开发沙盒和区块链测试平台。

在寻找其他选择?

区块链浏览器

区块浏览器为以太坊用户提供浏览以太坊区块链(及其测试网)的服务,可以查询特定交易、区块、合约以及其他链上活动的信息。

测试网和水龙头

以太坊社区维护了多个测试网。 这些工具使得开发者能够在应用程序部署到以太坊主网之前对其进行不同条件下的测试。

Ropsten - 工作量证明(PoW)区块链,可以挖掘测试以太币。

Rinkeby - 权威证明 (PoA) 区块链,由 Geth 开发团队维护。

Goerli - 跨客户端权威证明区块链,由 Goerli 社区构建和维护。

客户端以及运行您自己的节点

以太坊网络由许多节点组成,它们各自运行兼容的客户端。 它们中的大部分都运行 GethParity,每个节点都可以根据自己的实际需求调整不同的配置。

客户端

Geth - 用 Go 语言编写的以太坊客户端。

Geth - 用 Rust 语言编写的以太坊客户端。

Geth - 用 Java 语言编写的以太坊客户端。

Nethermind - 用 C# .NET 核心编写的以太坊客户端。

运行您自己的节点

Ethnode - 运行一个以太坊节点(Geth 或 Parity)用于本地开发。

以太坊节点资源

在寻找其他选择?

最佳实践、模式和反模式

智能合约

DappSys - 安全、简单、灵活的智能合约构建区块。

OpenZeppelin Contracts - 安全的智能合约开发库。

aragonOS - 可升级性模式与权限控制。

智能合约漏洞登记

安全

智能合约安全最佳实践指南

智能合约安全验证标准 (SCSVS)

在寻找其他选择?

开发者支持与培训

一般学习

以太坊 Stack Exchange

ConsenSys Academy - 可自定义进度并且全年开放的以太坊端到端开发者课程。

Solidity Gitter 聊天室

以太坊 Gitter 聊天室大厅

Chainshot - 基于网页的去中心化应用程序编码教程。

Blockgeeks - 区块链技术在线课程。

DappUniversity - 学习如何在以太坊区块链上搭建去中心化应用程序。

B9lab Academy - 最早的专业以太坊去中心化应用程序开发者课程与审计和质保进修课程主页。 包含 指导及代码审查。

基于游戏的学习

Cryptozombies - 学习如何在以太坊上开发游戏。

Ethernaut - 基于 Solidity 的野战游戏,破解合约即可升级。

Capture the Ether - 以太坊智能合约安全游戏。

UI/UX 设计

Rimble UI - 去中心化应用程序的自适应组件和设计标准。

标准

以太坊社区采纳了许多对开发者有帮助的标准。 通常,这些标准称为以太坊改进提案 (EIP),由社区成员通过标准的讨论过程确定。

某些 EIP 与应用层规范相关(例如智能合约标准格式),这类规范被称为以太坊意见征求 (ERC)。 许多 ERC 是以太坊生态系统中被广泛使用的关键标准。