从零开始,以太坊开发环境搭建详细教程
作者:admin
分类:默认分类
阅读:3 W
评论:99+
以太坊作为全球领先的智能合约平台,为去中心化应用(DApps)的开发提供了强大的基础设施,想要踏入以太坊开发的世界,首先需要搭建一个本地开发环境,本教程将带你一步步完成以太坊开发环境的搭建,无论你是编程新手还是有经验的开发者,都能跟着顺利完成。
准备工作
在开始之前,请确保你的计算机满足以下基本要求:
- 操作系统:推荐使用 Windows 10/11、macOS (10.14+) 或 Linux (Ubuntu 18.04+ 本教程将以 Ubuntu 为例进行演示,其他系统类似)。
- 硬件:
- CPU:双核及以上处理器。
- 内存:至少 8GB RAM,推荐 16GB 或以上,因为运行节点和编译合约会占用较多资源。
- 硬盘:至少 50GB 可用空间,用于安装软件和存储区块链数据。
- 网络:稳定的互联网连接,用于下载软件包和同步区块链数据(可选,取决于是否运行全节点)。
- 基础工具:
- Git:用于从代码仓库克隆代码。
- Node.js 和 npm:JavaScript 运行时环境和包管理器,用于安装 Truffle, Hardhat 等开发框架。
- Python:某些工具依赖 Python,建议安装 Python 3.x。
- VS Code:一款流行的代码编辑器,推荐安装 Solidity 插件。
安装基础工具
安装 Git
安装完成后,验证:
git --version
安装 Node.js 和 npm
href="https://nodejs.org/en/download/">Node.js 官网 下载 LTS 版本并安装。
安装完成后,验证:
node -v
npm -v
安装 Python (可选,但推荐)
安装 VS Code 及 Solidity 插件
- 下载并安装 VS Code。
- 打开 VS Code,进入扩展商店 (Ctrl+Shift+X 或 Cmd+Shift+X),搜索 "Solidity",由 Juan Blanco 发布的官方插件或相关高评分插件并安装。
安装以太坊客户端 (Geth - Go-Ethereum)
Geth 是最常用的以太坊客户端之一,用于与以太坊网络交互,运行节点等。
验证安装:
geth version
安装开发框架 (Truffle 或 Hardhat)
开发框架可以大大简化智能合约的编写、测试、部署和管理流程,这里我们以 Truffle 为例进行介绍。
- 安装 Truffle:
npm install -g truffle
-g 表示全局安装,方便在任意项目中使用。
验证安装:
truffle version
*(可选)Hardhat 安装**:
Hardhat 是另一个流行的以太坊开发环境,以其强大的插件系统和调试功能著称。
npm install --global hardhat
验证安装:
```bash
npx hardhat --version
```
创建第一个以太坊项目
-
创建项目目录:
mkdir my-ethereum-project
cd my-ethereum-project
-
初始化 Truffle 项目:
truffle init
这会创建一些标准目录结构,如 contracts/(存放智能合约)、migrations/(部署脚本)、test/(测试文件)等。
-
(可选)如果使用 Hardhat 初始化项目:
npx hardhat
然后按照提示选择 "Create a basic sample project"。
启动私有测试链 (使用 Geth)
为了不影响主网,并且无需消耗真实 ETH,我们通常在本地运行一个私有测试链。
-
初始化创世区块:
在项目目录下创建一个文件,genesis.json如下:
{
"config": {
"chainId": 15, // 自定义链ID,确保唯一性
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty": "0x4000",
"gasLimit": "0xffffffff",
"alloc": {
"7a5b7d3f5b2e4c8a9d0f1e2d3c4b5a6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2": { // 替换成你自己的以太坊地址,可以通过 geth account new 创建
"balance": "0x200000000000000000000000000000000000000000000000000000000000000"
}
}
}
-
创建账户 (如果还没有):
geth --datadir ./data account new
按照提示输入密码,记住这个密码,后续启动节点会用到,这会创建一个新账户,并返回地址,将地址填入 genesis.json 的 alloc 部分。
-
启动私有节点:
geth --datadir ./data --networkid 15 --nodiscover --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" --unlock 0 --password <密码文件路径或直接输入密码>
--datadir ./data: 指定数据存储目录。
--networkid 15: 使用与创世区块配置相同的链ID。
--nodiscover: 不自动发现其他节点,因为是私有链。
--rpc: 启动 RPC 服务,方便 DApp 或其他工具连接。
--rpcaddr "0.0.0.0": 允许任何 IP 访问 RPC 服务(开发环境使用,生产环境需谨慎)。
--rpcport 8545: RPC 服务端口,默认 8545。
--rpccorsdomain "*": 允许任何来源的 CORS 请求(开发环境使用)。
--rpcapi "eth,net,web3,personal": 暴露的 RPC API。
--unlock 0: 解锁第一个账户(索引为 0 的账户)。
--password: 指定密码文件路径或直接输入密码。
启动后,Geth 会开始同步创世区块,你可以看到类似 Successfully sealed new block 的日志,表示私有链正在运行。
部署智能合约
编