更新软件包列表
从零开始:在Ubuntu系统上搭建以太坊开发环境全指南
以太坊作为全球领先的智能合约平台,是去中心化应用(Dapp)和区块链创新的核心,对于任何想要进入Web3世界的开发者来说,在本地搭建一个稳定、高效的以太坊开发环境是必不可少的第一步,本文将以广泛用于服务器和开发的Ubuntu操作系统为例,为您提供一份详尽、清晰的环境搭建指南,帮助您顺利开启以太坊开发之旅。

准备工作:环境与工具
在开始之前,请确保您的Ubuntu系统已准备就绪,我们推荐使用Ubuntu 20.04或22.04 LTS版本,因为它们拥有更长的支持周期和更好的软件兼容性。
- 操作系统:Ubuntu 20.04.4 LTS (64-bit) 或更高版本。
- 硬件要求:
- CPU:至少双核处理器。
- 内存:建议至少8GB RAM,如果计划运行全节点或进行复杂测试,16GB或以上更佳。
- 存储:至少50GB可用硬盘空间,用于安装软件和存储区块链数据。
- 软件:
- Git:用于从代码仓库下载代码。
- Python 3:许多以太坊工具链的依赖。
- Node.js 和 npm:用于运行和安装前端DApp框架(如React)和以太坊交互库(如Web3.js, Ethers.js)。
- 代码编辑器:如 VS Code。
核心组件安装
以太坊开发环境由几个关键工具组成,我们将逐一进行安装。
安装Go语言
以太坊的官方客户端(如Geth)是用Go语言编写的,因此需要先安装Go。
# 安装Go语言 sudo apt install golang-go # 验证安装 go version
安装Node.js 和 npm
Node.js是构建现代DApp前端和与以太坊网络交互的基础。
# 使用NodeSource仓库安装最新的LTS版本(以Node 18为例) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - # 安装Node.js和npm sudo apt install nodejs # 验证安装 node -v npm -v
安装代码编辑器 VS Code
VS Code是当前最受欢迎的代码编辑器之一,拥有丰富的以太坊开发插件。
# 下载并添加Microsoft GPG密钥 wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code/ stable main" | sudo tee /etc/apt/sources.list.d/vscode.list # 安装VS Code sudo apt update sudo apt install code # 安装VS Code后,可以通过命令行启动 code .
VS Code 推荐插件:
- Solidity:由Juan Blanco开发,提供语法高亮、智能提示和编译功能。
- Prettier - Code formatter:代码格式化工具。
- ESLint:JavaScript代码检查工具。
核心以太坊客户端:安装Geth
Geth(Go-Ethereum)是官方的以太坊客户端,功能强大,可以用于同步全节点、创建私有链、挖矿以及作为DApp的后端。

编译并安装Geth
虽然可以通过apt安装Geth,但版本可能较旧,为了获得最新功能,我们推荐从源码编译。
# 安装编译Geth所需的依赖 sudo apt install build-essential # 克隆Geth的官方代码仓库 git clone https://github.com/ethereum/go-ethereum.git # 进入项目目录 cd go-ethereum # 切换到最新的稳定版本分支(stable分支) git checkout stable # 编译Geth make geth # 将编译好的geth可执行文件移动到系统PATH中,方便全局使用 sudo cp build/bin/geth /usr/local/bin/ # 验证安装 geth version
启动并连接到以太坊网络
安装完成后,您可以使用Geth连接到公共的以太坊主网或测试网。
连接到以太坊主网
这是连接到真实、有价值的以太坊网络的方式。

# 启动Geth,连接到主网,并开启HTTP-RPC服务,默认端口8545 # --syncmode "full" 表示同步所有区块数据,成为全节点 # --http 启动HTTP-RPC API服务 # --http.addr "0.0.0.0" 允许任何IP地址访问API服务(注意安全风险) # --http.vhosts "*" 允许任何主机名访问 geth --syncmode "full" --http --http.addr "0.0.0.0" --http.vhosts "*"
首次启动:第一次启动时,Geth需要同步大量的区块数据,这可能需要花费数天甚至数周的时间,并且会占用大量磁盘空间(超过1TB),在同步过程中,终端会显示同步进度。
连接到测试网(推荐开发使用)
对于开发者来说,使用测试网更经济、更快捷,我们以Goerli测试网为例。
# 启动Geth,连接到Goerli测试网 geth --goerli --syncmode "full" --http --http.addr "0.0.0.0"
Goerli测试网的区块数据要小得多,同步速度也快得多。
使用控制台交互
启动Geth后,您可以打开一个新的终端窗口,使用geth attach命令附加到Geth的JavaScript控制台,直接与区块链进行交互。
# 附加到刚刚启动的Geth节点 geth attach http://localhost:8545
进入控制台后,您可以执行以下命令:
eth.blockNumber:查看当前最新区块号。eth.accounts:查看本地账户列表。personal.newAccount("your_password"):创建一个新账户。
环境验证:部署一个简单的智能合约
环境搭建的最终目的是为了开发和部署智能合约,我们将使用Hardhat这一现代化的开发框架来验证我们的环境。
初始化Hardhat项目
# 创建一个新目录并进入 mkdir my-dapp && cd my-dapp # 初始化Hardhat项目 npm init --yes # 安装Hardhat npm install --save-dev hardhat # 在项目目录下创建Hardhat配置文件 npx hardhat
在交互式安装过程中,选择"Create a basic JavaScript project"即可。
编写智能合约
在contracts/目录下,创建一个名为SimpleStorage.sol的文件:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
contract SimpleStorage {
uint256 private myNumber;
function set(uint256 _newNumber) public {
myNumber = _newNumber;
}
function get() public view returns (uint256) {
return myNumber;
}
}
编译合约
在项目根目录下运行:
npx hardhat compile
编译成功后,您会在artifacts/目录下看到编译好的合约字节码和ABI。
恭喜!您已经成功在Ubuntu系统上搭建了一个完整的以太坊开发环境,您具备了以下能力:
- 运行一个以太坊节点(主网或测试网)。
- 通过HTTP-RPC API与节点进行交互。
- 使用Hardhat框架编译和测试智能合约。
本文 原创,转载保留链接!网址:https://licai.bangqike.com/bixun/1277965.html
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。






