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

在开始之前,请确保您的Ubuntu系统已准备就绪,我们推荐使用Ubuntu 20.04或22.04 LTS版本,因为它们拥有更长的支持周期和更好的软件兼容性。
以太坊开发环境由几个关键工具组成,我们将逐一进行安装。
以太坊的官方客户端(如Geth)是用Go语言编写的,因此需要先安装Go。
# 安装Go语言 sudo apt install golang-go # 验证安装 go version
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是当前最受欢迎的代码编辑器之一,拥有丰富的以太坊开发插件。
# 下载并添加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 推荐插件:
Geth(Go-Ethereum)是官方的以太坊客户端,功能强大,可以用于同步全节点、创建私有链、挖矿以及作为DApp的后端。

虽然可以通过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这一现代化的开发框架来验证我们的环境。
# 创建一个新目录并进入 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系统上搭建了一个完整的以太坊开发环境,您具备了以下能力:
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com