fiscoBcos运维工具多机搭链
fiscoBcos运维工具多机搭链
使用generator搭建多机部署的Fisco链
以下是我们要做的实践
我们将从多机两节点部署开始,机构A和机构B,为机构A节点1做落盘加密
为机构A新增节点并加入组1
新增机构C节点4
新增组2并将机构B和机构C拉入组2
1首先我们要准备两台虚拟机
2为这两台机建立免密连接
登录一号机4.17.0.66
在任意位置下
输入命令:
-keygen -t rsa -m PEM
在root目录下的.目录下会生成连接的私钥和公钥
将公钥id_rsa.pub放入到二号机的/root/.目录下的authorized_keys下面
配置好后进行连接检测免密连接是否成功输入命令:
-o StrictHostKeyChecking=no root@[IP]
下载并安装企业级部署generator工具
我这里存放的generator工具是存放路径在/root/g下面,可以自己选择要存放链工具的地址,我接下来的操作都在/root/g目录下进行。
下载工具的源代码
git clone .git
进入generator目录进行下载操作
输入命令:
bash scripts/install.sh
查看是否安装成功
在generator目录下输入命令
./generator -h
若成功,输出usage:generator XXX
4获取节点二进制,拉取最新的fisco-bcos二进制文件到meta中
进入到新建的generator文件目录内
在generator目录下进行以下操作.
输入命令:
/generator --download_fisco ./meta
查看fisco版本:
./meta/fisco-bcos -v
5机构初始化
按照效果图,我们需要机构A,机构B,机构C,将其初始化,拷贝出来
在generator目录下进行以下操作.
输入命令:
cp -r generator/ generator-A
这里我多复制了一个D作为备份,为以后需要做更改做准备
6链证书初始化
一条链只能有一条唯一的链证书,我们选择在generator文件夹生成链证书,
在generator目录下进行以下操作.
输入以下命令:
./generator --generate_chain_certificate ./dir_chain_ca
检查dir_chain_ca文件夹是否存在链证书和私钥:
ls dir_chain_ca/
7机构证书初始化
在generator文件夹下生成各个机构的证书,然后复制到各个机构的工作目录中
机构A:
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA
机构B:
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB
机构C:
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agency
查看生成目录 :
ls dir_agency_ca/
拷贝生成出来的机构证书,机构私钥,链证书到各自的机构目录下的meta文件中:
使用工具生成机构A的SDK证书
./generator --generate_sdk_certificate ./dir_sdk_caA ./dir_agency_ca/agencyA
使用工具生成机构B的SDK证书
./generator --generate_sdk_certificate ./dir_sdk_caB ./dir_agency_ca/agencyB
使用工具生成机构C的SDK证书
./generator --generate_sdk_certificate ./dir_sdk_caC ./dir_agency_ca/agencyC
8生成组1的两个节点(机构A,机构B)
修改机构A节点的配置文件
当前操作目录为/root/g/generator-A
vim conf/node_deployment.ini
_ip的地址要设置成自己主机的ip地址
机构 | 节点 | 所属组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构A | 节点0 | 组1 | 060 | 20260 | 8575 | 10.206.0.1 |
修改机构B节点的配置文件
文件位于generator-B的conf/node_deployment.ini
vim conf/node_deployment.ini
机构 | 节点 | 所属组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构B | 节点1 | 组1 | 061 | 20261 | 8576 | 10.206.0.14 |
回到generator-A文件目录下:
cd …/generator-A
执行:
./generator --generate_all_certificates ./agencyA_node_info
这条命令会根据我们配置的节点信息生成机构A的节点证书和连接信息文件
检查agencyA_node_info是否存在刚刚生成的证书文件和连接信息:
ls agencyA_node_info
将机构A的文件拷贝给机构B并改名为
cp agencyA_node_info/ …/generator-B/meta/
去到机构B文件夹进行操作:
cd …/generator-B
执行:
./generator --generate_all_certificates ./agencyB_node_info
这条命令会根据我们配置的节点信息生成机构B的节点证书和连接信息文件
由于组创建需要创世区块,规定此机构必须要节点证书,我们选择在机构A中进行创建,所以机构B除了复制文件外,还需要复制机构B的两个节点crt文件给机构A
cp -r agencyB_node_info/ …/generator-A/meta/
cp -r agencyB_node_info/cert_10.206.0.14_ …/generator-A/meta/
回到机构A文件夹:cd …/generator-A
修改conf/group_genesis.ini文件
vim conf/group_genesis.ini
结合两个节点证书文件,生成创世区块 :
./generator –create_group_genesis ./group
查看生成创世组区块和组配置文件:
ls group
将group.1.genesis文件拷贝到机构B
cp group/group.1.genesis …/generator-B/meta/
使用–build_install_package生成机构A的节点,第一个实参是放组内其它节点的连接信息,第二个是节点文件的输出目录
./generator --build_install_package ./meta/ ./nodeA
回到机构B:
cd …/generator-B
使用–build_install_package生成机构B的节点,第一个实参是放组内其它节点的连接信息,第二个是节点文件的输出目录
./generator --build_install_package ./meta/ ./nodeB
打包机构B并放入到二号机内
打包:
tar cvf generator-B
在二号机进行解压:
tar xvf
(我这里是用可视化工具手动传输,放到自己想要放到的文件夹内进行解压操作)我这里的地址是在/root/g
9使用落盘加密,加密机构A的节点nodeA
(要加密那个节点就修改那个节点的配置文件,我这里只是做一个示范,后面的操作都是一样的)
我这里使用的centos的系统,如果用别的操作系统请去这里查看对应的下载依赖指令
FISCO-BCOS/key-manager: Key manager for FISCO BCOS
下面的操作我都在/root/g下面进行
下载依赖包:
sudo yum install procps-ng-devel
sudo yum install curl-devel
安装cmake :
sudo yum install -y cmake
拉取工具包并进行构建
git clone .git
去到key-manager并创建build文件夹并去到build文件夹内
cd key-manager && mkdir build && cd build
使用cmake进行构建系统文件
cmake …
如果大家这里编译不了,去看错误日志,提示缺少什么配置就下载什么配置
使用make进行编译构建
make
启动key-manager服务:
./key-manager 8150 12xyz
这里还有一个命令就是
nohup ./key-manager 8150 12xyz > 2>&1 &
如果使用nohup命令就之间将服务挂载到后台了,就可以关闭当前终端
不要关闭当前的终端,我们在去开一个新的终端,进入到/root/g/key-manager的scripts文件夹中
运行以下命令:
bash gen_data_secure_key.sh 127.0.0.1 8150 mima1
最后面的参数为自己要设定的密码
配置dataKey(ps:配置datakey的节点,必须是新生成的,未启动过的节点)要加密那个节点就修改那个节点的config.ini文件
切换回到generator-A文件中,进入到节点目录下:
cd nodeA/node_10.206.0.1_060
修改config.ini文件 vim config.ini
到以下配置,并将前面key-manager生成的datekey填入
切换回key-manager/scripts文件夹,启动脚本对需要加密的节点密钥进行加密
bash encrypt_node_key.sh 127.0.0.1 8150 /root/g/generator-A/nodeA/node_10.206.0.1_060/conf/node.key 1100966220cc567b44c15e946aef7c08
后面的密钥为前面工具生成的datekey
至此机构A中的节点node_10.206.0.1_060已经完成了落盘加密
10启动节点,查看共识
切换到/root/g/generator-A文件夹中,进入到nodeA目录下面 cd nodeA
启动节点:
bash start_all.sh
在二号机内切换到/root/g/generator-B夹中,进入到nodeB目录下面 cd nodeB
启动节点:
bash start_all.sh
检测节点的共识情况,在/root/g/generator-B/nodeB目录下执行以下命令:
tail -f node_10.206.0.14_061/log/log_202412014.07.log | grep +++
切换到一号机检测节点共识,在/root/g/generator-A/nodeA目录下执行以下命令:
tail -f node_10.206.0.1_060/log/log_20241201* | grep +++
至此双机单组多机构的区块链网络已经搭建成功,并且机构A节点node_10.206.0.1_060进行了落盘加密
11机构A扩容节点并加入组1
在上面的操作中,机构A生成了属于自己的机构证书和私钥,并且拥有了组1的创世区块,扩容节点需求进行以下操作
在一号机/root/g目录下
进入到generator-A的目录下,修改conf/node_deployment.ini配置文件
vim conf/node_deployment.ini
机构 | 节点 | 所属组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构A | 节点2 | 组1 | 062 | 20262 | 8577 | 10.206.0.1 |
使用命令生成节点证书和连接信息文件
./generator --generate_all_certificates ./agencyA_node_info_new
查看生成文件:
ls ./agencyA_node_info_new
合并当前节点的文件
因为生成节点的时候要指定节点连接信息为组内其它节点的连接信息,多个机构组网的情况下需要将其合并,所以新增的这个节点要将他们的连接信息都拿到。
cat ./agencyA_node_info/ >> ./meta/
生成新增节点:
./generator --build_install_package ./meta/ ./nodeA_new
查看生成节点配置文件夹:
ls ./nodeA_new
查看新增节点
cat nodeA_new/node_10.206.0.1_062/conf/
启动新增的节点:
bash nodeA_new/start_all.sh
查看节点进程:
ps -ef | grep fisco
使用控制台将新增节点加入组1内,这里我使用了手动配置控制台
下载控制台(我这里将控制台放入到了/root/g/generator-A里面):
curl -#LO [.9.2/download_cole.sh && bash download_cole.sh](.9.2/download_cole.sh && bash download_cole.sh)
下载完成后,要将节点的sdk目录下的、和sdk.key文件拷贝到conf目录下,将conf目录下的文件重命名为文件。
进入cole文件夹下:
cd cole
前面已经在generator生成了机构的sdk证书,拷贝证书到conf目录下
cp …/…/generator/dir_sdk_caA/sdk/ conf
cp …/…/generator/dir_sdk_caA/sdk/sdk.* conf
进入到conf目录下:
cd conf
将conf目录下的文件重命名为文件。
cp -r
修改配置文件,由于我们的现阶段在组1内,所以我们的控制台只需要将机构A节点1的信息填入,就可以访问组内所有节点信息了。
vim
启动控制台:
bash start.sh
使用以下命令,将node节点id添加到组1共识中来(节点id已经在上面获取了)
addSealer c7418a92da2b8cd47850a47167754d549a69df77b59490766fec029b6e90442b5b8fedd06802bae2bc90612b01f0e5eeade2b9819dc6c7b709e197
使用命令查看是否添加共识成功:
getSealerList
退出控制台,查看新增节点是否加入共识
tail -f nodeA_new/node_10.206.0.1_062/log/log_20241201* | grep +++
至此我们在已有机构内新增节点,并加入到组的任务已经完成
12 新增机构C并让机构C和机构B组成组2
在这里面,我们将组2创世区块的操作交给机构C
机构 | 节点 | 所属组 | P2P地址 | RPC监听地址 | Channel监听地址 | ip地址 |
---|---|---|---|---|---|---|
机构C | 节点 | 组2 | 06 | 2026 | 8578 | 10.206.0.14 |
现在还是在一号机内进行操作
进入到/root/g/generator-C目录,修改conf/node_deployment.int文件
vim conf/node_deployment.ini
生成机构C的节点证书和连接信息文件
./generator --generate_all_certificates ./agencyC_node_info
查看生成文件列表:
ls agencyC_node_info/
将拷贝给机构B(注意这里的机构B是在二号机上面的机构B)
PS:我这里进行的拷贝是通过可视化工具直接拖过去的
由于是使用机构C生成创世区块,所以需要机构B的和机构B的节点文件(这里因为是只需要配置文件,所以我们在当前一号机内便可以执行拷贝命令)
cp -r …/generator-B/agencyB_node_info/cert_10.206.0.14_ meta/
cp -r …/generator-B/agencyB_node_info/ meta/
修改机构C中的conf/group_genesis.ini文件:
vim conf/group_genesis.ini
生成组2创世区块文件:
./generator --create_group_genesis ./group
将生成出来的创世区块拷贝给机构B的meta中(这里要拷贝至二号机的机构B内)
生成机构C打包传输到二号机并启动
./generator --build_install_package ./meta/ ./nodeC
tar cvf generator-C
我这里是用来可视化工具直接传过去了
在二号机/root/g进行解压:
tar xvf
进入到加压好的generator-C文件夹下:
cd generator-C
启动节点:
bash nodeC/start_all.sh
还是在二号机内进行操作:
cd …/generator-B
进入机构B使用–add_group 第一个参数选择组2的创世块,第二个参数选择需要加入组的节点目录
./generator --add_group ./meta/group.2.genesis ./nodeB
使用–add_peers ,添加机构C节点连接文件peers至已有节点
./generator --add_peers ./meta/ ./nodeB
重启机构B的节点
bash nodeB/stop_all.sh
bash nodeB/start_all.sh
查看机构B节点是否在两个组进行共识
tail -f nodeB/node_10.206.0.14_061/log/log_20241201* | grep +++
查看机构C节点是否在组2内共识
回到机构C文件夹中查看:
cd …/generator -C
tail -f nodeC/node_10.206.0.14_06/log/log_202412016.4.log | grep +++
至此我们就已经完成了我们所设计的网络拓扑区块链网络结构。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-15,如有侵权请联系 cloudcommunity@tencent 删除加密连接配置运维工具#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 17 条评论) |
本站网友 如何怀孕 | 26分钟前 发表 |
进入到节点目录下: cd nodeA/node_10.206.0.1_060 img修改config.ini文件 vim config.ini到以下配置 | |
本站网友 百洛油 | 4分钟前 发表 |
第二个是节点文件的输出目录 ./generator --build_install_package ./meta/ ./nodeA img回到机构B: cd …/generator-B 使用–build_install_package生成机构B的节点 | |
本站网友 青山二手房 | 29分钟前 发表 |
第一个实参是放组内其它节点的连接信息 | |
本站网友 ts文件播放器 | 18分钟前 发表 |
所以新增的这个节点要将他们的连接信息都拿到 | |
本站网友 激光祛斑美白 | 28分钟前 发表 |
Key manager for FISCO BCOS 下面的操作我都在/root/g下面进行下载依赖包: sudo yum install procps-ng-devel img sudo yum install curl-devel img安装cmake : sudo yum install -y cmake img拉取工具包并进行构建 git clone .git img去到key-manager并创建build文件夹并去到build文件夹内 cd key-manager && mkdir build && cd build img使用cmake进行构建系统文件 cmake … 如果大家这里编译不了 | |
本站网友 威飒 | 2分钟前 发表 |
进入cole文件夹下: cd cole 前面已经在generator生成了机构的sdk证书 | |
本站网友 狂犬病的潜伏期 | 16分钟前 发表 |
所以新增的这个节点要将他们的连接信息都拿到 | |
本站网友 黑帽seo培训 | 14分钟前 发表 |
tar xvf img进入到加压好的generator-C文件夹下: cd generator-C 启动节点: bash nodeC/start_all.sh img还是在二号机内进行操作: cd …/generator-B 进入机构B使用–add_group 第一个参数选择组2的创世块 | |
本站网友 瓦房店美食 | 22分钟前 发表 |
就可以关闭当前终端img不要关闭当前的终端 | |
本站网友 顾江 | 17分钟前 发表 |
vim img启动控制台: bash start.sh img使用以下命令 | |
本站网友 曲阳影都 | 21分钟前 发表 |
启动脚本对需要加密的节点密钥进行加密 bash encrypt_node_key.sh 127.0.0.1 8150 /root/g/generator-A/nodeA/node_10.206.0.1_060/conf/node.key 1100966220cc567b44c15e946aef7c08 后面的密钥为前面工具生成的datekeyimg至此机构A中的节点node_10.206.0.1_060已经完成了落盘加密10启动节点 | |
本站网友 南宁健身房 | 17分钟前 发表 |
本文参与 腾讯云自媒体同步曝光计划 | |
本站网友 百炼成妖 | 23分钟前 发表 |
为机构A节点1做落盘加密为机构A新增节点并加入组1新增机构C节点4新增组2并将机构B和机构C拉入组2img1首先我们要准备两台虚拟机imgimage-2024122617198482为这两台机建立免密连接登录一号机4.17.0.66在任意位置下输入命令: -keygen -t rsa -m PEM 在root目录下的.目录下会生成连接的私钥和公钥img将公钥id_rsa.pub放入到二号机的/root/.目录下的authorized_keys下面image-20241226172022680img配置好后进行连接检测免密连接是否成功输入命令: -o StrictHostKeyChecking=no root@[IP] img下载并安装企业级部署generator工具我这里存放的generator工具是存放路径在/root/g下面 | |
本站网友 乱码翻译器 | 14分钟前 发表 |
还需要复制机构B的两个节点crt文件给机构A cp -r agencyB_node_info/ …/generator-A/meta/ img cp -r agencyB_node_info/cert_10.206.0.14_ …/generator-A/meta/ img回到机构A文件夹:cd …/generator-A修改conf/group_genesis.ini文件 vim conf/group_genesis.ini img结合两个节点证书文件 | |
本站网友 威海金海湾国际饭店 | 0秒前 发表 |
第一个实参是放组内其它节点的连接信息 | |
本站网友 腋毛的作用 | 21分钟前 发表 |
如有侵权请联系 cloudcommunity@tencent 删除前往查看加密连接配置运维工具 |