Centos7搭建bsc全链节点

服务器配置

 CPU:8 Cores - 16 Threads
 RAM:131072 MB
 Storage:2x 2000GB NVMe
 Bandwidth:8400.65 GB of 10000 GB
 OS:
 CentOS 7 x64
 服务器位置: 东京

因为要下载1.4T的节点快照并且解压,所以最好要4T的磁盘

该服务器是两块2T磁盘组成,所以首先进行磁盘的挂载

新磁盘的挂载

1.查看服务器当前的挂载设备

 fdisk -l
 ​
 #(当前服务器已经挂载好了,新磁盘为nvme1n1, 应输入fdisk -l查看自己服务器未挂载的磁盘)
 ​
 磁盘 /dev/nvme1n1:2000.4 GB, 2000398934016 字节,3907029168 个扇区
 Units = 扇区 of 1 * 512 = 512 bytes
 扇区大小(逻辑/物理):512 字节 / 512 字节
 I/O 大小(最小/最佳):512 字节 / 512 字节
 ​
 ​
 磁盘 /dev/nvme0n1:2000.4 GB, 2000398934016 字节,3907029168 个扇区
 Units = 扇区 of 1 * 512 = 512 bytes
 扇区大小(逻辑/物理):512 字节 / 512 字节
 I/O 大小(最小/最佳):512 字节 / 512 字节
 磁盘标签类型:dos
 磁盘标识符:0x000e0a65
 ​
        设备 Boot     Start         End     Blocks   Id System
 /dev/nvme0n1p1   *       2048 3907029134 1953513543+ fd Linux raid autodetect
 ​
 磁盘 /dev/md0:2000.4 GB, 2000394722816 字节,3907020943 个扇区
 Units = 扇区 of 1 * 512 = 512 bytes
 扇区大小(逻辑/物理):512 字节 / 512 字节
 I/O 大小(最小/最佳):512 字节 / 512 字节
 ​
 ​

2.删除原有分区

 fdisk /dev/nvme1n1
 ​
 ​
 #nvme1n1位需挂载的设备名
 ​
 欢迎使用 fdisk (util-linux 2.23.2)。
 ​
 更改将停留在内存中,直到您决定将更改写入磁盘。
 使用写入命令前请三思。
 ​
 ​
 命令(输入 m 获取帮助):d
 已选择分区 1
 分区 1 已删除
 ​
 命令(输入 m 获取帮助):p
 ​
 磁盘 /dev/nvme1n1:2000.4 GB, 2000398934016 字节,3907029168 个扇区
 Units = 扇区 of 1 * 512 = 512 bytes
 扇区大小(逻辑/物理):512 字节 / 512 字节
 I/O 大小(最小/最佳):512 字节 / 512 字节
 磁盘标签类型:dos
 磁盘标识符:0x04fc5a3c
 ​
    设备 Boot     Start         End     Blocks   Id System
 ​
 命令(输入 m 获取帮助):w
 The partition table has been altered!
 ​
 Calling ioctl() to re-read partition table.
 正在同步磁盘。

3.新建分区

 fdisk /dev/nvme1n1
 欢迎使用 fdisk (util-linux 2.23.2)。
 ​
 更改将停留在内存中,直到您决定将更改写入磁盘。
 使用写入命令前请三思。
 ​
 ​
 命令(输入 m 获取帮助):n
 Partition type:
    p   primary (0 primary, 0 extended, 4 free)
    e   extended
 Select (default p): p
 分区号 (1-4,默认 1):1
 起始 扇区 (2048-3907029167,默认为 2048):
 将使用默认值 2048
 Last 扇区, +扇区 or +size{K,M,G} (2048-3907029167,默认为 3907029167):
 将使用默认值 3907029167
 分区 1 已设置为 Linux 类型,大小设为 1.8 TiB
 ​
 命令(输入 m 获取帮助):w
 The partition table has been altered!
 ​
 Calling ioctl() to re-read partition table.
 正在同步磁盘。

4.格式化分区

 mkfs.ext3 /dev/nvme1n1

5.挂载使用

 # 新建一个挂载点。
 mkdir /data
 ​
 # 挂载。
 mount /dev/sdb1 /data
 ​
 #查看是否挂载成功
 [root@guest ~]# df -h
 文件系统       容量 已用 可用 已用% 挂载点
 devtmpfs         63G     0   63G   0% /dev
 tmpfs           63G     0   63G   0% /dev/shm
 tmpfs           63G   34M   63G   1% /run
 tmpfs           63G     0   63G   0% /sys/fs/cgroup
 /dev/md0       1.8T 1.5T 208G   89% /
 tmpfs           13G     0   13G   0% /run/user/0
 /dev/nvme1n1   1.8T 1.4T 322G   82% /data
 ​
 在最后一行
 磁盘因为已经使用过了所以有占用

6.开机自动挂载

 vim /etc/fstab
 在底部添加
 /dev/nvme1n1 /data ext3 defaults 1 2

至此磁盘已经挂载成功

centos7 git的升级

因为centos7的默认git版本是1.8,后续用到git会有版本问题,所以得先对git进行升级

安装依赖

 ​
 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
 yum install gcc perl-ExtUtils-MakeMaker

卸载旧版本git

 yum remove git

打开文件夹

 cd /usr/local/src/

下载git压缩包

该压缩包版本为2.32

 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.32.0.tar.xz

解压

 tar -xvf git-2.32.0.tar.xz

打开解压好的git文件

 cd git-2.32.0

编译

 make prefix=/usr/local/git all

安装git

 make prefix=/usr/local/git install

配置环境变量

 echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile && source /etc/profile
 ​
 #验证git版本
 git --version
 ​

安装其他所需插件

 yum -y upgrade
 ​
 yum install wget -y
 ​
 yum install golang -y
 ​
 #验证go的版本
 go version
 ​
 #如正确显示版本号则安装正确
 #go version go1.18.1 linux/amd64
 ​
 yum -y install screen

至此准备工作已经做好,下面开始正式搭建bsc链

BSC链的搭建

 cd /        #进入根目录
 mkdir -p jiedian/kuaizhao #创建jiedian及kuaizhao文件夹
 cd /jiedian #进入jiedian文件夹
 git clone https://github.com/binance-chain/bsc
 cd bsc/
 make geth
 ​

配置路径

 vim /etc/profile
 #把下列一行写到最后边然后 :wq 保存退出
 export PATH=$PATH:/jiedian/bsc/build/bin
 #然后使命令生效
 source /etc/profile
 ​
 #使用geth version确认安装正确

配置创世块

 wget https://github.com/binance-chain/bsc/releases/download/v1.1.9/mainnet.zip
 unzip mainnet.zip
 geth --datadir node init genesis.json

下载BSC快照

创建一个用来下载快照的screen窗口

  • 进入screen窗口后,若想退出,依次连续按住ctrl+a+d

  • 退出窗口后,在主窗口输入screen -ls查看所打开的其他窗口

  • screen -x <窗口名> 连接进窗口

注意下文的 wget -O geth.tar.lz4 指令中链接地址一定要在双引号之内

注意!!!!!: 官网给出的下载地址是https连接,若网络环境较差容易导致ssl无法验证问题从而中断下载而浪费服务器流量,若出现该问题可将连接复制下载下来并将开头的https改为http。

 screen -S xiazai
 cd /data #下载至上文所挂载的新磁盘
 wget -O geth.tar.lz4 "最新下载地址"

快照的下载地址连接:https://github.com/binance-chain/bsc-snapshots

该压缩包有1.4T左右

下载完成后解压该文件至 /jiedian/kuaizhao

并将该文件中的chaindata和triecache移动到/jiedian/bsc/node/geth文件夹下

node文件夹是由上文配置mainnet后自动生成

 tar -I lz4 -xvf geth.tar.lz4
 ​
 mv /jiedian/kuaizhao/server/data-seed/geth/chaindata /jiedian/bsc/node/geth
 mv /jiedian/kuaizhao/server/data-seed/geth/triecache /jiedian/bsc/node/geth
 ​
 ctrl+ad #退出xiazai窗口

启动BSC全节点

 screen -S bsc   #创建bsc节点启动窗口
 1
 geth --config ./config.toml --datadir ./node --diffsync --cache 86016 --rpc.allow-unprotected-txs --txlookuplimit 0 --rpc.txfeecap 0 --rpc.gascap 0

参数说明:

–config:指定BSC节点配置文件

–datadir:指定BSC节点数据库和密钥存储库的数据目录(默认即可)

–cache:设置最大分配给内部缓存的内存,默认:1024(设置越大,每次同步的数据越多,消耗的内存也越大)

–rpc.allow-unprotected-txs:允许通过RPC提交不受保护的(非 EIP155 签名)交易

–txlookuplimit 0 : 禁用删除事务索引

–diffsync:启用差异同步协议来帮助节点更快地同步

–rpc.txfeecap:无上限gas费用

–rpc.gascap:无交易费用上限

 ctrl + a + a #返回主窗口

节点监听

 geth attach http://127.0.0.1:8545
 #这里的端口如果修改配置文件了,就填写配置文件的端口即可
 ​
 > eth.syncing #查看当前块情况
 > net.peerCount #查看当前连接节点数量,结果为false为同步完成
 > eth.blockNumber #当前同步到块高度

nginx配置文件

让节点提供ws连接给外部服务器使用

 server{
  listen 80;
  server_name # 你的网址名称
  # 重点,转发websocket需要的设置
 location / {
    proxy_pass http://127.0.0.1:8545/;
 }
 ​
 ​
  # 所有请求都转发
  location /ws {
  proxy_pass http://127.0.0.1:8546/;
  proxy_set_header X-Real_IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection 'upgrade';
  }
 }
 ​

如果有对搭节点有疑问的可以加入我们的社区群提问

群里还有一些关于solidity学习的心得分享

还有一些免费小工具分享

参考文章:https://learnblockchain.cn/article/3888

centos7搭建bsc全节点的更多相关文章

  1. 搭建Bitcoin全节点

    节点搭建 1. 进入 bitcoin 选择 Choose your wallet 2. 选择 Bitcoin Core for Linux 下载 bitcoin-0.17.0.1-x86_64-lin ...

  2. 搭建EOS全节点并接入主网

    #EOS编译安装 #!/bin/bash #install.eos.sh #EOS 安装 #从github克隆主网代码 cd /opt git clone https://github.com/EOS ...

  3. 比特币BTC全节点搭建

    比特币BTC全节点搭建 #环境 ubuntu 16.4 #硬盘500GB #截止2018-12-31磁盘占用超过230GB #客户端安装 #下载页面 #https://bitcoin.org/zh_C ...

  4. ETH 全节点的远程Debug环境搭建

    ETH全节点还是很浪费资源的,尤其是在同步下来所有区块链,如果你打算在本地进行全节点的Debug吗,有点不现实.这个文档 编译,在要运行的机器上面安装devel,一般的方法是,编译好之后,放到服务器上 ...

  5. centos7搭建hadoop2.10高可用(HA)

    本篇介绍在centos7中搭建hadoop2.10高可用集群,首先准备6台机器:2台nn(namenode);4台dn(datanode):3台jns(journalnodes) IP hostnam ...

  6. centos7 搭建GlusterFS

    centos7 搭建GlusterFS 转载http://zhaijunming5.blog.51cto.com/10668883/1704535 实验需求:4台机器安装GlusterFS组成一个集群 ...

  7. Hadoop(三)手把手教你搭建Hadoop全分布式集群

    前言 上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的.接下来我将给大家分享一下全分布式集群的搭建! 其实搭建最基本的全分布式集群和伪分布式集群 ...

  8. centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch

    应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平 ...

  9. Hadoop(三)搭建Hadoop全分布式集群

    原文地址:http://www.cnblogs.com/zhangyinhua/p/7652686.html 阅读目录(Content) 一.搭建Hadoop全分布式集群前提 1.1.网络 1.2.安 ...

  10. centos7搭建ELK Cluster集群日志分析平台

    应用场景:ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平台 ...

随机推荐

  1. CDH命令

    1.检查http服务是否开启 systemctl status httpd.service 本次没有开启是因为删了Log日志 通过查看http状态发现里面有个引用问题 重新建一个空的Log文件夹重启服 ...

  2. C# net core 从文件流中获取文件头、匹配文件类型

    常用文件的文件头如下: (以前六位为准) JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 TIFF (tif), ...

  3. LeetCode刷题感想之BFS

    BFS, 顾名思义,广度优先遍历,与DFS对应. 最大的一个区别是,在解题套路里,DFS 多数使用 List<List<Object>> 的方式来保存结果集,并且最后删除回溯的 ...

  4. Android studio应用

    菜单的使用 public class FirstActivity extends AppCompatActivity { @Override protected void onCreate(Bundl ...

  5. @media移动PC端fontSize响应设置

    @media only screen and (min-width: 320px) and (max-width: 359px) { html, body { font-size: 8.51px; } ...

  6. JS笔记(四):面向对象、异常处理

    镇楼图 Pixiv:torino 六.JS中的面向对象 类(class) 博主视为你已拥有相关基础,这里不再赘述相关概念 类的语法如下,class在本质上是function,可以说class只是针对构 ...

  7. Chorme 兼容

    Chorme自动更新,不知道什么时候版本 就变了.之前好用的代码,突然不好用了. 启动时提示Only local connections are allowed 检查一下兼容性参照下文,下载对应的Dr ...

  8. C#基于数据库链接增删改查

    一.创建一个winfrom窗体 1.创建项目 2.创建一个链接数据的类 3.封装数据库的实体类(查询和增加) 在对数据操作时必须引用连个数据库using using System.Data; usin ...

  9. FCC 中级算法题 Everything Be True

    Everything Be True 所有的东西都是真的! 完善编辑器中的every函数,如果集合(collection)中的所有对象都存在对应的属性(pre),并且属性(pre)对应的值为真.函数返 ...

  10. Ansys-CHEMKIN-pro表面反应机制输入(Surface Kinetics Input)规则

    chemkin表面反应机制文件(Ansys-CHEMKIN-pro表面反应机制输入) 1. 文件包含表面活性位(相).表面组分,固相组分.固相,热力学数据,反应机制: 2. 顺序:物质名称,活性位数据 ...