本实验虚拟机的操作系统如下:
实验环境 | 版本信息 |
---|---|
操作系统 | Ubuntu 18.04.6 LTS |
本实验虚拟机的硬件配置如下:
配置 | 参数 |
---|---|
CPU | 2.0GHz |
核心 | ≥4核 |
内存 | ≥8GB |
实验目的
本实验将演示如何搭建 FISCO BCOS 单群组网络节点,通过在单机上使用开发部署工具部署一条单群组 4 节点的区块链网络,帮助学生熟悉和掌握开发部署工具的使用,掌握 FISCO BCOS 单群组网络区块链的搭建流程。
实验内容
-
下载开发部署工具
-
检查端口占用
-
构建单群组网络节点
-
启动节点并查看节点运行状态
实验步骤
1、下载开发部署工具
1.1 打开终端
①、在桌面空白处点击鼠标右键,选择 “在此打开终端”
②、打开终端后显示如下界面
1.2 依赖检查
开发部署工具 build_chain.sh 脚本依赖于以下库
-
openssl:用于在构建节点时生成证书
-
wget:用于下载开发部署工具
虚拟机已经提前预装了 openssl 和 wget,可在终端输入命令查看 openssl 和 wget 的版本。
①、查看 openssl 版本信息
openssl version
②、查看 wget 版本信息
wget --version
1.3 下载工具
①、创建 fisco 工作目录
在终端输入如下命令,创建 fisco 目录并进入
mkdir fisco && cd fisco
②、下载开发部署工具
在 fisco 目录下,输入如下面命令,下载开发部署工具 build_chain.sh
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh
③、修改脚本权限
输入如下命令,可查看刚才下载的开发部署工具 build_chain.sh,此时该文件名显示白色,无执行权限
ls
输入以下命令,修改脚本运行权限,权限修改成功后,再次输入 'ls' 命令,可看到文件名变为绿色
2、检查端口占用
2.1 检查 p2p 端口是否占用
输入如下命令,检查 p2p 端口(30300-30303)是否占用,若端口没有被占用,则不会输出任何信息
lsof -i:30300-30303
2.2 检查 channel 端口是否占用
输入如下命令,检查 channel 端口(20200-20203)是否占用,若端口没有被占用,则不会输出任何信息
lsof -i:20200-20203
2.3 检查 rpc 端口是否占用
输入如下命令,检查 rpc 端口(8545-8548)是否占用,若端口没有被占用,则不会输出任何信息
lsof -i:8545-8548
3、构建单群组网络节点
使用开发部署工具在本地构建单群组4节点的区块链网络,命令如下:
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
参数说明:
-
-l:用于指定要生成的链的 IP 列表以及每个 IP 下的节点数,以逗号分隔。
-
-p:分别指定节点的 p2p, channel, jsonrpc 端口,同一个 IP 下的不同节点所使用端口从起始端口递增。
出现 [INFO ALL completed] 信息则说明节点构建成功。
4、启动节点并查看节点运行状态
4.1 启动单群组网络节点
输入如下命令,启动所有节点
bash nodes/127.0.0.1/start_all.sh
4.2 检查节点进程
输入如下命令,查看节点进程,正常情况下会显示 4 个节点进程
ps -ef | grep -v grep | grep fisco-bcos
4.3 查看节点连接数
①、输入如下命令,可查看节点 node0 的连接数,除开自身节点,应该能看到有 3 个连接数。
正常情况下,终端会不断打印日志输出,按 “ctrl + c” 可回到终端。
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
②、输入如下命令,可查看节点 node1 的连接数,除开自身节点,应该能看到有 3 个连接数。
③、输入如下命令,可查看节点 node2 的连接数,除开自身节点,应该能看到有 3 个连接数
tail -f nodes/127.0.0.1/node2/log/log* | grep connected
④、输入如下命令,可查看节点 node3 的连接数,除开自身节点,应该能看到有 3 个连接数
tail -f nodes/127.0.0.1/node3/log/log* | grep connected
4.4 查看节点共识
①、输入以下命令,可查看节点 node0 的共识状态,正常情况下,终端会不断输出 “[SEALER]++++++++++++++++” 信息,表示节点共识正常。共识信息会不断打印,可按 “ctrl + c” 退出。
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
②、输入以下命令,查看 node1 的共识
tail -f nodes/127.0.0.1/node1/log/log* | grep +++
③、输入以下命令,查看 node2 的共识
tail -f nodes/127.0.0.1/node2/log/log* | grep +++
④、输入以下命令,查看 node3 的共识
tail -f nodes/127.0.0.1/node3/log/log* | grep +++