Ubuntu 16.04 上的以太坊,搭建经典节点的完整指南
在区块链技术波澜壮阔的发展史中,以太坊无疑占据了举足轻重的地位,它不仅仅是一个加密货币,更是一个开创性的、去中心化的全球计算机平台,尽管如今Ubuntu 18.04、20.04乃至22.04已成为主流,但许多经典项目、遗留系统或特定开发环境仍然在稳定可靠的Ubuntu 16.04上运行,本文将为您详细介绍如何在Ubuntu 16.04操作系统上,从零开始搭建一个完整的以太坊经典节点,包括安装依赖、同步区块链以及运行核心客户端。
第一部分:准备工作与系统要求
在开始之前,请确保您的Ubuntu 16.04系统满足基本要求,搭建一个全节点需要消耗大量的系统资源,特别是磁盘空间和网络带宽。
- 操作系统: Ubuntu 16.04 LTS (64位)
- 硬件要求:
- CPU: 双核及以上处理器
- 内存: 至少 4GB RAM,推荐 8GB 或以上
- 硬盘: 至少 1TB 可用空间(用于存储区块链数据,并预留增长空间),SSD硬盘能极大提升同步速度。
- 网络: 稳定、高速的互联网连接,建议带宽在 10Mbps 以上。
第二部分:安装必要依赖
以太坊客户端(如Go-Ethereum)是用Go语言编写的,因此我们需要先安装Go语言环境以及其他一些编译工具。

-
更新系统包列表: 打开终端,首先更新您的系统软件包索引。
sudo apt-get update sudo apt-get upgrade -y
-
安装编译工具和依赖库: 这些工具是编译Go程序所必需的。
sudo apt-get install -y build-essential git libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev
-
安装Go语言环境: 我们将下载并安装Go语言,以Go 1.19.5版本为例(这是一个稳定且广泛使用的版本,兼容性良好)。
-
下载Go安装包:
wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz
-
解压并移动到
/usr/local目录:sudo tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz
-
配置环境变量,使系统在任何地方都能识别Go命令,编辑
~/.profile文件:nano ~/.profile
在文件末尾添加以下两行:

export PATH=$PATH:/usr/local/go/bin export GOPATH=$HOME/go
保存并退出(在nano中按
Ctrl X,然后按Y,最后按Enter)。 -
使配置立即生效:
source ~/.profile
-
验证Go是否安装成功:
go version
如果看到类似
go version go1.19.5 linux/amd64的输出,说明安装成功。
-
第三部分:安装与配置以太坊客户端(Go-Ethereum)
Go-Ethereum(简称geth)是以太坊最核心的官方客户端,我们将从源码编译安装它,以确保获得最新的稳定版本。

-
克隆geth源码仓库:
git clone https://github.com/ethereum/go-ethereum.git
-
编译geth: 进入源码目录,并执行编译命令。
make geth会编译生成可执行文件。cd go-ethereum make geth
这个过程可能需要10-30分钟,具体取决于您的CPU性能。
-
将geth添加到系统路径(可选但推荐): 为了方便在任何目录下运行
geth命令,我们可以创建一个符号链接。sudo ln -s $(pwd)/build/bin/geth /usr/local/bin/geth
-
验证geth安装:
geth version
如果看到版本信息,说明geth已成功安装并可使用。
第四部分:首次运行与同步区块链
最关键的一步来了——同步以太坊主网的数据,这个过程被称为“同步”,节点需要下载并验证自创世区块以来的所有区块和交易数据。
-
创建数据目录: 为了不污染主目录,我们可以在 下创建一个
eth目录来存放区块链数据。mkdir ~/eth
-
启动geth并开始同步: 在终端中执行以下命令来启动geth客户端,它会自动连接到以太坊网络并开始同步。
geth --datadir ~/eth --syncmode fast --cache 4096 --rpc --rpcapi eth,net,web3,personal
命令参数解释:
--datadir ~/eth: 指定数据存储目录为~/eth。--syncmode fast: 快速同步模式,这是目前推荐的方式,它会先下载区块头,然后再下载状态数据,比传统的“完整同步”快得多。--cache 4096: 设置内存缓存大小为4GB,更大的缓存可以加速同步和查询过程,请根据您的内存大小调整。--rpc: 启动JSON-RPC服务,这允许其他应用程序(如MetaMask、MyEtherWallet或通过Web3.js编写的DApp)与您的节点进行交互。--rpcapi eth,net,web3,personal: 指定通过RPC可以调用的API接口。
首次同步的重要提示:
- 耗时极长: 在普通家庭网络下,完成首次同步可能需要数天甚至数周的时间,请保持网络连接稳定。
- 资源占用: 在同步过程中,CPU、内存和网络带宽都会被大量占用。
- 保持终端开启: 在同步完成前,请保持终端窗口开启,如果关闭,geth进程会终止,同步将中断,下次启动时,它会从上次中断的地方继续。
第五部分:管理与控制您的节点
当geth成功启动并开始同步后,您会看到终端不断输出同步进度,如果您想与节点进行交互,可以打开一个新的终端窗口,使用geth attach命令进入其内置的JavaScript控制台。
geth attach ~/eth/geth.ipc
进入控制台后,您可以执行各种命令,
eth.blockNumber: 查看当前同步到的最新区块号。eth.syncing: 查看同步状态,当返回false时,表示同步已完成。personal.newAccount("your_password"): 创建一个新的以太坊账户。exit: 退出控制台。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。




