在 Linux 系统上部署以太坊节点,从入门到实践
以太坊作为全球领先的智能合约平台,其去中心化特性离不开众多节点的支撑,部署和维护以太坊节点不仅是参与网络、保障网络安全的重要方式,也为开发者提供了测试和部署智能合约的本地环境,本文将详细介绍如何在 Linux 系统上部署以太坊节点,主要涵盖两种主流方式:使用 Geth 客户端执行全节点同步,以及使用更轻量级的 Erigon 客户端。
前期准备
在开始部署之前,请确保您的 Linux 系统满足以下基本要求:
- 操作系统:推荐使用 Ubuntu 20.04/22.04 LTS 或其他主流 Linux 发行版(如 CentOS, Debian),本文以 Ubuntu 为例进行演示。
- 硬件配置:
- CPU:至少 2 核,推荐 4 核及以上。
- 内存:至少 8GB RAM,推荐 16GB 或以上,尤其是在同步全链数据时。
- 存储:SSD 硬盘是必须的,至少 1TB 可用空间(以太坊主网数据量持续增长,建议预留更大空间,如 2TB 或更多),I/O 性能对同步速度至关重要。
- 网络:稳定的互联网连接,建议带宽 10Mbps 以上,且最好有公网 IP(便于其他节点连接)。
- 权限:需要具有 sudo 权限的用户账户。
部署方式一:使用 Geth 客户端(全节点)
Geth(Go-Ethereum)是以太坊官方实现的 Go 语言客户端,功能全面,是最常用的以太坊节点客户端之一。
-
更新系统并安装依赖
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential unzip git libsnappy-dev
-
安装 Go Geth 依赖于 Go 环境,我们可以从 Go 官方网站下载并安装最新版本的 Go。
# 前往 Go 官网获取最新版本号,这里以 1.21.0 为例 wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
配置 Go 环境变量:
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc echo 'export GOPATH=$HOME/go' >> ~/.bashrc echo 'export GOBIN=$GOPATH/bin' >> ~/.bashrc source ~/.bashrc
验证 Go 安装:
go version
-
下载并编译 Geth
# 克隆 Geth 仓库 git clone https://github.com/ethereum/go-ethereum.git cd go-ethereum # 切换到稳定版本(v1.13.6,可根据需要选择) git checkout v1.13.6 # 编译 Geth make geth
编译完成后,可执行文件
geth会在build/bin目录下,我们可以将其移动到系统 PATH 中:sudo cp build/bin/geth /usr/local/bin/
-
初始化 Geth 节点(可选) 如果您想创建一个新的 genesis 区块文件(例如用于私有网络),可以初始化,对于主网,此步骤可跳过,同步时会自动使用主网 genesis。
# geth --datadir ~/ethereum_data init genesis.json # genesis.json 需要您自行准备或编写
-
启动 Geth 节点 启动 Geth 节点并开始同步数据,以下是一些常用参数:
