BSC链节点搭建 保姆级详细教程

一,服务器配置要求

  • 官方建议配置
系统:Mac & Linux
CPU:16核
内存:64 GB 内存
带宽:50M以上
硬盘:大于2T固态SSD可用空间数据盘
  • 本次搭建使用的服务器配置
系统:Debian 11.1 (base)
CPU:16核心32线程
内存:128 GB DDR4 ECC
带宽:1 GBit/s
硬盘:2 个 3.84 TB NVMe SSD 数据中心版 (2 个 1.92 TB NVMe SSD 数据中心版 已经足够)
区域:HEL1 (Helsinki)

  • 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

【注】以下命令 基于Debian,但是由于部分命令我并未操作(如:安装go) 故 自行替换下命令 安装命令 Debian:apt-get install ***
Centos: yum install *** -y
如:安装 wget
Debian: apt-get install wget
Centos: yum install wget -y


二,服务器环境配置

  • 2.1 更新Debian/Centos软件包
Debian: sudo apt update && sudo apt dist-upgrade
Centos: yum -y upgrade
  • 2.2 安装wget git vim unzip
Debian:
apt-get install wget
apt-get install git
apt-get install vim
apt-get install unzip
apt-get install liblz4-tool    # 解压用
apt-get install screen   # 安装linux下的窗口管理器工具screen
  • 2.3 Centos安装最新版Golang(安装 Go 主要是为了去编译 go-ethereum 源码,此步骤非必要,可以直接下载官方编译后的文件(文章下方有详细步骤))

2.3.1 最新版本
https://golang.google.cn/dl/
2.3.2 下载安装

cd /usr/local/src
wget https://golang.google.cn/dl/go1.17.7.linux-amd64.tar.gz
tar -zxvf go1.17.7.linux-amd64.tar.gz -C /usr/local/

2.3.3 增加配置文件

vim /etc/profile

【tips】
此时是vim的命令模式 我们需要在最后加入下面的代码 所以 vim的命令模式–>输入模式 的方法是按i键
即 按i键 把光标移动到最后 换行 输入以下内容

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/opt/go
export PATH=$PATH:$GOPATH/BIN

然后我们需要冲从 输入模式–>命令模式
按 ESC 键
接下来保存内容并退出
需要冲当前的命令模式–>指令行模式
按:键
再输入wq 回车即可
(截图仅供参考,并非我实操过程的截图)

更新环境变量

source /etc/profile

查看版本

go version

返回以下 代表没问题

[root@localhost ~]# go version
go version go1.17.7 linux/amd64

三、节点安装部署

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

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

创建文件夹

 cd /        #进入根目录mkdir -p jiedian/kuaizhao     #创建jiedian及kuaizhao文件夹cd /jiedian       #进入jiedian文件夹
  • 安装BSC版本的geth
  • 安装go的需要执行接下来的命令
 git clone https://github.com/binance-chain/bsccd bsc/make geth     #亲测使用yum install golang -y 此处报错

配置路径

export PATH=$PATH:/jiedian/bsc/build/bin
  • 下载预构建二进制文件后按照以下说明进行操作

从发布页面下载预构建二进制文件(如不想安装go 可以下载官方编译后的二进制文件)

wget   $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_linux |cut -d\" -f4)

设置可执行权限及重命名为geth

chmod +x geth_linux mv geth_linux geth

修改 /etc/bashrc,在文件末尾添加了如下路径,目的是将 /jiedian/geth 加入环境变量,方便使用

export PATH=/jiedian/:$PATH

更新环境变量

source /etc/bashrc

使用 geth version 确认安装正确

  • 配置创世区块
wget https://github.com/bnb-chain/bsc/releases/download/v1.1.11/mainnet.zip
unzip mainnet.zip
geth --datadir node init genesis.json
  • 下载BSC快照
    创建一个用来下载快照的screen窗口
screen -S xiazai

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

  • 开始下载快照
cd /jiedian/kuaizhao     #进入kuaizhao文件夹下载快照
wget -O geth.tar.lz4 "最新下载地址"
# 例:
# 选择的 Asia Endpoint 的下载地址
# 如果硬盘大小不到2T 如1.92T 解压的时候 会硬盘内存不足 可以选择一边下载一边解压
# wget -q -O - <snapshot URL> | tar -I lz4 -xvf -  一边下载 一边解压 同时删除 -q 更方便查看进度
如:
# wget -O - "https://tf-dex-prod-public-snapshot-site1.s3-accelerate.amazonaws.com/geth-20220715.tar.lz4?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO&Signature=f9fLGGym3%2FQCOgu6cv%2BjOZDHZKg%3D&Expires=1660542966" | tar -I lz4 -xvf -

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

如不是一边下载一边解压下载完成后解压 并移动 chaindata 和 triecache 到./jiedian/bsc/node/geth/ 文件夹下(二进制执行文件方式的目录./jiedian/node/geth/)

tar -I lz4 -xvf geth.tar.lz4 -C /jiedian/kuaizhao

替换数据

备份原有数据
mv ${BSC_DataDir}/geth/chaindata ${BSC_DataDir}/geth/chaindata_backup
mv ${BSC_DataDir}/geth/triecache ${BSC_DataDir}/geth/triecache_backup  #如果有这个文件夹  第一次搭建 没这个文件夹 如果报错提示不存在 就不管他了mv server/data-seed/geth/chaindata ${BSC_DataDir}/geth/chaindata
mv server/data-seed/geth/triecache ${BSC_DataDir}/geth/triecache例:我的BSC_DataDir 是 ./jiedian/node/geth/
mv /jiedian/node/geth/chaindata /jiedian/node/geth/chaindata_backup
mv /jiedian/node/geth/triecache /jiedian/node/geth/triecache_backupmv /jiedian/kuaizhao/server/data-seed/geth/chaindata /jiedian/node/geth/chaindata
mv /jiedian/kuaizhao/server/data-seed/geth/triecache /jiedian/node/geth/triecache

【注】我测试不备份 一直没从快照同步 ,问题应该是 直接执行 mv /jiedian/kuaizhao/server/data-seed/geth/chaindata /jiedian/node/geth/chaindata 命令,实际快照移动到了 /jiedian/kuaizhao/server/data-seed/geth/chaindata/chaindata ,这样就出问题了 ,如果 mv /jiedian/node/geth/chaindata /jiedian/node/geth执行这个命令 ,会提示文件夹已经存在 , 移动失败 ,所以可以把原有的chaindata文件夹改名称 chaindata_backup。这样执行 mv /jiedian/kuaizhao/server/data-seed/geth/chaindata /jiedian/node/geth/chaindata 命令后,快照文件在 /jiedian/kuaizhao/server/data-seed/geth/chaindata 中。

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

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

ctrl+ad     #退出xiazai窗口
screen -S bscnode   #新建一个 节点运行窗口

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

修改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端口
WSPort:websocket协议rpc端口
WSHost:websocket服务连接白名单,此参数的值默认为 “localhost”,仅允许本地可访问,可设置为:“0.0.0.0”
WSOrigins:websocket服务监听接口,可设置为:WSOrigins = [”
”]

三、启动BSC智能全节点
screen -S bsc #创建bsc节点启动窗口

cd /jiediangeth --config ./config.toml --datadir ./node --cache 65536 --diffsync --rpc.allow-unprotected-txs --snapshot=true --txlookuplimit 0

根据经验的参数配置:

  • cache 设置为了 65536 MB,即 64 GB
  • config.toml 中 maxPeers 设置为了 200 (默认 30)

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

参数说明:

–config:指定BSC节点配置文件
–datadir:指定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 回到主会话。

  • 停止节点
    打开bsc窗口
 screen -x bsc

然后按 ctrl+c 即可

五、注意事项
bsc链主网浏览器浏览器:https://bscscan.com/

我这个设备配置同步到最高区块用了大概20分钟左右就追到了最高区块。

BSC链节点搭建 保姆级详细教程相关推荐

  1. yolov5 6.0版本->onnx->ncnn +安卓部署 附加ncnn环境配置 保姆级详细教程

    目标检测:yolov5 6.0版本 ncnn环境安装 至 +安卓部署 一条龙教程 文章目录 背景 一.准备阶段 1.参考文章 #2.流程 二.pt模型->onnx 三.Windows下ncnn环 ...

  2. Git 详细安装教程(保姆级详细教程)

    目录 1. 下载git 2. Git 的安装 2.1 使用许可声明 2.2 选择安装目录 2.3 选择安装组件 2.4 选择开始菜单文件夹 2.5 选择 Git 默认编辑器 2.6 决定初始化新项目( ...

  3. JDBC连接MySQL数据库,访问数据库信息完成登录功能——保姆级详细教程(附所有java和jsp源代码)

    目录 前言 JDBC的介绍 通过JDBC连接MySQL数据库 导入mysql驱动 连接数据库 连接数据库 判断连接是否成功 使用数据库实现登录 获取前端表单的用户输入 判断用户名和密码为空 查询表 判 ...

  4. 【安卓开发】安卓开发工具: android studio(AS)的安装,配置与汉化保姆级详细教程

    android studio官方下载地址 点击进入官网 点击option 选择下载版本 我是windows 64位选了这个exe 右键,以管理员身份运行出现如下界面,无脑next next next ...

  5. CSGO饥荒服务器搭建保姆级教程

    CSGO&饥荒服务器搭建保姆级教程 准备 第一步:软硬件 软件:Xshell.Xftp用于连接云服务器和进行文件传输. 进去填写邮箱,他会给你发个邮件,通过邮件获得下载链接,通过下载链接下载X ...

  6. 本地k8s集群搭建保姆级教程(4)-安装k8s集群Dashboard

    安装k8s集群管理UI 1 Dashboard安装 1.1 参考文档 Dashboard 是基于网页的 Kubernetes 用户界面. 你可以使用 Dashboard 将容器应用部署到 Kubern ...

  7. 个人网站搭建保姆级教程(2)- 前端工程umi脚手架搭建

    前言 最近搞了个服务器,想着自己做个网站的脚手架,因为自己是纯前端新手,而且半路出家,中途踩了好多坑,准备写5篇给各位大佬们分享一下,如何从0搭建个人网站 服务器购买与环境搭建 前端工程umi脚手架搭 ...

  8. 域环境的搭建(保姆级教程)

    域环境的搭建(保姆级教程) 一.基础知识 二.实验环境 三.实验步骤 1.设置静态ip地址 我们给server 2008 设置静态ip地址 2.安装活动目录角色 2.1 点击添加角色 2.2 我们单击 ...

  9. Promox VE安装黑群晖保姆级图文教程

    本教程是PVE家用All in one一体机方案的保姆级攻略之一,将详细介绍在PVE虚拟环境用xpenology大神Jun的引导镜像引导安装黑群晖的详细过步骤. PVE虚拟环境的构建请移步:Proxm ...

  10. 保姆级黑苹果教程:让你的Ryzen+A卡用上最新版本的MacOS

    保姆级黑苹果教程:让你的Ryzen+A卡用上最新版本的MacOS 0x00:前言 教程那么多了,为什么要还要写?(博主的废话,可跳过) 几个月前,博主(学生狗一枚)在用GoodNotes(一个很有名的 ...

最新文章

  1. 安卓开发 fastjson 解析json使用详解
  2. vue 本地环境API代理设置和解决跨域
  3. leetcode 1631. 最小体力消耗路径(并查集)
  4. Python 中@符号解释
  5. FreeRTOS任务优先级说明
  6. mysql varchar,bigint,char三种类型性能的比较
  7. android+ndk+r9+x64下载,Win7 64位中文旗舰版上Cocos2d-x 3.0的Android开发调试环境架设
  8. linux分区挂载点在哪个文件,挂载的信息是存放在哪个文件中?
  9. python图片内容识别_ubuntu 安装 pytesseract 模块进行图片内容识别
  10. html5在线聊天模板,h5聊天室模板|仿微信聊天室html5
  11. 离散数学主析取范式及主合取范式
  12. 坚果手机 误进FastBoot Mode解决方案
  13. gstBuffer的 data 和 meta
  14. 将分类图像转换为ERDAS可识别的专题图像(Continuous to Thematic)
  15. 通过添加css样式cursor属性,改变鼠标的外形,变成放大镜
  16. php 制作在线音乐网站,音乐网站程序,手把手教会你做音乐“网站”
  17. 共轭梯度法(Conjugate Gradient Method)
  18. 微信小程序——自定义顶部菜单navigationBar方式(可详细了!)
  19. 2008年攻读金庸武侠硕士研究生入学统一考试试题
  20. 世界互联网大会展示前沿技术热议创新方向

热门文章

  1. 802d简明调试手册_802D 简明调试指南.pdf
  2. 简单工厂、工厂方法、抽象工厂区别
  3. Spring Interceptor vs Filter 拦截器和过滤器区别
  4. 倒计时21天,房贷利率新政要来了,有银行已率先公布报价
  5. startup.bat闪退解决
  6. oracle恢复删除的表
  7. MSDOS设置代码页
  8. 苹果电脑如何正确断网?Mac电脑断网方法
  9. excel两列数据对比找不同_怎么在excel中对比两列数据并查找重复项?
  10. HDU 6070 Dirt Ratio