- BSC快照官方:https://docs.binance.org/smart-chain/developer/snapshot.html
- BSC快照github:https://github.com/binance-chain/bsc-snapshots
- BSC链github地址:https://github.com/binance-chain/bsc
北京时间 2021年 8月 27 日 20 点 50 分左右(区块高度 13107518),一个共识漏洞(利用了 geth v1.10.8 中修复的共识漏洞)袭击了以太坊主网,以太坊因遭到攻击而导致分叉。
由于 Geth 是 BSC公链的基础,因此该漏洞影响范围甚广。目前现在这个漏洞可以在其他网络上重演,所以BSC公链推出了升级和补丁,所以我们也应该根据BSC公链github上面发布的漏洞修复版本尽早升级,以确保基础设施的安全。
本篇文档开始之前,大概说明一下本次BSC同步的情况:
服务器:阿里云服务器
CPU:16核
内存:32GB
数据盘:2T SSD 数据盘
带宽:独享 100M
centos 7.8
按照以上配置,预计十六小时即可同步至BSC主网最新区块
一、下载bsc主网快照数据
yum -y install screen
cd /opt/bsc/
screen -S bsc wget -O geth.tar.gz https://s3.ap-northeast-1.amazonaws.com/dex-bin.bnbstatic.com/geth-20210906.tar.gz?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO\&Signature=3Un5p4lJcPQehQB8niMthMYrg%2FM%3D\&Expires=1633552351
tar zxvf geth.tar.gz
二、下载BSC二进制文件
cd /opt/bsc/server
wget https://github.com/binance-chain/bsc/releases/download/v1.1.2/geth_linux
chmod 777 geth_linux
三、下载主网配置文件及创世区块文件
cd /opt/bsc/server
wget $(curl -s https://api.github.com/repos/binance-chain/bsc/releases/latest |grep browser_ |grep mainnet |cut -d\" -f4)
unzip mainnet.zip
TrieTimeout:这意味着geth将不会将状态持久化到数据库中,直到达到这个时间阈值,如果节点已经被强制关闭,它将从最后一个状态开始同步,这可能需要很长时间,可设置为:TrieTimeout = 2000000000000
HTTPHost: HTTP-RPC服务连接白名单,此参数的值默认为 “localhost”,仅允许本地可访问,可设置为:“0.0.0.0”
HTTPVirtualHosts:HTTP-RPC服务监听接口,此参数的值默认为 [“localhost”],可设置为:HTTPVirtualHosts = ["*"]
四、二进制启动BSC主网
screen -S bsc /opt/bsc/geth_linux --config /opt/bsc/config.toml --datadir /opt/bsc/data-seed --cache 30720 --rpc.allow-unprotected-txs --txlookuplimit 0
参数说明:
–config:指定BSC节点配置文件
–datadir:指定BSC节点数据库和密钥存储库的数据目录(默认:"/root/.ethereum") –cache:设置最大分配给内部缓存的内存,默认:1024(设置越大,每次同步的数据越多,消耗的内存也越大)
–rpc.allow-unprotected-txs:允许通过RPC提交不受保护的(非 EIP155 签名)交易
–txlookuplimit 0 : 禁用删除事务索引
五、查询是否同步完成
# 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为同步完成
以上,就是今天分享的全部内容了。
希望大家通过以上方式可以解决自己的实际需求,解决自己目前所遇到的问题。
如果在部署过程中有任何疑问,可以扫描下面的二维码,添加我的个人微信,备注:地区-职业方向-昵称,欢迎来撩,加入区块链技术交流群,与更多的区块链技术大佬学习交流。
原创不易,码字不易。 觉得这篇文章对你有点用的话,麻烦你为本文点个赞,留言或转发一下,因为这将是我输出更多优质文章的动力,感谢!
|