更新软件包列表
从零开始:在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框架编译和测试智能合约。
这仅仅是Web3开发旅程的起点,您可以学习如何使用Truffle或Hardhat进行自动化测试,使用React和Web3.js构建前端DApp,或者深入探索DeFi、NFT等更广阔的领域,祝您在去中心化的世界里探索愉快!
本文转载自互联网,具体来源未知,或在文章中已说明来源,若有权利人发现,请联系我们更正。本站尊重原创,转载文章仅为传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网站转载使用,请保留本站注明的文章来源,并自负版权等法律责任。如有关于文章内容的疑问或投诉,请及时联系我们。我们转载此文的目的在于传递更多信息,同时也希望找到原作者,感谢各位读者的支持!