257

bsc币安智能链RPC节点搭建说明-mainnet(非挖矿)

 3 years ago
source link: http://www.blogjava.net/fangw/archive/2021/11/14/436044.html
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

bsc币安智能链RPC节点搭建说明-mainnet(非挖矿) - 方伟的博客 - BlogJava

方伟的博客 j2ee技术、网络、web等,同名的人真多,我的QQ是20025404

posts - 20,comments - 14,trackbacks - 0

1.服务器

需要3T(建议4T) NVMe 硬盘,最好是裸硬盘,云盘io性能太差,建议物理机(裸金属主机)+本地SSD。

*注意,bsc节点对硬件要求是我见过的所有链中最高的,强烈建议独立使用一台高配置服务器。

越高越好,建议国外服务器,1G带宽不限流量

3.操作系统

建议centos7/8,或ubuntu,这里均以centos为例

4.准备环境:

yum update -y

yum install screen iftop iotop -y

4.1.安装golang

yum install golang -y

或编译安装:

cd /root/
wget https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz
tar zxvf go1.4-bootstrap-20170531.tar.gz
cd /root/go/src/
./all.bash

5.创建一个screen

screen -S bsc

*注意1:最后退出时用ctrl+ad(顺序按a和d字母即可),绝对不要用exit或ctrl+d退出会话。

*注意2:退出会话后,可以用screen -r bsc重新连接到会话。这样可以保持在shell下运行,网络中断不会影响。

6.安装bsc客户端

#这里我的数据目录,可以根据需要自行更改

mkdir -p /data/bsc/data

#下载最新版本

cd /root
wget -O binance-chain-v1.1.4.tar.gz https://github.com/binance-chain/bsc/archive/refs/tags/v1.1.4.tar.gz
tar -xvf binance-chain-v1.1.4.tar.gz
rm -fr binance-chain-v1.1.4.tar.gz

cd /root/bsc-1.1.4
make all
6.1.检查安装是否成功

/root/bsc-1.1.4/build/bin/geth version

7.编辑并上传配置文件:

bsc-mainnet配置文件.zip-以太坊文档类资源-CSDN下载

config.toml和genesis.json两个文件放到/data/bsc/目录下。(该目录可以自行修改)

8.设置防火墙
firewall-cmd --permanent --zone=public --add-port=30311/tcp
firewall-cmd --permanent --zone=public --add-port=8575/tcp
firewall-cmd --permanent --zone=public --add-port=8576/tcp
firewall-cmd --reload
不懂防火墙配置的,可以先禁用防火墙,关于firewalld的使用技巧,之后会单独写一篇教程

9.1.下载最新的snapshot数据,以加快同步实际

#最新snapshots参加:https://github.com/binance-chain/bsc-snapshots
cd /data/bsc/data
wget -O geth.tar.gz 'https://s3.ap-northeast-1.amazonaws.com/dex-bin.bnbstatic.com/geth-20211031.tar.gz?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO&Signature=ESK5xmr5f1AIK4Mr6our%2FALXzQk%3D&Expires=1638310885'

tar zxvf geth.tar.gz

*这里要下载很久,所以带宽要尽可能高。
*解压后,注意目录结构可能要调整下,保持chaindata和keystore那一级目录直接在/data/bsc/data/目录下,如果不在的话,自己mv到那个目录下。

9.2.启动客户端

#先init,很多人没有执行这一步,导致下面启动节点同步出错

/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=10240 init /data/bsc/genesis.json

#启动节点(上面的init只要执行一次,之后启动节点不要再执行了)

ulimit -n 65535
/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=8192 --rpc.allow-unprotected-txs --txlookuplimit 0 --allow-insecure-unlock

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

10.测试验证

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8575

(如果已经追上最新高度,result会返回false)

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8575

11.停止节点

方式1:(建议,毕竟停止后还要启动不是)

screen -r bsc

按ctrl+c,等待一会即可看到节点停止

12.接口文档参考

RPC接口文档同eth文档,如:

以太坊JSON RPC手册 / eth_call - 汇智网

其它参考:

BSC链github地址:https://github.com/binance-chain/bsc

主网浏览器:https://bscscan.com/

主网链官方部署文档:https://docs.binance.org/smart-chain/developer/fullnode.html
私有链官方部署文档:https://docs.binance.org/smart-chain/developer/deploy/local.html

13.注意事项

*最大文件打开数必须修改,很多人遇到bsc客户端经常被kill,就是达到了最大文件打开数限制,导致被操作系统自动kill。

*同步到最高区块所需时间:

需要看网络带宽和磁盘io性能,我用NVMe的裸盘,读写1500到2000左右,1G的国外带宽,基于最新snapshot同步,大概需要3天左右。

*带宽需要100M,建议1G,磁盘io越高越好,如果5天还没有追上,或者高度经常落后,极有可能是服务器磁盘io存在瓶颈

*硬盘最好4T空间,否则区块数据都要1.9个T,如果只有2T空间根本不够用。

*虽然用snapshot+fast模式同步,但同步到最新高度后,依然会自动切换为full node模式,这是正常现象,不用疑惑,也不要删除重新同步。

*再次强调bsc非常耗资源,aws和阿里云的云盘性能根本不够,除非使用本地ssd才可以,而且bsc同步到最新高度后,对带宽的使用依然很高,建议网络不要按流量付费的,否则费用会高到无法承受。

*建议服务器先做io测试,可以用dd,或者安装个宝塔面板做跑分测试,磁盘读写低于500MB/s的就别安装了,建议1000MB/s以上,这个非常关键。

posted on 2021-11-14 23:36 方伟的博客 阅读(5) 评论(0)  编辑  收藏 所属分类: 区块链

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK