FISCO BCOS Generator运维部署工具

FISCO BCOS Generator运维部署工具

下载

cd ~/ 
git clone https://github.com/FISCO-BCOS/generator.git

# 若因为网络问题导致长时间无法下载,请尝试以下命令:
git clone https://gitee.com/FISCO-BCOS/generator.git

image-20230722161318980

安装

此操作要求用户具有sudo权限。

cd ~/generator && bash ./scripts/install.sh

image-20230722162214991

检查是否安装成功,若成功,输出 usage: generator xxx

./generator -h

image-20230722162257908

获取节点二进制

拉取最新fisco-bcos二进制文件到meta中,如果网络较差,可以尝试通过其他方式下载fisco-bcos,或使用--cdn选项,并将下载好的二进制放置于meta文件夹下(或者科学上网试一下

./generator --download_fisco ./meta

image-20230722162546398

检查二进制版本

若成功,输出 FISCO-BCOS Version : x.x.x-x

./meta/fisco-bcos -v

image-20230722162621606

部署网络

image-20230722162719052

查看节点配置是否齐全

root@test:~/generator# tree ./tmp_one_click
./tmp_one_click
├── agencyA
│   └── node_deployment.ini
└── agencyB
    └── node_deployment.ini

image-20230722162958864

查看节点配置文件内容

root@test:~/generator# cat tmp_one_click/agencyA/node_deployment.ini ## 为了方便查看,注释已经删除
[group]
group_id=1

[node0]
p2p_ip=127.0.0.1
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

root@test:~/generator# cat tmp_one_click/agencyB/node_deployment.ini 
[group]
group_id=1

[node0]
p2p_ip=127.0.0.1
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

生成节点

root@test:~/generator# bash ./one_click_generator.sh -b ./tmp_one_click
copy generator...
INFO |  Chain cert begin.
INFO |  Generate root cert success, dir is /root/generator/.dir_chain_ca
INFO |  Chain cert end.
try to use ./tmp_one_click/agencyA/node_deployment.ini
try to use ./tmp_one_click/agencyB/node_deployment.ini
INFO |  Agency cert begin.
INFO |  Agency cert end.
INFO |  Agency cert begin.
INFO |  Agency cert end.
./tmp_one_click/agencyA generate node now...
...

image-20230722163710229

root@test:~/generator# tree -L 3 tmp_one_click/
tmp_one_click/
├── agencyA  # A机构文件夹
│   ├── agency_cert # A机构证书及私钥 
│   │   ├── agency.crt
│   │   ├── agency.key
│   │   └── ca.crt
│   ├── generator-agency # 自动代替A机构进行操作的generator文件夹
.....
│   ├── node
│   │   ├── monitor
│   │   ├── node_127.0.0.1_30300
│   │   ├── node_127.0.0.1_30301
│   │   ├── scripts
│   │   ├── start_all.sh
│   │   └── stop_all.sh
│   ├── node_deployment.ini
│   └── sdk
.....
├── agencyB
│   ├── agency_cert
│   │   ├── agency.crt
│   │   ├── agency.key
│   │   └── ca.crt
│   ├── generator-agency
.....
│   ├── node
│   │   ├── monitor
│   │   ├── node_127.0.0.1_30302
│   │   ├── node_127.0.0.1_30303
│   │   ├── scripts
│   │   ├── start_all.sh
│   │   └── stop_all.sh
│   ├── node_deployment.ini
│   └── sdk
.....
├── ca.crt # 链证书
├── ca.key # 链私钥
├── ca.srl
├── group.1.genesis # 群组1创世区块
└── peers.txt  # 节点的peers.txt信息

启动节点

root@test:~/generator# bash ./tmp_one_click/agencyA/node/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_30300 start successfully
 node_127.0.0.1_30301 start successfully
root@test:~/generator# bash ./tmp_one_click/agencyB/node/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

image-20230722164248199

查看进程

root@test:~/generator# ps -ef |grep -v grep |grep fisco-bcos
root       5202   2786  1 16:42 pts/0    00:00:01 /root/generator/tmp_one_click/agencyA/node/node_127.0.0.1_30300/fisco-bcos -c config.ini
root       5203   2786  1 16:42 pts/0    00:00:01 /root/generator/tmp_one_click/agencyA/node/node_127.0.0.1_30301/fisco-bcos -c config.ini
root       5443   2786  1 16:42 pts/0    00:00:01 /root/generator/tmp_one_click/agencyB/node/node_127.0.0.1_30302/fisco-bcos -c config.ini
root       5445   2786  1 16:42 pts/0    00:00:01 /root/generator/tmp_one_click/agencyB/node/node_127.0.0.1_30303/fisco-bcos -c config.ini

image-20230722164416520

查看节点的共识状态

root@test:~/generator# tail -f ~/generator/tmp_one_click/agency*/node/node*/log/log*  | grep +++
info|2023-07-22 16:45:24.037793|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=c40450a2...
info|2023-07-22 16:45:25.041291|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=0,hash=24c44f0b...
info|2023-07-22 16:45:26.044496|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=1,hash=0093738c...
^C

image-20230722164601952

新增节点(扩容新节点)

image-20230722164732399

初始化扩容配置

root@test:~/generator# pwd
/root/generator
## 创建扩容文件夹,随便命名,此处命名为aiyi
root@test:~/generator# mkdir aiyi
## 拷贝链证书及私钥
root@test:~/generator# cp tmp_one_click/ca.* aiyi/
## 拷贝群组1创世区块
root@test:~/generator# cp tmp_one_click/group.1.genesis aiyi/
## 拷贝群组1节点P2P连接文件
root@test:~/generator# cp tmp_one_click/peers.txt aiyi/

机构A配置节点信息

## 创建机构A扩容节点所在目录
root@test:~/generator# mkdir aiyi/agencyA
## 此时机构A已经存在联盟链中,因此需拷贝机构A证书、私钥至对应文件夹
root@test:~/generator# cp -r tmp_one_click/agencyA/agency_cert/ aiyi/agencyA/
## 机构A填写节点配置
root@test:~/generator# cp tmp_one_click/agencyA/node_deployment.ini aiyi/agencyA/
root@test:~/generator# vim aiyi/agencyA/node_deployment.ini 

[group]
group_id=1

[node0]
p2p_ip=127.0.0.1

rpc_ip=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30304 ## 改
channel_listen_port=20204 ## 改
jsonrpc_listen_port=8549 ## 改

机构C配置节点信息

## 创建机构C扩容节点所在目录
root@test:~/generator# mkdir aiyi/agencyC
## 机构C填写节点配置信息
root@test:~/generator# cp aiyi/agencyA/node_deployment.ini aiyi/agencyC/
root@test:~/generator# vim aiyi/agencyC/node_deployment.ini
[group]
group_id=1

[node0]
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 ## 改

生成扩容节点

root@test:~/generator# bash one_click_generator.sh -e ./aiyi/
Need group.1.genesis in ./aiyi/
try to use ./aiyi//agencyA/node_deployment.ini
Need group.1.genesis in ./aiyi/
try to use ./aiyi//agencyC/node_deployment.ini
INFO |  Agency cert begin.
INFO |  Agency cert end.
INFO |  Agency cert begin.
INFO |  Agency cert end.
./aiyi//agencyA generate node now...
INFO |  Generate cert to ./node_send by node_deployment.ini.
INFO |  Generate /root/generator/aiyi/agencyA/generator-agency/meta/node_127.0.0.1_30304 
INFO |  Generate cert by node_installation.ini successful!
INFO |  Generate cert by node_deployment.ini end.
./aiyi//agencyC generate node now...
INFO |  Generate cert to ./node_send by node_deployment.ini.
INFO |  Generate /root/generator/aiyi/agencyC/generator-agency/meta/node_127.0.0.1_30305 
INFO |  Generate cert by node_installation.ini successful!
INFO |  Generate cert by node_deployment.ini end.
...

image-20230722193702238

启动新节点

root@test:~/generator# bash aiyi/agencyA/node/start_all.sh 
try to start node_127.0.0.1_30304
 node_127.0.0.1_30304 start successfully
root@test:~/generator# bash aiyi/agencyC/node/start_all.sh 
try to start node_127.0.0.1_30305
 node_127.0.0.1_30305 start successfully
root@test:~/generator# 

image-20230722193754969

查看节点进程

root@test:~/generator# ps -ef |grep -v grep |grep fisco-bcos

image-20230722193906224

使用控制台注册节点

获取控制台

root@test:~/generator# cd tmp_one_click/agencyA/generator-agency/
root@test:~/generator/tmp_one_click/agencyA/generator-agency# pwd
/root/generator/tmp_one_click/agencyA/generator-agency
root@test:~/generator/tmp_one_click/agencyA/generator-agency# ./generator --download_console ./ --cdn
INFO | ======= USE_CDN ============= ON =======
INFO | download_console: use cdn
INFO | The download_console_command is bash /root/generator/tmp_one_click/agencyA/generator-agency/tpl/download_console.sh -n
INFO | download console success, obtain the sdk certificates now...
INFO | get console in  .//console/conf!
INFO | get sdk cert in meta!
INFO | sdk cert existed!
INFO | obtain the sdk certificates success, configure the console now
INFO | configure config-example.toml
INFO | configure the channel connections to ['127.0.0.1:20200', '127.0.0.1:20201']
INFO | config_console_toml_file success
INFO | configure the console success
root@test:~/generator/tmp_one_click/agencyA/generator-agency# 

image-20230722194659042

查看机构A节点4

root@test:~/generator/tmp_one_click/agencyA/generator-agency# cat ../../../aiyi/agencyA/node/node_127.0.0.1_30304/conf/node.nodeid 
aa177a09033d00b1670505ed028a293b93d3a5d63956f400b0fb182f494b0975ff484f7018af9e7e191e68708416452693df66b1a24ef7bd0d8f8b11af5b6790

使用控制台注册共识节点

root@test:~/generator/tmp_one_click/agencyA/generator-agency# cd console
root@test:~/generator/tmp_one_click/agencyA/generator-agency/console# bash start.sh 1
=============================================================================================
Welcome to FISCO BCOS console(2.8.0)!
Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
 ________ ______  ______   ______   ______       _______   ______   ______   ______  
|        |      \/      \ /      \ /      \     |       \ /      \ /      \ /      \ 
| $$$$$$$$\$$$$$|  $$$$$$|  $$$$$$|  $$$$$$\    | $$$$$$$|  $$$$$$|  $$$$$$|  $$$$$$\
| $$__     | $$ | $$___\$| $$   \$| $$  | $$    | $$__/ $| $$   \$| $$  | $| $$___\$$
| $$  \    | $$  \$$    \| $$     | $$  | $$    | $$    $| $$     | $$  | $$\$$    \ 
| $$$$$    | $$  _\$$$$$$| $$   __| $$  | $$    | $$$$$$$| $$   __| $$  | $$_\$$$$$$\
| $$      _| $$_|  \__| $| $$__/  | $$__/ $$    | $$__/ $| $$__/  | $$__/ $|  \__| $$
| $$     |   $$ \\$$    $$\$$    $$\$$    $$    | $$    $$\$$    $$\$$    $$\$$    $$
 \$$      \$$$$$$ \$$$$$$  \$$$$$$  \$$$$$$      \$$$$$$$  \$$$$$$  \$$$$$$  \$$$$$$

=============================================================================================
[group:1]> addSealer aa177a09033d00b1670505ed028a293b93d3a5d63956f400b0fb182f.....
{
    "code":1,
    "msg":"Success"
}

[group:1]> getSealerList 
[
    391e44096f0503fabf14b38b46a3b0f639936ef5fff657e6b06a08787f5cb07b5e8fda5ad9668203656f6ca7ac871bc7ee4876a64.., 3e64eb956ae200caa023032b22e8c08dd52db1c9fb9e64730be8b31c6ff86c271b60caac6ad06a7f4f516e8827dbfd2f93223a55d..,  a570a69cfd7c92611c41c835e40d6a4794d607879865067caacc65260a83e6127b28bedc56380be295b5c503cd54419ba0b3636c7.., e451df05b108712b1635e89719946671fb8488a844505804aa38d23d609f804932125daa28f1d89434705cb3b9b00c437c11ee8b6..,
aa177a09033d00b1670505ed028a293b93d3a5d63956f400b0fb182f494b0975ff484f7018af9e7e191e68708416452693df66b1a...
]

查看机构C节点5

[group:1]> exit
root@test:~/generator/tmp_one_click/agencyA/generator-agency/console# cat ../../../../aiyi/agencyC/node/node_127.0.0.1_30305/conf/node.nodeid 
c23e68c1659ab8ca9a5ea6658f31e694593549d06b3be49a5f715ef06af2a165bdd16c79f37dd443bf19642b5b3b6a3fe972c9d7ab0d4abad48a1277b49cdaad
root@test:~/generator/tmp_one_click/agencyA/generator-agency/console# 

使用控制台注册观察节点

root@test:~/generator/tmp_one_click/agencyA/generator-agency/console# bash start.sh 1
=============================================================================================
Welcome to FISCO BCOS console(2.8.0)!
Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
 ________ ______  ______   ______   ______       _______   ______   ______   ______  
|        |      \/      \ /      \ /      \     |       \ /      \ /      \ /      \ 
| $$$$$$$$\$$$$$|  $$$$$$|  $$$$$$|  $$$$$$\    | $$$$$$$|  $$$$$$|  $$$$$$|  $$$$$$\
| $$__     | $$ | $$___\$| $$   \$| $$  | $$    | $$__/ $| $$   \$| $$  | $| $$___\$$
| $$  \    | $$  \$$    \| $$     | $$  | $$    | $$    $| $$     | $$  | $$\$$    \ 
| $$$$$    | $$  _\$$$$$$| $$   __| $$  | $$    | $$$$$$$| $$   __| $$  | $$_\$$$$$$\
| $$      _| $$_|  \__| $| $$__/  | $$__/ $$    | $$__/ $| $$__/  | $$__/ $|  \__| $$
| $$     |   $$ \\$$    $$\$$    $$\$$    $$    | $$    $$\$$    $$\$$    $$\$$    $$
 \$$      \$$$$$$ \$$$$$$  \$$$$$$  \$$$$$$      \$$$$$$$  \$$$$$$  \$$$$$$  \$$$$$$

=============================================================================================
[group:1]> addObserver c23e68c1659ab8ca9a5ea6658f31e694593549d06b3be49a5f715ef06af2a165bdd16c79f37dd443bf19642b5b3b6a3fe972c9d7ab0d4abad48a1277b49cdaad
{
    "code":1,
    "msg":"Success"
}

[group:1]> getObserverList 
[
    c23e68c1659ab8ca9a5ea6658f31e694593549d06b3be49a5f715ef06af2a165bdd16c79f37dd443bf19642b5b3b6a3fe972c9d7ab0d4abad48a1277b49cdaad
]

[group:1]>

新增群组(扩容新群组)

image-20230722201814756

配置群组2创世区块

root@test:~/generator# vim conf/group_genesis.ini
## 原文件内容
[group]
group_id=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
## 修改后
[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

获取对应节点证书

机构A-节点0(node0=127.0.0.1:30300

root@test:~/generator# cp tmp_one_click/agencyA/generator-agency/meta/cert_127.0.0.1_30300.crt ./meta/

机构A-节点1(node1=127.0.0.1:30301

root@test:~/generator# cp tmp_one_click/agencyA/generator-agency/meta/cert_127.0.0.1_30301.crt ./meta/

机构A-节点4(node2=127.0.0.1:30304

root@test:~/generator# cp aiyi/agencyA/generator-agency/meta/cert_127.0.0.1_30304.crt ./meta/

机构C-节点5(node3=127.0.0.1:30305

root@test:~/generator# cp aiyi/agencyC/generator-agency/meta/cert_127.0.0.1_30305.crt ./meta/

生成群组创世区块

root@test:~/generator# ./generator --create_group_genesis ./group2  ## -c也可以
INFO |  Build operation begin.
INFO | generate ./group2/group.2.genesis, successful
INFO |  Build operation end.

将群组创世区块加入现有节点:

机构A-节点0(node0=127.0.0.1:30300)

root@test:~/generator# ./generator --add_group ./group2/group.2.genesis ./tmp_one_click/agencyA/node/node_127.0.0.1_30300/
INFO |  add group from ./group2/group.2.genesis to ./tmp_one_click/agencyA/node/node_127.0.0.1_30300/
INFO |  add group end.

机构A-节点1(node1=127.0.0.1:30301

root@test:~/generator# ./generator --add_group ./group2/group.2.genesis ./tmp_one_click/agencyA/node/node_127.0.0.1_30301/
INFO |  add group from ./group2/group.2.genesis to ./tmp_one_click/agencyA/node/node_127.0.0.1_30301/
INFO |  add group end.

机构A-节点4(node2=127.0.0.1:30304

root@test:~/generator# ./generator --add_group ./group2/group.2.genesis ./aiyi/agencyA/node/node_127.0.0.1_30304/
INFO |  add group from ./group2/group.2.genesis to ./aiyi/agencyA/node/node_127.0.0.1_30304/
INFO |  add group end.

机构C-节点5(node3=127.0.0.1:30305

root@test:~/generator# ./generator --add_group ./group2/group.2.genesis ./aiyi/agencyC/node/node_127.0.0.1_30305/
INFO |  add group from ./group2/group.2.genesis to ./aiyi/agencyC/node/node_127.0.0.1_30305/
INFO |  add group end.

加载、启动新群组

节点在运行时,可直接用脚本load_new_groups.sh加载新群组配置,并调用startGroupRPC接口启动新群组:

机构A-节点0(node0=127.0.0.1:30300

root@test:~/generator# bash ./tmp_one_click/agencyA/node/node_127.0.0.1_30300/scripts/load_new_groups.sh 
node_127.0.0.1_30300 is trying to load new groups. Check log for more information.
root@test:~/generator# curl -X POST --data '{"jsonrpc":"2.0","method":"startGroup","params":[2],"id":1}' http://127.0.0.1:8545
{"id":1,"jsonrpc":"2.0","result":{"code":"0x0","message":"Group 2 started successfully"}}

机构A-节点1(node1=127.0.0.1:30301

root@test:~/generator# bash ./tmp_one_click/agencyA/node/node_127.0.0.1_30301/scripts/load_new_groups.sh
node_127.0.0.1_30301 is trying to load new groups. Check log for more information.
root@test:~/generator# curl -X POST --data '{"jsonrpc":"2.0","method":"startGroup","params":[2],"id":1}' http://127.0.0.1:8546
{"id":1,"jsonrpc":"2.0","result":{"code":"0x0","message":"Group 2 started successfully"}}

机构A-节点4(node2=127.0.0.1:30304

root@test:~/generator# bash ./aiyi/agencyA/node/node_127.0.0.1_30304/scripts/load_new_groups.sh 
node_127.0.0.1_30304 is trying to load new groups. Check log for more information.
root@test:~/generator# curl -X POST --data '{"jsonrpc":"2.0","method":"startGroup","params":[2],"id":1}' http://127.0.0.1:8549
{"id":1,"jsonrpc":"2.0","result":{"code":"0x0","message":"Group 2 started successfully"}}

机构C-节点5(node3=127.0.0.1:30305

root@test:~/generator# bash ./aiyi/agencyC/node/node_127.0.0.1_30305/scripts/load_new_groups.sh 
node_127.0.0.1_30305 is trying to load new groups. Check log for more information.
root@test:~/generator# curl -X POST --data '{"jsonrpc":"2.0","method":"startGroup","params":[2],"id":1}' http://127.0.0.1:8550
{"id":1,"jsonrpc":"2.0","result":{"code":"0x0","message":"Group 2 started successfully"}}

查看节点

查看节点log内group2信息:

root@test:~/generator# tail -f ~/generator/tmp_one_click/agency*/node/node*/log/log* | grep g:2 | grep +++

image-20230722205004496

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值