BSC全节点搭建教程(2024)

一、服务器配置全节点建议配置系统:LinuxCPU:16核内存:64GB内存带宽:50M以上硬盘:大于2T固态SSD可用空间数据盘本次搭建使用配置系统:ubuntu22.04CPU:32核心64线程内存:64GB内存带宽:1G上下对等硬盘:ssd4T区域

<!--StartFragment-->

一、服务器配置

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


二、系统环境

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

此命令如果安装不上,请自行度娘手动编译安装最新版本Golang

使用go version确认安装正确

go version

如下显示则安装正确。

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

三、节点安装部署

在根目录创建bscnode文件夹用来存放节点程序,并同时在bsc里边创建一个snapshot文件夹,下载的快照数据

1.务必使用固态硬盘并且可使用空间大于2T 2.如果固态不够使用,可以把快照压缩包下载到机械硬盘里边,解压的时候解压到固态硬盘

  • 安装BSC版本的geth
 cd /                       #进入根目录
 mkdir -p bscnode/snapshot  #创建bscnode及snapshot文件夹
 cd /bscnode                #进入bscnode文件夹
 git clone https://github.com/binance-chain/bsc
 cd bsc/
 make geth

配置路径

export PATH=$PATH:/bscnode/bsc/build/bin

使用geth version确认安装正确

  • 配置创世区块
wget https://github.com/binance-chain/bsc/releases/download/v1.1.7/mainnet.zip  #这里建议在github找最新的配置
unzip mainnet.zip
geth --datadir node init genesis.json
  • 下载BSC快照

创建一个用来下载快照的screen窗口

screen -S download

*注意1:使用screen窗口期间可以退出或者关闭命令行对话框。 *注意2:退出当前窗口时用ctrl+ad(顺序按a和d字母即可),绝对不要用exit或ctrl+d退出会话。 *注意2:退出会话后,可以用screen -x download重新连接到会话。这样可以保持在shell下运行,网络中断不会影响。

开始下载快照

cd /bscnode/snapshot'     #进入bscnode文件夹下载快照
wget -O geth.tar.gz "最新下载地址"   #在github上找最新的快照下载地址替换'最新下载地址'

这里要下载很久,所以带宽要尽可能高。 在这里获取最新全节点快照地址 BSC快照github:https://github.com/binance-chain/bsc-snapshots

下载完成后解压 并移动 chaindata 和 triecache 到./bscnode/bsc/node/geth/ 文件夹下

tar zxvf geth.tar.gz -C /bscnode/snapshot
mv /bscnode/snapshot/server/data-seed/geth/chaindata /bscnode/bsc/node/geth
mv /bscnode/snapshot/server/data-seed/geth/triecache /bscnode/bsc/node/geth

移动完毕以后退出screen的download窗口,并创建bsc窗口开始运行节点。

退出当前窗口时用ctrl+ad(顺序按a和d字母即可),绝对不要用exit或ctrl+d退出会话

ctrl+ad     #退出download窗口

启动之前可以先自行配置一下节点的配置文件

  • 修改BSC主网配置文件
vim /bscnode/bsc/config.toml

参数说明:

TrieTimeout:这意味着geth将不会将状态持久化到数据库中,直到达到这个时间阈值,如果节点已经被强制关闭,它将从最后一个状态开始同步,这可能需要很长时间,可设置为:TrieTimeout = 200000000000 注意:当TrieTimeout值设置的越大,系统崩溃后,节点恢复的时间越长 HTTPHost: HTTP-RPC服务连接白名单,此参数的值默认为 “localhost”,仅允许本地可访问,如果需要外网访问节点 请设置为:“0.0.0.0” HTTPVirtualHosts:HTTP-RPC服务监听接口,此参数的值默认为[“localhost”],可设置为:HTTPVirtualHosts = ["*"] HTTPPort:http协议rpc端口 WSPort:websocket协议rpc端口 WSHost:websocket服务连接白名单,此参数的值默认为 “localhost”,仅允许本地可访问,可设置为:“0.0.0.0” WSOrigins:websocket服务监听接口,可设置为:WSOrigins = ["*"]

三、启动BSC全节点

screen -S bsc   #创建bsc节点启动窗口
geth --config ./config.toml --datadir ./node --diffsync --cache 8000 --history.transactions=0 --syncmode full --rpc.allow-unprotected-txs --pruneancient=true --db.engine=pebble

然后按ctrl+ad回到主会话即可

参数说明:

–config:指定BSC节点配置文件 –datadir:指定BSC节点数据库和密钥存储库的数据目录(默认即可) –cache:设置最大分配给内部缓存的内存,默认:1024(设置越大,每次同步的数据越多,消耗的内存也越大) –rpc.allow-unprotected-txs:允许通过RPC提交不受保护的(非 EIP155 签名)交易 –txlookuplimit 0 : 禁用删除事务索引 –diffsync:启用差异同步协议来帮助节点更快地同步

四、节点状态监听

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

说明:

currentBlock: 14290861, #当前同步到区块高度 highestBlock: 14297354, #主网当前高度 knownStates:297473485, pulledStates: 297473485, startingBlock: 14270385

> net.peerCount   #查看当前连接节点数量
> eth.blockNumber #当前同步到区块高度

退出请按 ctrl+d 回到主会话。

  • 停止节点

打开bsc窗口

screen -x bsc

然后按 ctrl+c 即可

五、注意事项

bsc链主网浏览器浏览器:<https://bscscan.com/>

本次教程服务器配置同步到最高区块用了大概6小时左右就追到了最高区块,在使用固态之前用机械硬盘试了一下,每秒1个块,可以说相当拉胯了,所以还是推荐直接上SSD,硬盘最好4T空间,否则区块数据都要1.9个T,如果只有2T空间根本不够用。

不懂的加我q(2857775253),有bsc、eth节点租用,支持监听内部交易哦\~

<!--EndFragment-->

点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
鬼才链(v+transbsc)
鬼才链(v+transbsc)
江湖只有他的大名,没有他的介绍。