ETH全节点搭建(2024)

很久没写博客了,最近发生了好多好多事,好像做了一个梦... 又回到了熟悉的生活方式,希望还是从前的我,不忘初心、励志前行。

 

 

[全节点建议配置]

系统:Linux

CPU:16核

内存:128GB内存

带宽:1G以上

硬盘:大于4T  固态SSD可用空间数据盘

 

 

本次搭建使用配置系统:ubuntu22.04 CPU:32核心64线程内存:128GB内存带宽:1G上下对等硬盘:ssd4T

一、服务器配置

系统:Linux
CPU:16核
内存:128 GB 内存
带宽:1G以上
硬盘:大于4T固态SSD可用空间数据盘
  • 本次搭建使用配置
系统:ubuntu22.04
CPU:32核心64线程
内存:128GB 内存
带宽:1G上下对等
硬盘:ssd 4T
区域:USA

搭建eth全节点需要执行客户端和信标节点客户端都保持同步。本次搭建执行客户端使用geth,信标节点客户端使用Prysm

二、系统环境

  • 更新ubuntu软件包
apt-get upgrade
  • 安装git
apt install git
  • 安装Golang (安装 Go 主要是为了去编译 go-ethereum 源码)
apt install golang

此命令如果安装不上,请自行度娘手动编译安装最新版本Golang,需要 Go(1.19 或更高版本)

使用go version确认安装正确

go version

如下显示则安装正确。

[root@localhost ~]# go version
go version go1.19 linux/amd64
  • 安装linux下的窗口管理器工具screen
apt install screen 

三、节点安装部署

  • 安装ETH版本的prysm
 cd /                        #进入根目录
 mkdir eth                    #创建eth文件夹
 cd eth
 mkdir consensus
 mkdir execution
 cd consensus
 mkdir prysm && cd prysm
 curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh
 ./prysm.sh beacon-chain generate-auth-secret
 
  • 安装ETH版本的geth
 cd /eth                        #进入eth目录
 git clone https://github.com/ethereum/go-ethereum.git
 make geth 
 cd go-ethereum/build/bin

四、启动ETH信标客户端

screen -S prysm   #创建prysm启动窗口
./prysm.sh beacon-chain --execution-endpoint=http://localhost:8551 --jwt-secret=/eth/consensus/prysm/jwt.hex

然后按ctrl + shift + a + d 回到主会话即可

五、启动ETH执行客户端

screen -S eth   #创建eth启动窗口
 ./geth --cache 10240   --datadir ./node --ws --ws.port 8546 --ws.addr 0.0.0.0 --ws.origins '*' --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --maxpeers=300 --authrpc.jwtsecret /eth/consensus/prysm/jwt.hex --state.scheme=path
参数说明: 
–datadir:指定ETH节点数据库和密钥存储库的数据目录(默认即可) 
–cache:设置最大分配给内部缓存的内存,默认:1024(设置越大,每次同步的数据越多,消耗的内存也越大) 
–rpc.allow-unprotected-txs:允许通过RPC提交不受保护的(非 EIP155 签名)交易 
–txlookuplimit 0 : 禁用删除事务索引

六、节点状态监听

geth attach http://localhost:8545     #端口如果修改配置文件了,就填写配置文件的端口即可
> eth.syncing                          #查看当前区块情况,结果为false表示已同步最新区块

说明:

currentBlock: 14290861, #当前同步到区块高度

highestBlock: 14297354, #主网当前高度

knownStates:297473485,

pulledStates: 297473485,

startingBlock: 14270385

> net.peerCount      #查看当前连接节点数量
> eth.blockNumber #当前同步到区块高度
  • 停止执行客户端节点
打开eth窗口:
  screen -x eth
然后按ctrl+c即可
  • 停止信标客户端节点
打开prysm窗口:
screen -x prysm
然后按ctrl+c即可

七、注意事项

eth链主网浏览器浏览器:https://cn.etherscan.com/

本次教程服务器配置同步到最高区块用了大概72小时左右就追到了最高区块。作者使用过很多服务器同步eth,同步过程中常见错误,如:

1 geth同步到某个区块卡着不在同步

2 prysm一直同步等待

最难受的就是同步等待,有的等待同步一周甚至更久... 一般是带宽或者硬件配置不够

 

posted @ 2024-08-08 15:11  SoyWang  阅读(581)  评论(0编辑  收藏  举报