以太坊作为全球领先的智能合约平台和去中心化应用(DApp)生态系统的基石,吸引了无数开发者和研究者的关注,在自己的服务器上搭建以太坊节点,不仅可以参与网络验证、获取交易收益(对于验证者节点),还能更深入地了解区块链的运行机制,并为DApp开发和测试提供稳定的环境,本文将详细介绍如何在阿里云服务器上,从零开始搭建一个以太坊全节点(以Geth客户端为例)。
准备工作:选择合适的阿里云服务器
在开始之前,选择一款合适的云服务器至关重要,以太坊节点对硬件资源有一定要求:
- CPU:建议选择至少2核vCPU,多核CPU有助于同步和同步后的交易处理。
- 内存:建议至少4GB RAM,8GB或以上更佳,特别是在同步区块和运行复杂智能合约时。
- 存储:这是最关键的部分,以太坊区块链数据量巨大且持续增长(截至2024年初,已超过1TB,并仍在增加)。
- 类型:必须选择高性能云盘,如ESSD(弹性块存储),以保证I/O性能,避免同步和运行时因磁盘性能不足而卡顿。
- 大小:建议至少选择500GB起步,但考虑到未来增长,1TB或更大更为稳妥,可以在初始配置时选择较小容量,后续通过扩容功能增加。
- 操作系统:推荐使用Ubuntu Server 20.04 LTS或22.04 LTS,64位版本,因为Geth对Linux的支持最好,社区文档也最丰富。
- 网络:确保服务器带宽足够,建议至少5Mbps以上,且最好是按量后付费或固定带宽,以保证同步速度的稳定性。
连接服务器与基础环境配置
- 远程连接:使用SSH工具(如PuTTY、Xshell或Terminal)连接到你的阿里云服务器,公网IP地址和登录凭证在阿里云ECS控制台可以获取。
ssh root@你的服务器公网IP
- 更新系统:
sudo apt update sudo apt upgrade -y
- 创建非root用户(推荐):
sudo adduser ethereum # 创建一个名为ethereum的用户 sudo usermod -aG sudo ethereum # 将该用户加入sudo组
然后退出root登录,用新创建的ethereum用户登录:
exit ssh ethereum@你的服务器公网IP
- 安装必要工具:
sudo apt install -y git wget curl build-essential
安装Geth以太坊客户端
Geth是以太坊官方Go语言实现的客户端,是最常用、最稳定的以太坊节点软件之一。
-
下载Geth:访问Geth的官方GitHub Releases页面(https://github.com/ethereum/go-ethereum/releases)获取最新稳定版的下载链接,或者使用以下命令下载(以最新版本为例,请替换为实际版本号):
# 下载最新稳定版的geth(请替换为实际版本号) wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.12-4cd6ba6d.tar.gz
(注意:版本号会更新,请务必确认最新稳定版号)
-
解压并安装:
tar -xvf geth-linux-amd64-*.tar.gz sudo cp geth-linux-amd64/geth /usr/local/bin/ # 验证安装 geth version
如果看到版本信息,说明安装成功。
初始化以太坊节点
在启动节点之前,可以选择初始化一个数据目录,这一步不是必须的,但可以提前配置一些参数。
- 创建数据目录:
mkdir -p ~/ethereum/data
- 初始化(可选):
如果你想创建一个自定义的genesis.json文件(通常用于私有链或测试链),可以初始化,对于公共主网,这一步可以跳过,Geth在首次启动时会自动使用主网的genesis block。
# geth init --datadir ~/ethereum/data /path/to/your/genesis.json
启动并同步以太坊节点
这是核心步骤,我们将启动Geth节点并开始同步以太坊区块链数据。
-
基本启动命令:
geth --datadir ~/ethereum/data sync
--datadir:指定数据存储目录。sync:启动同步模式。
