4

二进制方式快速部署BSC主网v1.1.2

 3 years ago
source link: https://learnblockchain.cn/article/2953
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

北京时间 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主网快照数据

  • 安装linux下的窗口管理器工具:screen
yum -y install screen
  • 下载bsc主网快照数据
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
  • 解压bsc主网快照数据
tar zxvf geth.tar.gz

二、下载BSC二进制文件

  • 下载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
  • 修改BSC主网配置文件

TrieTimeout:这意味着geth将不会将状态持久化到数据库中,直到达到这个时间阈值,如果节点已经被强制关闭,它将从最后一个状态开始同步,这可能需要很长时间,可设置为:TrieTimeout = 2000000000000

HTTPHost: HTTP-RPC服务连接白名单,此参数的值默认为 "localhost",仅允许本地可访问,可设置为:"0.0.0.0"

HTTPVirtualHosts:HTTP-RPC服务监听接口,此参数的值默认为 ["localhost"],可设置为:HTTPVirtualHosts = ["*"]

四、二进制启动BSC主网

  • 启动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为同步完成


以上,就是今天分享的全部内容了。

希望大家通过以上方式可以解决自己的实际需求,解决自己目前所遇到的问题。

如果在部署过程中有任何疑问,可以扫描下面的二维码,添加我的个人微信,备注:地区-职业方向-昵称,欢迎来撩,加入区块链技术交流群,与更多的区块链技术大佬学习交流。

在这里插入图片描述

原创不易,码字不易。 觉得这篇文章对你有点用的话,麻烦你为本文点个赞,留言或转发一下,因为这将是我输出更多优质文章的动力,感谢!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK