更新软件包列表
Ubuntu上部署以太坊全节点:从零开始的完整命令指南
在区块链的世界里,运行一个以太坊全节点意味着您成为去中心化网络中的一个完整组成部分,能够独立验证所有交易和区块,无需信任任何第三方,这不仅是参与网络、支持去中心化的最佳方式,也是开发者进行DApp测试和部署的理想环境,本文将详细介绍如何在Ubuntu操作系统上,通过一系列命令行指令,从零开始部署一个以太坊全节点。
准备工作:环境与要求
在开始之前,请确保您的Ubuntu系统满足以下基本要求:
- 操作系统:推荐使用Ubuntu 20.04 LTS或22.04 LTS版本,这些版本稳定且软件库支持良好。
- 硬件要求:
- CPU:至少2核心。
- 内存:建议8GB以上,16GB更佳。
- 存储:这是最关键的部分,以太坊主网的全节点数据(状态、历史区块等)会持续增长,截至2023年底,数据量已超过2TB,并且仍在增长,请务必准备一个至少2TB的独立硬盘,并确保系统正确识别它。
- 网络:稳定的互联网连接,建议带宽在10Mbps以上,因为节点需要与网络中的其他节点同步大量数据。
- 权限:您将需要
sudo权限来安装软件和修改系统配置。
第一步:系统更新与基础配置
打开终端(Terminal),我们首先更新系统软件包列表并升级已安装的软件,确保所有组件都是最新的。
# 升级已安装的软件包 sudo apt upgrade -y
为了方便后续操作,我们安装一些常用的基础工具,如curl(用于下载文件)、wget和git。
sudo apt install -y curl wget git build-essential
第二步:安装Go语言环境
以太坊客户端(如Geth)是用Go语言编写的,因此我们需要先安装Go,我们将安装一个较新的稳定版本(例如1.21)。
# 下载Go语言的二进制压缩包 # 请访问 https://go.dev/dl/ 查找并替换为最新的版本号 wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz # 解压下载的文件到 /usr/local 目录 sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz # 将Go的可执行文件路径添加到系统的环境变量中 echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile # 使环境变量立即生效 source ~/.profile # 验证Go是否安装成功 go version
如果看到类似 go version go1.21.5 linux/amd64 的输出,说明Go安装成功。
第三步:安装与配置以太坊客户端(Geth)
Geth(Go-Ethereum)是以太坊最主流的官方客户端之一,我们将通过源码编译的方式安装它,这能确保我们使用最新的功能。
# 创建一个目录用于存放以太坊项目 mkdir -p ~/ethereum && cd ~/ethereum # 从GitHub克隆Geth的官方仓库 git clone https://github.com/ethereum/go-ethereum.git # 进入克隆下来的目录 cd go-ethereum # 切换到一个较新的稳定分支(例如release/1.13.x) # 您可以访问GitHub查看最新的稳定分支 git checkout release/1.13.x # 编译Geth make geth
编译过程可能需要几分钟时间,具体取决于您的CPU性能,编译成功后,geth可执行文件会生成在~/ethereum/go-ethereum/build/bin/目录下。
为了方便在任何地方调用geth,我们可以将它添加到系统路径中:
# 将Geth的路径添加到环境变量 echo 'export PATH=$PATH:~/ethereum/go-ethereum/build/bin' >> ~/.profile # 使环境变量立即生效 source ~/.profile # 验证Geth是否安装成功 geth version
第四步:准备数据存储目录
在第一步中我们强调了硬盘空间的重要性,我们需要将这个大容量硬盘挂载并设置为Geth的数据存储目录。
-
识别新硬盘:使用
lsblk或fdisk -l命令来查找您的新硬盘,它可能被识别为/dev/sdb或/dev/nvme1n1等。 -
