一、服务器配置要求
- 全节点建议配置
系统:Mac & Linux
CPU:16核
内存:64 GB 内存
带宽:50M以上
硬盘:大于2T固态SSD可用空间数据盘
- 本次搭建使用配置
系统:Centos7.9
CPU:32核心64线程
内存:64GB 内存
带宽:100M上下对等
硬盘:固态2T 机械2T 一共4T
区域:HK
- BSC官方文档:https://docs.binance.org/smart-chain/developer/fullnode.html
- BSC快照github:https://github.com/binance-chain/bsc-snapshots
- BSC github地址:https://github.com/binance-chain/bsc/releases
- 更新Centos软件包
yum -y upgrade
- 安装wget和git
yum install wget -y
yum install git -y
- 安装Golang(安装 Go 主要是为了去编译 go-ethereum 源码)
yum install golang -y
此命令如果安装不上,请自行度娘手动编译安装最新版本Golang使用
go version
确认安装正确go version
如下显示则安装正确。
[root@localhost ~]# go version
go version go1.16.7 linux/amd64
- 安装linux下的窗口管理器工具screen
yum -y install screen
三、节点安装部署 在根目录创建
jiedian
文件夹用来存放节点程序,并在同时在jiedian里边创建一个kuaizhao
文件夹,下载的快照数据1.务必使用固态硬盘并且可使用空间大于2T
2.如果固态不够使用,可以把快照压缩包下载到机械硬盘里边,解压的时候解压到固态硬盘
- 安装BSC版本的geth
cd /#进入根目录
mkdir -p jiedian/kuaizhao#创建jiedian及kuaizhao文件夹
cd /jiedian#进入jiedian文件夹
git clone https://github.com/binance-chain/bsc
cd bsc/
make geth
配置路径
export PATH=$PATH:/jiedian/bsc/build/bin
使用
geth version
确认安装正确- 配置创世区块
wget https://github.com/binance-chain/bsc/releases/download/v1.1.7/mainnet.zip
unzip mainnet.zip
geth --datadir node init genesis.json
- 下载BSC快照
screen -S xiazai
*注意1:使用screen窗口期间可以退出或者关闭命令行对话框。开始下载快照
*注意2:退出当前窗口时用ctrl+ad(顺序按a和d字母即可),绝对不要用exit或ctrl+d退出会话。
*注意2:退出会话后,可以用screen -x xiazai重新连接到会话。这样可以保持在shell下运行,网络中断不会影响。
cd /jiedian/kuaizhao#进入kuaizhao文件夹下载快照
wget -O geth.tar.gz "最新下载地址"
这里要下载很久,所以带宽要尽可能高。下载完成后解压 并移动 chaindata 和 triecache 到./jiedian/bsc/node/geth/ 文件夹下
在这里获取最新全节点快照地址
BSC快照github:https://github.com/binance-chain/bsc-snapshots
tar zxvf geth.tar.gz -C /jiedian/kuaizhao
mv /jiedian/kuaizhao/server/data-seed/geth/chaindata /jiedian/bsc/node/geth
mv /jiedian/kuaizhao/server/data-seed/geth/triecache /jiedian/bsc/node/geth
移动完毕以后退出screen的xiazai窗口,并创建bsc窗口并开始运行节点。
退出当前窗口时用ctrl+ad(顺序按a和d字母即可),绝对不要用exit或ctrl+d退出会话
ctrl+ad#退出xiazai窗口
启动之前可以先自行配置一下节点的配置文件
- 修改BSC主网配置文件
vim /jiedian/bsc/config.toml
参数说明:
TrieTimeout:这意味着geth将不会将状态持久化到数据库中,直到达到这个时间阈值,如果节点已经被强制关闭,它将从最后一个状态开始同步,这可能需要很长时间,可设置为:TrieTimeout
= 200000000000
注意:当TrieTimeout值设置的越大,系统崩溃后,节点恢复的时间越长
HTTPHost: HTTP-RPC服务连接白名单,此参数的值默认为 “localhost”,仅允许本地可访问,如果需要外网访问节点请设置为:“0.0.0.0”
HTTPVirtualHosts:HTTP-RPC服务监听接口,此参数的值默认为[“localhost”],可设置为:HTTPVirtualHosts = ["*"]
HTTPPort:http协议rpc端口三、启动BSC智能全节点
WSPort:websocket协议rpc端口
WSHost:websocket服务连接白名单,此参数的值默认为 “localhost”,仅允许本地可访问,可设置为:“0.0.0.0”
WSOrigins:websocket服务监听接口,可设置为:WSOrigins = ["*"]
screen -S bsc #创建bsc节点启动窗口
geth --config ./config.toml --datadir ./node --diffsync --cache 56000 --rpc.allow-unprotected-txs --txlookuplimit 0
然后按ctrl+ad回到主会话即可
参数说明:
–config:指定BSC节点配置文件
–datadir:指定BSC节点数据库和密钥存储库的数据目录(默认即可)
【学习记录|BSC链智能全节点搭建全教程详细步骤及配置要求、硬盘修剪等 - 超级详细教程】–cache:设置最大分配给内部缓存的内存,默认:1024(设置越大,每次同步的数据越多,消耗的内存也越大)
–rpc.allow-unprotected-txs:允许通过RPC提交不受保护的(非 EIP155 签名)交易
–txlookuplimit 0 : 禁用删除事务索引
–diffsync:启用差异同步协议来帮助节点更快地同步四、节点状态监听
geth attach http://127.0.0.1:8545
#这里的端口如果修改配置文件了,就填写配置文件的端口即可
> eth.syncing #查看当前区块情况
说明:
currentBlock: 14290861, #当前同步到区块高度
highestBlock: 14297354, #主网当前高度
knownStates:297473485,
pulledStates: 297473485,
startingBlock: 14270385
> net.peerCount #查看当前连接节点数量,结果为false为同步完成
> eth.blockNumber #当前同步到区块高度
退出请按 ctrl+d 回到主会话。
- 停止节点
screen -x bsc
然后按 ctrl+c 即可
五、注意事项 bsc链主网浏览器浏览器:https://bscscan.com/
我这个设备配置同步到最高区块用了大概10小时左右就追到了最高区块,在使用固态之前用机械硬盘试了一下,每秒1个块,可以说相当拉胯了,所以还是推荐直接上SSD,硬盘最好4T空间,否则区块数据都要1.9个T,如果只有2T空间根本不够用。
如果还有不懂的加我v联系我询问即可。
文章图片
推荐阅读
- pancakeswap|如何防止uniswap和pancakeswap夹子机器人
- 自由人NFT数字藏品平台即将上线,空头来袭,具有收藏价值吗
- 安全|兑现北京冬奥赞助承诺 奇安信安全防护软件冬奥版发布
- 网络|冬奥网络安全卫士招募正式启动!
- 历史上的今天|【历史上的今天】1 月 4 日(Linux 2.4 内核发布;创世区块诞生;苹果开放 Macintosh 系统授权)
- 数据库|在(快来pick你最喜爱的团队!)
- 大数据|CSDN 创始人蒋涛(开源吞噬世界,得开发者得天下)
- 区块链|FBEC2020 | 贾瑶琪(打造区块链项目最好的方式,是打造开源的系统)
- 人工智能|群雄逐鹿,共建开源!OpenI启智社区首批优秀开发者榜单谜底即将揭晓!