:2026-03-11 1:12 点击:3
以太坊作为全球领先的智能合约平台和去中心化应用(DApp)的底层基础设施,其去中心化、安全性和透明性备受瞩目,对于开发者、爱好者或希望深入参与以太坊生态的用户而言,在Linux系统上搭建和维护以太坊节点是一项非常有价值的技能,本教程将带你一步步了解如何在Linux环境下进行以太坊相关操作,包括节点的安装、配置与基本使用。
为什么选择Linux进行以太坊操作?
在开始之前,了解一下为何Linux是运行以太坊节点的首选操作系统:
准备工作
在开始搭建之前,请确保你的Linux系统满足以下基本条件:
安装以太坊客户端(以Geth为例)
Geth(Go-Ethereum)是以太坊官方实现的Go语言客户端,功能全面,使用广泛。
更新系统包: 打开终端,首先更新你的系统包列表和已安装的包:
sudo apt update sudo apt upgrade -y
安装必要依赖:
sudo apt install -y build-essential software-properties-common curl git unzip
安装Go(Geth依赖Go环境): 访问Go官方下载页面(https://golang.org/dl/)获取最新版本Linux AMD64的tarball,或使用以下命令(以1.21.0为例):
wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
添加Go到PATH环境变量:
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc source ~/.bashrc
验证Go安装:
go version
下载并安装Geth: 访问Geth官方GitHub Releases页面(https://github.com/ethereum/go-ethereum/releases)获取最新版本的下载链接,或使用以下命令:
# 以最新版本1.13.6为例(请替换为实际最新版本号) wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.6-4e8c7b56.tar.gz tar -xzf geth-linux-amd64-1.13.6-4e8c7b56.tar.gz sudo cp geth-linux-amd64-1.13.6-4e8c7b56/geth /usr/local/bin/
验证Geth安装:
geth version
启动和运行以太坊全节点
创建数据目录(可选,建议):
mkdir -p ~/ethereum/data
启动Geth节点: Geth提供了丰富的启动参数,以下是一个启动全节点并同步数据的示例命令:
geth --datadir ~/ethereum/data \
--syncmode "full" \ # 同步模式:full(全节点),fast(快速同步),light(轻节点)
--gcmode "full" \ # 垃圾回收模式:full(全节点),archive(归档节点,保留所有历史状态)
--http \ # 启动HTTP-RPC服务
--http.addr "0.0.0.0" \ # HTTP-RPC监听地址,0.0.0.0允许任何IP连接
--http.port "8545" \ # HTTP-RPC端口
--http.vhosts "*" \ # 允许任何Host头的HTTP请求
--ws \ # 启动WebSocket-RPC服务
--ws.addr "0.0.0.0" \ # WebSocket-RPC监听地址
--ws.port "8546" \ # WebSocket-RPC端口
--ws.origins "*" \ # 允许任何源的WebSocket连接
--maxpeers 50 \ # 最大连接节点数
--cache 8192 \ # 缓存大小(MB)
--metrics # 启动指标监控,默认监听localhost:6060
30303(TCP和UDP)端口,以便更好地与其他节点进行P2P通信。--syncmode "full"和--gcmode "archive"会占用大量存储空间(目前TB级别),请确保有足够的磁盘空间,普通用户通常使用--syncmode "fast"即可。后台运行Geth:
如果你希望Geth在后台运行,可以使用nohup或screen/tmux工具。
使用nohup:
nohup geth --datadir ~/ethereum/data [其他参数] > geth.log 2>&1 &
这会将Geth的输出重定向到geth.log文件中,并在后台运行。
停止Geth节点:
如果前台运行,按Ctrl+C。
如果后台运行,可以使用ps命令找到Geth的进程ID(PID),然后kill:
ps aux | grep geth kill <PID>
连接到以太坊节点
启动节点后,你可以通过多种方式连接到它:
Geth控制台: 在终端中运行:
geth attach ~/ethereum/data/geth.ipc
进入控制台后,可以执行JavaScript命令与以太坊网络交互,
eth.blockNumber // 查看最新区块号
eth.accounts // 查看账户列表(如果没有创建则为空)
personal.newAccount("your_password") // 创建新账户
HTTP-RPC API:
你可以使用支持JSON-RPC的工具(如Postman、curl)或Web3.js、web3.py等库连接到节点的HTTP服务(http://localhost:8545)。
使用curl查询最新区块号:
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:8545
WebSocket-RPC API:
类似地,也可以通过WebSocket连接(ws://localhost:8546)进行实时交互。
管理和维护你的节点
tail -f ~/ethereum/data/geth/LOG.* 或之前用nohup重定向的geth.log。~/ethereum/data目录,这是你的节点核心数据。htop, glances等工具本文由用户投稿上传,若侵权请提供版权资料并联系删除!