以太坊作为全球第二大区块链平台,其去中心化特性离不开节点的支撑,而Geth(Go-Ethereum)是以太坊官方实现的客户端,基于Go语言开发,支持全节点、轻节点等多种模式,是开发者和技术用户接入以太坊网络的核心工具,本文将详细介绍如何在Linux系统中安装、配置和运行Geth,帮助读者搭建属于自己的以太坊全节点,并掌握基本操作。
以太坊网络由全球无数节点共同维护,每个节点都存储完整的区块链数据,参与交易验证、区块同步和网络共识,Geth作为最主流的以太坊客户端,提供了丰富的功能:
在Linux系统(如Ubuntu、CentOS)中使用Geth,得益于Linux的稳定性和强大的命令行工具,能更高效地管理节点资源。
推荐使用Ubuntu 20.04/22.04 LTS系统,确保已安装wget、curl和git工具(可通过sudo apt update && sudo apt install wget curl git安装)。

通过二进制文件安装(推荐)
wget https://github.com/ethereum/go-ethereum/releases/download/v1.13.6/geth-linux-amd64-1.13.6-4e876ed6.tar.gz
tar -xzf geth-linux-amd64-1.13.6-4e876ed6.tar.gz sudo mv geth-linux-amd64-1.13.6/geth /usr/local/bin/
geth version
通过源码编译(适合开发者)

sudo apt install golang-go git git clone https://github.com/ethereum/go-ethereum.git cd go-ethereum make geth sudo mv build/bin/geth /usr/local/bin/
启动Geth默认同步以太坊主网,首次运行会自动下载区块链数据:
geth --syncmode full --http --http.addr "0.0.0.0" --http.port "8545" --http.api "eth,net,web3,personal"
参数说明:
--syncmode full:全节点同步模式(默认,同步完整数据); --http:开启HTTP-RPC服务,方便外部应用连接; --http.addr "0.0.0.0":允许任意IP访问HTTP服务(生产环境建议限制IP); --http.port "8545":HTTP服务端口(默认8545); --http.api:开放的API接口(如eth用于交易查询,web3用于节点交互)。 首次启动时,Geth会从其他节点同步数据,根据网络带宽和节点性能,可能需要数天至数周完成同步,可通过geth attach进入控制台,输入eth.syncing查看同步进度。
为避免主网同步的高资源消耗,开发者可先在测试网(如Goerli)上测试:

geth --networkid 5 --syncmode full --http --goerli
--networkid 5指定Goerli测试网ID(不同测试网有不同ID),--goerli明确指定网络名称。
通过geth attach命令可进入JavaScript控制台,与节点交互:
geth attach http://localhost:8545
// 查看节点版本 web3.clientVersion // 查看同步状态 eth.syncing // 查看当前区块号 eth.blockNumber
// 创建新账户
personal.newAccount("your_password")
// 查看账户列表
personal.listAccounts
// 解锁账户(发送交易前需解锁)
personal.unlockAccount(eth.accounts[0], "your_password")
// 查询账户余额
eth.getBalance(eth.accounts[0])
// 发送ETH(需解锁发送方账户)
const recipient = "0xRecipientAddress";
const amount = web3.toWei(0.1, "ether");
eth.sendTransaction({from: eth.accounts[0], to: recipient, value: amount})
Geth默认将区块链数据存储在~/.ethereum目录,可通过--datadir参数自定义路径:
geth --datadir /data/ethereum --syncmode full
定期清理旧数据或使用SSD存储可提升同步速度。
确保节点开放以下端口:
ufw开放端口: sudo ufw allow 30303/tcp sudo ufw allow 8545/tcp
使用nohup或systemd让Geth在后台运行:
nohup geth --syncmode full --http > geth.log 2>&1 &
或创建systemd服务文件(/etc/systemd/system/geth.service),实现开机自启和进程管理。
在Linux系统中使用Geth搭建以太坊全节点,是深入理解区块链工作原理、参与网络维护的重要实践,通过合理的配置与维护,节点不仅能为以太坊网络去中心化贡献力量,还能为开发者提供稳定的测试和交互环境,无论是区块链初学者还是资深开发者,掌握Geth的使用都是迈向以太生态开发的关键一步。
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com