FiscoBcos运维部署工具generator的使用例子

环境:Ubuntu20
fisco: 2.9.0
generator: 1.8.0

前言

generator官方文档

文档给的例子是搭建6节点3机构2群组的组网模式,这篇文章将加难度
搭建8节点4机构3群组的组网模式的手动搭建模式[由于方便,便使用单机默认,大家需要多机,请将文章配置生成文件出现的127.0.0.1 字段,换成所需的机子ip地址,然后将需要的节点文件,机构文件等拷贝相关机子再进行相关操作]。
在这里插入图片描述

机构 节点 所属群组 P2P地址 RPC监听地址 Channel监听地址 ip地址
机构A 节点0 群组1,2,3 30300 20200 8545 127.0.0.1
节点1 群组1,2,3 30301 20201 8546 127.0.0.1
机构B 节点2 群组1 30302 20202 8547 127.0.0.1
节点3 群组1 30303 20203 8548 127.0.0.1
机构C 节点4 群组2 30304 20204 8549 127.0.0.1
节点5 群组2 30305 20205 8550 127.0.0.1
机构D 节点6 群组3 30306 20206 8551 127.0.0.1
节点7 群组3 30307 20207 8552 127.0.0.1

下载并安装generator

首先我们需要下载好generator的源代码

git clone https://gitee.com/FISCO-BCOS/generator.git

进入generator进行相关下载操作

bash scripts/install.sh
root@192-168-19-133:/yijiu/gFile/generator# bash scripts/install.sh
 Debian*|Ubuntu Platform
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
没有可用的软件包 python-pip,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
然而下列软件包会取代它:
  python3-pip

E: 软件包 python-pip 没有可安装候选
Requirement already satisfied: toml in /usr/local/lib/python3.8/dist-packages (0.10.2)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (1.14.0)
Requirement already satisfied: configparser in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 2)) (5.3.0)
Requirement already satisfied: toml in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 3)) (0.10.2)
try to use python3
 install generator successful!

查看是否安装成功

root@192-168-19-133:/yijiu/gFile/generator# ./generator -h
usage: generator [-h] [-v] [-b peers data] [--build_package_only data peers] [-c data_dir] [--create_group_genesis_with_nodeid data_dir]
                 [--generate_chain_certificate chain_dir] [--generate_agency_certificate agency_dir chain_dir agency_name]
                 [--generate_node_certificate node_dir agency_dir node_name] [--generate_sdk_certificate sdk_dir agency_dir] [-g] [-G] [--cdn]
                 [--generate_all_certificates cert_dir] [-d cert_dir pkg_dir] [-m config.ini config.ini] [-p peers config.ini]
                 [-a group genesis config.ini] [--download_fisco data_dir] [--download_console data_dir] [--get_sdk_file data_dir]
                 [--console_version CONSOLE_VERSION]

获取节点二进制

./generator --download_fisco ./meta

查看fisco版本

root@192-168-19-133:/yijiu/gFile/generator# ./meta/fisco-bcos -v
FISCO-BCOS Version : 2.9.0
Build Time         : 20220516 06:12:02
Build Type         : Linux/clang/Release
Git Branch         : HEAD
Git Commit Hash    : b8a2362911462ccc3a19862bdd418b4f486f5601

机构初始化

按照效果图,我们需要机构A,机构B,机构C和机构D,将其初始化,拷贝出来

root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-A
root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-B
root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-C
root@192-168-19-133:/yijiu/gFile# cp -r generator/ generator-D
root@192-168-19-133:/yijiu/gFile# ll
总用量 28
drwxr-xr-x  7 root root 4096 1012 16:30 ./
drwxrwxrwx 10 root root 4096 1012 11:13 ../
drwxr-xr-x 13 root root 4096 1012 15:23 generator/
drwxr-xr-x 13 root root 4096 1012 16:30 generator-A/
drwxr-xr-x 13 root root 4096 1012 16:30 generator-B/
drwxr-xr-x 13 root root 4096 1012 16:30 generator-C/
drwxr-xr-x 13 root root 4096 1012 16:30 generator-D/

链证书初始化

一条链子 只有一条唯一的链证书 ca.crt
我们选择在generator 文件夹生成链证书
然后链证书的生成命令是--generate_chain_certificate

./generator --generate_chain_certificate ./dir_chain_ca
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_chain_certificate ./dir_chain_ca
INFO |  Chain cert begin.
INFO |  Generate root cert success, dir is /yijiu/gFile/generator/dir_chain_ca
INFO |  Chain cert end.

这样我们就得到了这条联盟链的机构证书和私钥

root@192-168-19-133:/yijiu/gFile/generator# ls dir_chain_ca/
ca.crt  ca.key

机构证书初始化

我们选择在generator文件夹下生成各个机构的证书,然后复制到各个机构的工作目录里

  • 机构A
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca 
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA
INFO |  Agency cert begin.
INFO |  Agency cert end.
  • 机构B
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB
INFO |  Agency cert begin.
INFO |  Agency cert end.
  • 机构C
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyC
INFO |  Agency cert begin.
INFO |  Agency cert end.
  • 机构D
root@192-168-19-133:/yijiu/gFile/generator# ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyD
INFO |  Agency cert begin.
INFO |  Agency cert end.

查看生成目录

root@192-168-19-133:/yijiu/gFile/generator# ll dir_agency_ca/
总用量 24
drwxr-xr-x  6 root root 4096 1013 09:36 ./
drwxr-xr-x 15 root root 4096 1013 09:35 ../
drwxr-xr-x  2 root root 4096 1013 09:35 agencyA/
drwxr-xr-x  2 root root 4096 1013 09:36 agencyB/
drwxr-xr-x  2 root root 4096 1013 09:36 agencyC/
drwxr-xr-x  2 root root 4096 1013 09:36 agencyD/

里面有机构证书、机构私钥、链证书

root@192-168-19-133:/yijiu/gFile/generator# ls dir_agency_ca/agencyA/
agency.crt  agency.key  ca.crt

然后我们将这些机构认证文件拷贝到各自的机构工作目录下的meta文件夹里

root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyA/*  ../generator-A/meta/
root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyB/*  ../generator-B/meta/
root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyC/*  ../generator-C/meta/
root@192-168-19-133:/yijiu/gFile/generator# cp -r dir_agency_ca/agencyD/*  ../generator-D/meta/

群组1的四个节点生成并启动[机构A,机构B]

修改机构A的两个节点配置文件

文件是在 generator-A的conf/node_deployment.ini

机构 节点 所属群组 P2P地址 RPC监听地址 Channel监听地址 ip地址
机构A 节点0 群组1,2,3 30300 20200 8545 127.0.0.1
节点1 群组1,2,3 30301 20201 8546 127.0.0.1
[group]
group_id=1

[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30300
channel_listen_port=20200
jsonrpc_listen_port=8545

[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30301
channel_listen_port=20201
jsonrpc_listen_port=8546
修改机构B的两个节点配置文件

文件是在 generator-B的conf/node_deployment.ini

机构 节点 所属群组 P2P地址 RPC监听地址 Channel监听地址 ip地址
机构B 节点2 群组1 30302 20202 8547 127.0.0.1
节点3 群组1 30303 20203 8548 127.0.0.1
[group]
group_id=1

[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30302
channel_listen_port=20202
jsonrpc_listen_port=8547

[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30303
channel_listen_port=20203
jsonrpc_listen_port=8548
生成机构A的节点证书和p2p连接信息文件

在generator-A文件目录下

./generator --generate_all_certificates ./agencyA_node_info
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --generate_all_certificates ./agencyA_node_info
INFO |  Generate cert to ./agencyA_node_info by node_deployment.ini.
INFO |  Generate /yijiu/gFile/generator-A/meta/node_127.0.0.1_30300
INFO |  Generate /yijiu/gFile/generator-A/meta/node_127.0.0.1_30301
INFO |  Generate cert by node_installation.ini successful!
INFO |  Generate cert by node_deployment.ini end.

机构A的两个证书文件和peers.txt

root@192-168-19-133:/yijiu/gFile/generator-A# ll agencyA_node_info/
总用量 20
drwxr-xr-x  2 root root 4096 1013 10:13 ./
drwxr-xr-x 14 root root 4096 1013 10:13 ../
-rw-r--r--  1 root root 1194 1013 10:13 cert_127.0.0.1_30300.crt
-rw-r--r--  1 root root 1194 1013 10:13 cert_127.0.0.1_30301.crt
-rw-r--r--  1 root root   32 1013 10:13 peers.txt

将机构A的peers.txt文件拷贝给机构B

 cp agencyA_node_info/peers.txt  ../generator-B/meta/peersA.txt
生成机构B的节点证书和p2p连接信息文件

在generator-B文件目录下

 ./generator --generate_all_certificates ./agencyB_node_info

ps: 由于群组1 需要创建创世区块,我们选择在机构A里进行创建,所以我们机构B除了复制peers.txt文件外,还需要复制机构B的两个节点crt文件给机构A

cp -r  agencyB_node_info/peers.txt  ../generator-A/meta/peersB.txt
cp -r agencyB_node_info/cert_*  ../generator-A/meta/
使用机构A生成群组1的创世区块

在generator-A文件目录下
编写conf/group_genesis.ini文件

[group]
group_id=1
# 四个群组1的节点
[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30302
node3=127.0.0.1:30303

生成创世区块,结合四个节点证书文件

./generator --create_group_genesis ./group
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --create_group_genesis ./group
INFO |  Build operation begin.
INFO | generate ./group/group.1.genesis, successful
INFO |  Build operation end.
root@192-168-19-133:/yijiu/gFile/generator-A# ll group/
总用量 16
drwxr-xr-x  2 root root 4096 1013 10:43 ./
drwxr-xr-x 15 root root 4096 1013 10:43 ../
-rw-r--r--  1 root root  813 1013 10:43 group.1.genesis
-rw-r--r--  1 root root 2061 1013 10:43 group.1.ini

将group.1.genesis 文件拷贝到机构B

 cp group/group.1.genesis  ../generator-B/meta/
生成机构A节点并启动

在generator-A文件目录下
使用--build_install_package, 并且第一个实参是放置群组内其他节点的连接信息,第二个是节点文件的输出目录

./generator --build_install_package ./meta/peersB.txt ./nodeA
root@192-168-19-133:/yijiu/gFile/generator-A# ll nodeA/
总用量 32
drwxr-xr-x  6 root root 4096 1013 10:53 ./
drwxr-xr-x 16 root root 4096 1013 10:53 ../
drwxr-xr-x  2 root root 4096 1012 16:30 monitor/
drwxr-xr-x  4 root root 4096 1013 10:53 node_127.0.0.1_30300/
drwxr-xr-x  4 root root 4096 1013 10:53 node_127.0.0.1_30301/
drwxr-xr-x  2 root root 4096 1013 10:53 scripts/
-rwxr-xr-x  1 root root  367 1013 10:53 start_all.sh*
-rwxr-xr-x  1 root root  353 1013 10:53 stop_all.sh*

启动机构A的两个节点

root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/start_all.sh
try to start node_127.0.0.1_30300
try to start node_127.0.0.1_30301
 node_127.0.0.1_30301 start successfully
 node_127.0.0.1_30300 start successfully
root@192-168-19-133:/yijiu/gFile/generator-A# ps -ef | grep fisco
root       10779       1  2 10:53 pts/0    00:00:00 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
root       10780       1  2 10:53 pts/0    00:00:00 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
生成机构B节点并启动

与前面 的类型,这里我就不做解释了,直接放置相关的命令

root@192-168-19-133:/yijiu/gFile# cd generator-B/

# 生成节点文件
root@192-168-19-133:/yijiu/gFile/generator-B# ./generator --build_install_package ./meta/peersA.txt ./nodeB
INFO |  Build operation begin.
INFO |  Checking fisco-bcos binary...
INFO |  Binary check passed.
INFO |  Generate ./nodeB/node_127.0.0.1_30302
INFO |  Generate ./nodeB/node_127.0.0.1_30303
INFO |  Build operation end.

# 启动节点
root@192-168-19-133:/yijiu/gFile/generator-B# bash nodeB/start_all.sh
try to start node_127.0.0.1_30302
try to start node_127.0.0.1_30303
 node_127.0.0.1_30302 start successfully
 node_127.0.0.1_30303 start successfully

root@192-168-19-133:/yijiu/gFile/generator-B# ps -ef | grep fisco
root       10779       1  1 10:53 pts/0    00:00:02 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
root       10780       1  1 10:53 pts/0    00:00:02 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
root       11047       1  3 10:55 pts/0    00:00:00 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30302/fisco-bcos -c config.ini
root       11048       1  3 10:55 pts/0    00:00:00 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30303/fisco-bcos -c config.ini
root       11270    3495  0 10:55 pts/0    00:00:00 grep --color=auto fisco

查看群组1的共识情况

root@192-168-19-133:/yijiu/gFile/generator-B# tail -f ./node*/node*/log/log*  | grep +++
info|2023-10-13 10:58:40.012620|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=0,hash=1e255576...
info|2023-10-13 10:58:41.022082|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=6af59b76...

自此,这效果图这部分已经完成
在这里插入图片描述


群组2的四个节点生成并启动[机构A,机构C]

由于机构A的两个节点已经生成并运行,所以我们将群组2创世区块的操作交给机构C

修改机构C的两个节点配置文件
机构 节点 所属群组 P2P地址 RPC监听地址 Channel监听地址 ip地址
机构C 节点4 群组2 30304 20204 8549 127.0.0.1
节点5 群组2 30305 20205 8550 127.0.0.1

进入generator-C目录,修改conf/node_deployment.int文件

[group]
group_id=2

[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30304
channel_listen_port=20204
jsonrpc_listen_port=8549

[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30305
channel_listen_port=20205
jsonrpc_listen_port=8550
生成机构C的节点证书和p2p连接信息文件
./generator --generate_all_certificates ./agencyC_node_info
root@192-168-19-133:/yijiu/gFile/generator-C# ll agencyC_node_info/
总用量 20
drwxr-xr-x  2 root root 4096 1013 11:12 ./
drwxr-xr-x 14 root root 4096 1013 11:12 ../
-rw-r--r--  1 root root 1194 1013 11:12 cert_127.0.0.1_30304.crt
-rw-r--r--  1 root root 1198 1013 11:12 cert_127.0.0.1_30305.crt
-rw-r--r--  1 root root   32 1013 11:12 peers.txt

拷贝peers.txt 给机构A

cp -r agencyC_node_info/peers.txt  ../generator-A/meta/peersC.txt
使用机构C生成群组2的创世区块

ps : 这里还需要完成一个任务,将机构A的两个节点crt文件和机构A的peers.txt复制到机构C的工作目录

 cp -r ../generator-A/agencyA_node_info/cert*  meta/
 cp -r ../generator-A/agencyA_node_info/peers.txt  meta/peersA.txt

修改机构C里的conf/group_genesis.ini文件

[group]
group_id=2

[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30304
node3=127.0.0.1:30305

生成群组2创世区块文件]

./generator --create_group_genesis ./group
root@192-168-19-133:/yijiu/gFile/generator-C# ./generator --create_group_genesis ./group
INFO |  Build operation begin.
INFO | generate ./group/group.2.genesis, successful
INFO |  Build operation end.
root@192-168-19-133:/yijiu/gFile/generator-C# ll group/
总用量 16
drwxr-xr-x  2 root root 4096 1013 11:22 ./
drwxr-xr-x 15 root root 4096 1013 11:22 ../
-rw-r--r--  1 root root  813 1013 11:22 group.2.genesis
-rw-r--r--  1 root root 2061 1013 11:22 group.2.ini

将其拷贝给机构A

cp -r group/group.2.genesis ../generator-A/meta/
生成机构C节点并启动
./generator --build_install_package ./meta/peersA.txt ./nodeC
root@192-168-19-133:/yijiu/gFile/generator-C# ./generator --build_install_package ./meta/peersA.txt ./nodeC
INFO |  Build operation begin.
INFO |  Checking fisco-bcos binary...
INFO |  Binary check passed.
INFO |  Generate ./nodeC/node_127.0.0.1_30304
INFO |  Generate ./nodeC/node_127.0.0.1_30305
INFO |  Build operation end.

启动节点

root@192-168-19-133:/yijiu/gFile/generator-C# bash nodeC/start_all.sh
try to start node_127.0.0.1_30304
try to start node_127.0.0.1_30305
 node_127.0.0.1_30305 start successfully
 node_127.0.0.1_30304 start successfully
root@192-168-19-133:/yijiu/gFile/generator-C# ps -ef | grep fisco
root       10779       1  2 10:53 pts/0    00:00:53 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30300/fisco-bcos -c config.ini
root       10780       1  2 10:53 pts/0    00:00:52 /yijiu/gFile/generator-A/nodeA/node_127.0.0.1_30301/fisco-bcos -c config.ini
root       11047       1  2 10:55 pts/0    00:00:50 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30302/fisco-bcos -c config.ini
root       11048       1  2 10:55 pts/0    00:00:50 /yijiu/gFile/generator-B/nodeB/node_127.0.0.1_30303/fisco-bcos -c config.ini
root       11584       1  2 11:24 pts/0    00:00:00 /yijiu/gFile/generator-C/nodeC/node_127.0.0.1_30304/fisco-bcos -c config.ini
root       11585       1  2 11:24 pts/0    00:00:00 /yijiu/gFile/generator-C/nodeC/node_127.0.0.1_30305/fisco-bcos -c config.ini
root       11807    3495  0 11:24 pts/0    00:00:00 grep --color=auto fisco
机构A为现有节点初始化群组2

在generator-A目录操作

使用--add_group 第一个参数选择群组2的创世块,第二个参数选择需要加入群组的节点目录

./generator --add_group ./meta/group.2.genesis ./nodeA

使用--add_peers ,添加机构C节点连接文件peers至已有节点

./generator --add_peers ./meta/peersC.txt ./nodeA

重启机构A的节点

root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/stop_all.sh
try to stop node_127.0.0.1_30300
try to stop node_127.0.0.1_30301
 stop node_127.0.0.1_30300 success.
 stop node_127.0.0.1_30301 success.
root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/start_all.sh
try to start node_127.0.0.1_30300
try to start node_127.0.0.1_30301
 node_127.0.0.1_30301 start successfully
 node_127.0.0.1_30300 start successfully
查看群组2是否有共识
root@192-168-19-133:/yijiu/gFile/generator-A# tail -f ./node*/node*/log/log*  | grep g:2.*+++
info|2023-10-13 11:30:00.281444|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=897212c0...
info|2023-10-13 11:30:02.290856|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=dc4ca14f...
info|2023-10-13 11:30:04.296373|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=7b95e68d...
root@192-168-19-133:/yijiu/gFile/generator-C# tail -f ./node*/node*/log/log*  | grep g:2.*+++
info|2023-10-13 11:30:29.392006|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=2,hash=38ce6304...
info|2023-10-13 11:30:31.397977|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=0,hash=c68a661e...

至此,这一部分完成
在这里插入图片描述


群组3的四个节点生成并启动[机构A,机构D]

这部分与 群组2的构建非常相似,不做太多操作描述

修改机构D的两个节点配置文件
机构 节点 所属群组 P2P地址 RPC监听地址 Channel监听地址 ip地址
机构D 节点6 群组3 30306 20206 8551 127.0.0.1
节点7 群组3 30307 20207 8552 127.0.0.1
[group]
group_id=3

[node0]
; Host IP for the communication among peers.
; Please use your ssh login IP.
p2p_ip=127.0.0.1
; Listening IP for the communication between SDK clients.
; This IP is the same as p2p_ip for the physical host.
; But for virtual host e.g., VPS servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30306
channel_listen_port=20206
jsonrpc_listen_port=8551

[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30307
channel_listen_port=20207
jsonrpc_listen_port=8552
生成机构D的节点证书和p2p连接信息文件
./generator --generate_all_certificates ./agencyD_node_info
root@192-168-19-133:/yijiu/gFile/generator-D# ./generator --generate_all_certificates ./agencyD_node_info
INFO |  Generate cert to ./agencyD_node_info by node_deployment.ini.
INFO |  Generate /yijiu/gFile/generator-D/meta/node_127.0.0.1_30306
INFO |  Generate /yijiu/gFile/generator-D/meta/node_127.0.0.1_30307
INFO |  Generate cert by node_installation.ini successful!
INFO |  Generate cert by node_deployment.ini end.

拷贝给A ,C的节点信息

 cp -r agencyD_node_info/peers.txt ../generator-A/meta/peersD.txt
拷贝机构A的相关配置文件
cp -r ../generator-A/agencyA_node_info/peers.txt meta/peersA.txt
 cp -r ../generator-A/agencyA_node_info/cert*  meta/
使用机构D生成群组3的创始区块

group_genesis.ini文件

[group]
group_id=3

[nodes]
node0=127.0.0.1:30300
node1=127.0.0.1:30301
node2=127.0.0.1:30306
node3=127.0.0.1:30307
./generator --create_group_genesis ./group
root@192-168-19-133:/yijiu/gFile/generator-D#  ./generator --create_group_genesis ./group
INFO |  Build operation begin.
INFO | generate ./group/group.3.genesis, successful
INFO |  Build operation end.

拷贝给A 群组3的创始区块

cp -r group/group.3.genesis ../generator-A/meta/
生成机构D节点并启动
./generator --build_install_package ./meta/peersA.txt ./nodeD
root@192-168-19-133:/yijiu/gFile/generator-D# ./generator --build_install_package ./meta/peersA.txt ./nodeD
INFO |  Build operation begin.
INFO |  Checking fisco-bcos binary...
INFO |  Binary check passed.
INFO |  Generate ./nodeD/node_127.0.0.1_30306
INFO |  Generate ./nodeD/node_127.0.0.1_30307
INFO |  Build operation end.
 bash nodeD/start_all.sh
root@192-168-19-133:/yijiu/gFile/generator-D# bash nodeD/start_all.sh
try to start node_127.0.0.1_30306
try to start node_127.0.0.1_30307
 node_127.0.0.1_30307 start successfully
 node_127.0.0.1_30306 start successfully

机构A为现有节点初始化群组3

在generator-A工作目录下

./generator --add_group ./meta/group.3.genesis ./nodeA/
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --add_group ./meta/group.3.genesis ./nodeA/
INFO |  add group from ./meta/group.3.genesis to ./nodeA/
INFO |  add group end.
./generator --add_peers ./meta/peersD.txt ./nodeA/
root@192-168-19-133:/yijiu/gFile/generator-A# ./generator --add_peers ./meta/peersD.txt ./nodeA/
INFO |  Combine config.ini from ./meta/peersD.txt to ./nodeA/
INFO |  Combine config.ini end.

重新启动nodeA

root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/stop_all.sh
try to stop node_127.0.0.1_30300
try to stop node_127.0.0.1_30301
 stop node_127.0.0.1_30301 success.
 stop node_127.0.0.1_30300 success.
root@192-168-19-133:/yijiu/gFile/generator-A# bash nodeA/start_all.sh
try to start node_127.0.0.1_30300
try to start node_127.0.0.1_30301
 node_127.0.0.1_30301 start successfully
 node_127.0.0.1_30300 start successfully
查看群组3是否有共识
root@192-168-19-133:/yijiu/gFile/generator-A# tail -f ./node*/node*/log/log*  | grep g:3.*+++
info|2023-10-13 11:49:22.736657|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=2,hash=a65932ba...
info|2023-10-13 11:49:23.742396|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=1312488c...
root@192-168-19-133:/yijiu/gFile/generator-D# tail -f ./node*/node*/log/log*  | grep g:3.*+++
info|2023-10-13 11:49:56.856949|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=0,hash=0959777e...
info|2023-10-13 11:49:57.860019|[g:3][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=8499da17...

全部完成搭建
在这里插入图片描述


结语

generator 的工具使用命令还有很多的,可以多看文档,进行相关的操作实验,也可以自己设计一个节点拓扑图,然后使用generator按照拓扑图进行搭建,训练。

猜你喜欢

转载自blog.csdn.net/weixin_52865146/article/details/133786859