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,330300202008545127.0.0.1
节点1群组1,2,330301202018546127.0.0.1
机构B节点2群组130302202028547127.0.0.1
节点3群组130303202038548127.0.0.1
机构C节点4群组230304202048549127.0.0.1
节点5群组230305202058550127.0.0.1
机构D节点6群组330306202068551127.0.0.1
节点7群组330307202078552127.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,330300202008545127.0.0.1
节点1群组1,2,330301202018546127.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群组130302202028547127.0.0.1
节点3群组130303202038548127.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群组230304202048549127.0.0.1
节点5群组230305202058550127.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群组330306202068551127.0.0.1
节点7群组330307202078552127.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按照拓扑图进行搭建,训练。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

已久依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值