前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >fiscoBcos运维部署工具单机搭链

fiscoBcos运维部署工具单机搭链

作者头像
终有链响
发布2025-01-03 09:56:22
发布2025-01-03 09:56:22
480
举报
文章被收录于专栏:终有链响终有链响

使用运维部署工具搭建多节点多群组区块链

在home目录下新建fisco11文件夹并进入到fisco11文件夹下:

mkdir fisco11 && cd fisco11

img
img
下载安装

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

image-20241226160720526
image-20241226160720526

安装:cd ./generator && bash ./scripts/install.sh

image-20241226160742279
image-20241226160742279
img
img

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

输入以下指令:./generator -h

image-20241226160803325
image-20241226160803325

获取节点二进制

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

./generator --download_fisco ./meta

官方给的下载链接太慢了,我这里是将下载好的二进制文件放入到meta 中

二进制fisco下载地址:https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/fisco-bcos.tar.gz

检查二进制版本

输入以下命令:./meta/fisco-bcos -v

img
img
节点组网拓扑结构

一个如图所示的6节点3机构2群组的组网模式。机构B和机构C分别位于群组1和群组2中。机构A同属于群组1和群组2中。

img
img
机器环境

每个节点的IP,端口号为如下:

机构

节点

所属群组

P2P地址

RPC监听地址

Channel监听地址

机构A

节点0

群组1、2

127.0.0.1:30300

127.0.0.1:8545

0.0.0.0:20200

节点1

群组1、2

127.0.0.1:30301

127.0.0.1:8546

0.0.0.0:20201

机构B

节点2

群组1

127.0.0.1:30302

127.0.0.1:8547

0.0.0.0:20202

节点3

群组1

127.0.0.1:30303

127.0.0.1:8548

0.0.0.0:20203

机构C

节点4

群组2

127.0.0.1:30304

127.0.0.1:8549

0.0.0.0:20204

节点5

群组2

127.0.0.1:30305

127.0.0.1:8550

0.0.0.0:20205

注解

  • 云主机的公网IP均为虚拟IP,若rpc_ip/p2p_ip/channel_ip填写外网IP,会绑定失败,须填写0.0.0.0
  • RPC/P2P/Channel监听端口必须位于1024-65535范围内,且不能与机器上其他应用监听端口冲突
  • 出于安全性和易用性考虑,FISCO BCOS v2.3.0版本最新节点config.ini配置将listen_ip拆分成jsonrpc_listen_ip和channel_listen_ip,但仍保留对listen_ip的解析功能,详细请参考 这里
  • 为便于开发和体验,channel_listen_ip参考配置是 0.0.0.0 ,出于安全考虑,请根据实际业务网络情况,修改为安全的监听地址,如:内网IP或特定的外网IP
机构初始化

在/home/fisco11目录下初始化机构A

cp -r ./generator ./generator-A

img
img

在/home/fisco11目录下初始化机构B

cp -r ./generator ./generator-B

img
img
初始化链证书

在证书颁发机构上进行操作,一条联盟链拥有唯一的链证书ca.crt

用 --generate_chain_certificate 命令生成链证书

在证书生成机构目录下操作:

cd ./generator

img
img

生成链证书文件到dir_chain_ca:

./generator --generate_chain_certificate ./dir_chain_ca

img
img

查看链证书和私钥:

ls ./dir_chain_ca

img
img

ca.crt为链证书,ca.key为链私钥

初始化机构A

在/home/fisco11/generator目录下进行操作。

生成机构A证书:

./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA

img
img

查看机构证书及私钥:

ls dir_agency_ca/agencyA/

img
img

Agency.crt为机构证书、agency.key是机构私钥、ca.crt为链证书

发送链证书、机构证书、机构私钥至机构A,示例是通过文件拷贝的方式,从证书授权机构将机构证书发送给对应的机构,放到机构的工作目录的meta子目录下

cp ./dir_agency_ca/agencyA/* …/generator-A/meta/

img
img
初始化机构B

在home/fisco11/generator目录下操作:

生成机构B证书:

./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB

img
img

发送链证书、机构证书、机构私钥至机构B,示例是通过文件拷贝的方式,从证书授权机构将机构证书发送给对应的机构,放到机构的工作目录的meta子目录下

cp ./dir_agency_ca/agencyB/* …/generator-B/meta/

img
img
img
img
机构A修改配置文件

node_deployment.ini为节点配置文件,运维部署工具会根据node_deployment.ini下的配置生成相关节点证书,及生成节点配置文件夹等。

机构A修改conf文件夹下的node_deployment.ini如下图所示:

在/home/fisco11/generator-A目录下进行操作

vim conf/node_deployment.ini

img
img
机构B修改配置文件

在/home/fisco11/generator-B目录下进行操做

vim conf/node_deployment.ini

img
img
机构A生成并发送节点信息

在/home/fisco11/generator-A目录下操作

机构A生成节点证书及P2P连接信息文件,此步需要用到上述配置的node_deployment.ini,及机构meta文件夹下的机构证书与私钥,机构A生成节点证书及P2P连接信息文件

./generator --generate_all_certificates ./agencyA_node_info

img
img

查看生成文件:

ls ./agencyA_node_info

img
img

cert_127.0.0.1_30300.crt cert_127.0.0.1_30301.crt需要交互给机构A的节点证书 peersA.txt为节点P2P连接地址文件

机构生成节点时需要指定其他节点的节点P2P连接地址,因此,A机构需将节点P2P连接地址文件发送至机构B

cp ./agencyA_node_info/peers.txt …/generator-B/meta/peersA.txt

img
img
机构B生成并发送节点信息

在/home/fisco11/generator-B目录下进行操作

机构B生成节点证书及P2P连接信息文件:

./generator --generate_all_certificates ./agencyB_node_info

img
img

生成创世区块的机构需要节点证书,示例中由A机构生成创世区块,因此B机构除了发送节点P2P连接地址文件外,还需发送节点证书至机构A

发送证书:

cp ./agencyB_node_info/cert*.crt …/generator-A/meta/

img
img

发送节点P2P连接地址文件:

cp ./agencyB_node_info/peers.txt …/generator-A/meta/peersB.txt

img
img
img
img
机构A生成群组1创世区块

在home/fisco11/generator-A目录下进行操作

vim conf/group_genesis.ini

img
img

这里填写的是p2p节点连接地址,是构成群组所需要连接的p2p地址都放入进来

此步会根据机构A的meta文件夹下配置的节点证书,生成group_genesis.ini配置的群组创世区块,教程中需要机构A的meta下有名为cert_127.0.0.1_30300.crt,cert_127.0.0.1_30301.crt,cert_127.0.0.1_30302.crt,cert_127.0.0.1_30303.crt的节点证书,此步需要用到机构B的节点证书。

./generator --create_group_genesis ./group

img
img

ls group

img
img

分发群组1创世区块至机构B

cp ./group/group.1.genesis …/generator-B/meta

img
img
img
img
机构A生成所属节点

在home/fisco11/generator-A目录下进行操作

生成机构A所属节点,此命令会根据用户配置的node_deployment.ini文件生成相应的节点配置文件夹:

注意,此步指定的节点P2P连接信息peers.txt为群组内其他节点的连接信息,多个机构组网的情况下需要将其合并。

./generator --build_install_package ./meta/peersB.txt ./nodeA

img
img

查看生成节点配置文件夹:

ls ./nodeA

img
img

机构A启动节点:

bash ./nodeA/start_all.sh

img
img

查看节点进程:

ps -ef | grep fisco

img
img
机构B生成所属节点

当前操作都在/home/fisco11/generator-B下进行操作

./generator --build_install_package ./meta/peersA.txt ./nodeB

img
img

ls nodeB/

img
img

机构B启动节点:

bash ./nodeB/start_all.sh

img
img

查看节点进程:

ps -ef | grep fisco

img
img
查看群组1节点运行状态

查看进程:

ps -ef | grep fisco

img
img

查看节点log:

tail -f ./node*/node*/log/log* | grep +++

img
img
img
img

至此,我们完成了如图所示机构A、机构B搭建群组1的操作

img
img
证书授权机构初始化机构C

下面的操作在/home/fisco11目录下进行

初始化机构C,请注意,此时generator目录下有链证书及私钥,实际环境中机构C无法获取链证书及私钥。

img
img

生成机构C证书

这里要在home/fisco11/generator目录下进行

./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyC

img
img

查看机构证书及私钥:

ls dir_agency_ca/agencyC/

img
img

发送链证书、机构证书、机构私钥至机构C,示例是通过文件拷贝的方式,从证书授权机构将机构证书发送给对应的机构,放到机构的工作目录的meta子目录下

cp ./dir_agency_ca/agencyC/* …/generator-C/meta/

img
img
机构A、C构建群组2

接下来,机构C需要与A进行新群组建立操作,示例中以C生成创世区块为例

机构A发送节点信息

当前操作路径在home/fisco11/generator-A目录下进行操作

由于机构A已经生成过节点证书及peers文件,只需将之前生成的节点P2P连接信息以及节点证书发送至机构C,操作如下:

示例中由机构C生成群组创世区块,因此需要机构A的节点证书和节点P2P连接地址文件,将上述文件发送至机构C

发送证书:

cp ./agencyA_node_info/cert*.crt …/generator-C/meta/

img
img

发送节点P2P连接地址文件:

cp ./agencyA_node_info/peers.txt …/generator-C/meta/peersA.txt

img
img
img
img

机构C修改配置文件

在home/fisco11/generator-C目录下进行操作

vim conf/node_deployment.ini

img
img
机构C生成并发送节点信息

在home/fisco11/generator-C目录下进行操作

机构C生成节点证书及P2P连接信息文件:

./generator --generate_all_certificates ./agencyC_node_info

img
img

查看生成文件:

ls ./agencyC_node_info

img
img

机构生成节点时需要指定其他节点的节点P2P连接地址,因此,C机构需将节点P2P连接地址文件发送至机构A

cp ./agencyC_node_info/peers.txt …/generator-A/meta/peersC.txt

img
img
img
img
机构C生成群组2创世区块

在home/fisco11/generator-C目录下进行操作

机构C修改conf文件夹下的group_genesis.ini如下图所示

vim conf/group_genesis.ini

img
img

此步会根据机构C的meta文件夹下配置的节点证书,生成group_genesis.ini配置的群组创世区块。

./generator --create_group_genesis ./group ls group

img
img
img
img

分发群组2创世区块至机构A

cp ./group/group.2.genesis …/generator-A/meta/

img
img
机构C生成所属节点

在home/fisco11/generator-C目录下进行操作

img
img

机构C启动节点:

bash ./nodeC/start_all.sh

img
img

查看节点进程:

ps -ef | grep fisco

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

在home/fisao11/generator-A目录下执行

添加群组2配置文件至已有节点,此步将群组2创世区块group.2.genesis添加至./nodeA下的所有节点内

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

img
img

添加机构C节点连接文件peers至已有节点,此步将peersC.txt的节点P2P连接地址添加至./nodeA下的所有节点内:

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

img
img

重启机构A节点:

bash ./nodeA/stop_all.sh

bash ./nodeA/start_all.sh

img
img
查看群组2节点运行状态

在home/fisco11/generator-C目录下进行操作

查看节点进程:

ps -ef | grep fisco

img
img

查看节点log:

tail -f ./node*/node*/log/log* | grep +++

img
img

至此,我们完成了如图所示的机构A、C搭建群组2构建

img
img
扩展–机构C节点加入群组1

将节点加入已有群组需要用户使用控制台发送指令,将节点加入群组

在home/fisco11/generator-A目录下进行操作

发送群组1配置文件至机构C节点

./generator --add_group ./group/group.1.genesis …/generator-C/nodeC

img
img

重启机构C节点

bash …/generator-C/nodeC/stop_all.sh

bash …/generator-C/nodeC/start_all.sh

img
img

查看节点C的node.nodeid

cat nodeC/node_127.0.0.1_3030*/conf/node.nodeid

img
img
配置控制台

在home/fisco11/generator目录下生成机构Asdk文件

./generator --generate_sdk_certificate ./dir_sdk_caA ./dir_agency_ca/agencyA/

img
img

在home/fisco11/generator-A目录下进行操作

下载控制台curl -#LO [https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh](https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh)

img
img
img
img

将sdk证书和链证书拷贝到console/conf目录下

cp …/…/generator/dir_sdk_caA/sdk/ca.crt conf

cp …/…/generator/dir_sdk_caA/sdk/sdk.* conf

img
img
img
img

拷贝config-example.toml模板文件为conf.toml

cp -r conf/config-example.toml conf/config.toml

img
img

修改config.toml文件,将节点A的信息填入

vim conf/config.toml

img
img

启动控制台 :

bash start.sh

img
img

使用控制台将机构C的节点4注册为观察节点

addObserver d43aa3774b8f88001a5f93fc27bb976728501ed59f401a6a8efec4a892761e7fa3ddf645d7a2e4bd196b68adbba071942d6b041ca28c36c24edef980739fe6bd

img
img

使用控制台将机构C的节点5注册为共识节点

addSealer 70bcfaeabeac920c013fc20a90687df856a245665346175eb02027bf2cafa2655fb3c68c760eda4ebee00f7db42d9a387a70706b257f02fb6db8ce7349221cdd

img
img

退出控制台:

exit

img
img
查看节点

在home/fisco11/generator-C/nodeC目录下进行操作

查看节点node_127.0.0.1_30304/log内群组1信息:

cat log_2024120503.00.log | grep g:1 | grep Report

img
img

查看节点node_127.0.0.1_30305/log内群组1信息

cat log_2024120503.00.log | grep g:1 | grep Report

img
img

至此已经完成了机构C加入群组1的操作

img
img
扩展–机构A扩容节点加入群组1

我们将会为机构A新增节点6,IP、端口号如下:

机构

节点

所属群组

P2P地址

RPC监听地址

Channel监听地址

机构A

节点6

群组1

127.0.0.1:30306

127.0.0.1:8551

0.0.0.0:20206

在上述过程中,机构A已经生成了自己所属的机构证书及私钥,并且拥有了群组1的创世区块,扩容节点需要进行的操作如下。

将节点加入已有群组需要用户使用控制台发送指令,将节点加入群组,示例如下:

机构A修改配置文件

node_deployment.ini为节点配置文件,运维部署工具会根据node_deployment.ini下的配置生成相关节点证书,及生成节点配置文件夹等。

机构A修改conf文件夹下的node_deployment.ini如下图所示:

在home/fisco11/generator-A目录下进行操作

vim conf/node_deployment.ini

img
img

机构A生成节点证书及P2P连接信息文件,此步需要用到上述配置的node_deployment.ini,及机构meta文件夹下的机构证书与私钥,机构A生成节点证书及P2P连接信息文件

./generator --generate_all_certificates ./agencyA_node_info_new

img
img

查看生成文件:

ls ./agencyA_node_info_new

img
img
机构A生成新增节点

生成机构A所属节点,此命令会根据用户配置的node_deployment.ini文件生成相应的节点配置文件夹:

注意,此步指定的节点P2P连接信息peers.txt为群组内其他节点的连接信息,多个机构组网的情况下需要将其合并。

合并当前节点的peers.txt

cat ./agencyA_node_info/peers.txt >> ./meta/peersB.txt

img
img

生成新增节点:

./generator --build_install_package ./meta/peersB.txt ./nodeA_new

img
img

查看新增节点配置文件:

ls ./nodeA_new

img
img

机构A启动节点:

bash ./nodeA_new/start_all.sh

img
img

查看节点进程:

ps -ef | grep fisco

img
img

查看节点6的节点id

cat nodeA_new/node_127.0.0.1_30306/conf/node.nodeid

img
img
使用控制台注册共识节点

在home/fisco11/generator-A/console目录下进行操作

启动控制台:

bash start.sh

img
img

添加共识节点:

addSealer 2bd0316805da51bc35fd7e35a48c79a69150d7e079888c41be925d0badc2f6f14331d6dc12fa3c4405e11538b64c8e4e2cef2dbde0c63bf7fee9aa13af0228c6

img
img

查看节点共识列表

getSealerList

img
img

退出控制台

查看机构A新增节点

在home/fisco11/generator-A内进行操作

查看节点log内group1信息

cat nodeA_new/node_127.0.0.1_30306/log/log* | grep g:1 | grep Report

img
img

至此新增节点已经加入群组内

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用运维部署工具搭建多节点多群组区块链
    • 下载安装
    • 节点组网拓扑结构
    • 机器环境
    • 机构初始化
    • 初始化链证书
    • 初始化机构A
    • 初始化机构B
    • 机构A修改配置文件
    • 机构B修改配置文件
    • 机构A生成并发送节点信息
    • 机构B生成并发送节点信息
    • 机构A生成群组1创世区块
    • 机构A生成所属节点
    • 机构B生成所属节点
    • 查看群组1节点运行状态
    • 证书授权机构初始化机构C
    • 机构A、C构建群组2
    • 机构C生成并发送节点信息
    • 机构C生成群组2创世区块
    • 机构C生成所属节点
    • 机构A为现有节点初始化群组2
    • 查看群组2节点运行状态
    • 扩展–机构C节点加入群组1
    • 配置控制台
    • 查看节点
    • 扩展–机构A扩容节点加入群组1
    • 机构A修改配置文件
    • 机构A生成新增节点
    • 使用控制台注册共识节点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档