Centos7 は BSC フルチェーンノードを構築します

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 ディスクを使用するのが最適です。

サーバーは 2 つの 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 スナップショットのダウンロード

スナップショットをダウンロードするための画面ウィンドウを作成する

  • 画面ウィンドウに入った後、終了したい場合は、ctrl+a+d を続けて押し続けます。
  • ウィンドウを終了した後、メイン ウィンドウで screen -ls と入力すると、開いている他のウィンドウが表示されます。
  • screen -x <ウィンドウ名> ウィンドウに接続します

以下の wget -O geth.tar.lz4 コマンドのリンク アドレスは二重引用符で囲む必要があることに注意してください。

知らせ!: 公式 Web サイトに記載されているダウンロード アドレスは 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フォルダーに移動します。

上記のメインネットを構成した後、ノードフォルダーが自動的に生成されます

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: 無制限のガス料金

–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';
 }
}

ノードの構築について質問がある場合は、コミュニティ グループに参加して質問することができます。

グループ内での立体学習に関する経験の共有もあります

共有できる無料のガジェットもいくつかあります

画像-20220815102307755

参考記事: https: //learnblockchain.cn/article/3888

Github を通じてさらに多くのブロックチェーン学習教材を入手してください!

https://github.com/Manuel-yang/BlockChainSelfLearning

おすすめ

転載: blog.csdn.net/qq_23351293/article/details/129964726