ETH主网节点同步搭建教程
系统配置:
cpu: 8核
内存: 16G及以上
系统盘: 60G
数据盘: 2T及以上
系统: centos 7 (64位)
带宽: 独享 100M
- ETH 浏览器: https://etherscan.io/
- 星火节点: https://github.com/EthFans/wiki/wiki/%E6%98%9F%E7%81%AB%E8%8A%82%E7%82%B9%E8%AE%A1%E5%88%92%E8%B6%85%E7%BA%A7%E8%8A%82%E7%82%B9%E5%88%97%E8%A1%A8
- ETH健康种子节点列表: https://www.ethernodes.org/tor-seed-nodes
1.下载geth
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.15-8be800ff.tar.gz
tar zxf geth-linux-amd64-1.10.15-8be800ff.tar.gz
cd geth-linux-amd64-1.10.15-8be800ff
cp geth /usr/bin/
geth version
Geth Version: 1.10.15-stable Git Commit: 8be800ffa9c4992666e2620e0ab4725a1a83352b Git Commit Date: 20220105 Architecture: amd64 Go Version: go1.17.5 Operating System: linux GOPATH= GOROOT=go
- 可以看到geth的版本是1.10.15,这个版本我可以成功同步到最新的区块高度,低于这个版本的中间都会出现一些奇奇怪怪的问题.
2.启动节点
mkdir /data/eth_data
nohup geth --cache=8192 --datadir /data/eth_data --http --http.addr 0.0.0.0 --http.port 8545 --http.api "txpool,eth,web3,admin,personal,net,db" --port 30303 --allow-insecure-unlock --http.corsdomain "*" --maxpeers 999 --maxpendpeers 999 --allow-insecure-unlock --snapshot=false --gcmode=archive > /data/output.log 2>&1 &
- –datadir value 节点数据存放目录/data/eth_data
- –cache value 分配给内部缓存的内存MB数量,默认为 128,这里我设置为8G,这个值在同步数据时,节点会对数据进行校验,所以可以根据你服务器配置来设大一些提高数据同步效率.
- –http.addr value HTTP-RPC服务器接口地址(默认值:"localhost"),默认只允许本地连接,设置为 0.0.0.0 可以接收任何地址发来的连接请求.
- –http.port value HTTP-RPC服务器监听端口(默认值:8545),可以改为不同的端口
- –http.api value 基于HTTP-RPC接口提供的API
在低版本里的–rpcaddr和–rpcport等这些参数好像都被取消,我在geth的帮助信息里没有找到.
3.geth客户端登陆操作
#登陆
geth attach ipc:/data/eth_data/geth.ipc
#查看状态
eth
#查看最新区块高度
eth.blockNumber
#查看同步状态,返回 false 未同步或同步到最新了
eth.syncing
注意事项:
- 同步的时候最好把 30303 这个端口对外开放.
- 把 8545 这个端口不对外开放,只对内网开放.
本文参考: