BSC主网链搭建,如何在不到24小时之内同步完成?
还是老样子,在本篇文档开始之前,大概说明一下本次BSC同步的情况:
- 服务器环境
服务器:阿里云服务器
CPU:16核
内存:64 GB
数据盘:3T SSD 数据盘
带宽:独享 200M
区域:美国弗吉尼亚
- 软件环境
centos 7.9
- BSC快照官方[2]:https://docs.binance.org/smart-chain/developer/snapshot.html
- BSC快照github[3]:https://github.com/binance-chain/bsc-snapshots
- BSC github地址[4]:https://github.com/binance-chain/bsc/releases
一、下载bsc主网快照数据
- 安装linux下的窗口管理器工具:screen
yum -y install screen
- 下载bsc主网快照数据
cd /opt/bsc/
screen -S bsc wget -O geth.tar.gz https://tf-dex-prod-public-snapshot-site3.s3-accelerate.amazonaws.com/geth-20211213.tar.gz?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO&Signature=8r9jega8ks02LybpvhKFoVuelpI%3D&Expires=1642012249
- 解压bsc主网快照数据
tar zxvf geth.tar.gz
二、下载BSC二进制文件
- 下载BSC二进制文件
cd /opt/bsc/
wget https://github.com/binance-chain/bsc/releases/download/v1.1.7/geth_linux
- 授予可执行权限
chmod +x geth_linux
三、下载主网配置文件及创世区块文件
- 下载主网配置文件及创世区块文件
cd /opt/bsc/
wget https://github.com/binance-chain/bsc/releases/download/v1.1.7/mainnet.zip
- 解压下载好的文件
unzip mainnet.zip
- 修改BSC主网配置文件
TrieTimeout:这意味着geth将不会将状态持久化到数据库中,直到达到这个时间阈值,如果节点已经被强制关闭,它将从最后一个状态开始同步,这可能需要很长时间,可设置为:TrieTimeout = 200000000000
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 = ["*"]
注意:当TrieTimeout值设置的越大,系统崩溃后,节点恢复的时间越长
四、二进制启动BSC主网
- 启动BSC主网节点
screen -S bsc /opt/bsc/geth_linux --config /opt/bsc/config.toml --datadir /opt/bsc/data-seed --cache 60416 --rpc.allow-unprotected-txs --txlookuplimit 0 --txpool.reannouncetime 5m --diffsync
参数说明:
--config:指定BSC节点配置文件
--datadir:指定BSC节点数据库和密钥存储库的数据目录(默认:"/root/.ethereum")
--cache:设置最大分配给内部缓存的内存,默认:1024(设置越大,每次同步的数据越多,消耗的内存也越大)
--rpc.allow-unprotected-txs:允许通过RPC提交不受保护的(非 EIP155 签名)交易
--txlookuplimit 0 : 禁用删除事务索引
--diffsync:启用差异同步协议来帮助节点更快地同步
五、查询是否同步完成
- 查看当前最新区块
# curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","id":1,"result":"0xa352a4"}
- 查看当前同步状态
# curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","id":1,"result":false}
注:结果为false为同步完成
以上,就是今天分享的全部内容了。按照以上配置及部署方式,BSC不到24小时即可同步至最新区块。希望大家通过以上方式可以解决自己的实际需求,解决自己目前所遇到的问题。
参考资料
[1]
toString: https://learnblockchain.cn/people/3835
[2]
BSC快照官方: https://docs.binance.org/smart-chain/developer/snapshot.html
[3]
BSC快照github: https://github.com/binance-chain/bsc-snapshots
[4]
BSC github地址: https://github.com/binance-chain/bsc/releases
相关文章
- MybatisPlus------MyBatisX插件:快速生成代码以及快速生成CRUD(十二)
- 【项目管理】项目延期的原因有哪些?
- 【项目实战典型案例】07.在线人员列表逻辑混乱反例
- 高频前端面试题之HTML篇(四)
- VSCode 当笔记工具
- web3:区块链共识机制系列-POS(Proof of Stake)股权证明算法
- 【小程序】常见系统API | 页面分享 | 位置信息 | 本地存储
- 同态加密详解
- 【区块链实战】什么是 P2P 网络,区块链和 P2P 网络有什么关系
- 给程序员的Web3入门指南
- VSCode常用快捷键(Mac版)
- 基于区块链/Hyperledger Fabric的商品交易溯源系统搭建步骤
- 【区块链实战】如何创建一个带参数的智能合约
- 区块链开发完整指南。如何开发一款区块链项目?
- 经典同态加密算法Paillier解读 - 原理、实现和应用
- 【Zookeeper 初级】02、Zookeeper 集群部署
- 华为OD机试 - 二维矩阵的最大值(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 学习操作系统的必备教科书《操作系统:原理与实现》| 文末赠书4本
- 对于从事芯片行业的人来说,有哪些知识是需要储备的?
- FinOps,从概念到落地 | UGeek大咖说第一期直播回顾(上)