FISCO BCOS多机部署之单群组双机构双节点组网模式

今天凌晨交的POC,现在复现完组网过程就可以碎觉了,emm~


0.需求分析

有两台服务器,狗子哥说每台服务器一个节点。那么每台机子下一个机构生成一个节点,两个连一块,即:双机构双节点单群组。
这样就不能使用官方的一键螺旋快乐飞天脚本了:
在这里插入图片描述
使用generator运维部署工具,
于是就出现了问题(基地爆炸,问题不大)。


1.下载安装运维部署工具

这里假设机子上什么都没有,因为使用源码编译客户端的用户不用最后一步

下载

cd ~/ && git clone https://github.com/FISCO-BCOS/generator.git
Copy to clipboard

安装(此操作要求用户具有sudo权限)

cd ~/generator && bash ./scripts/install.sh
Copy to clipboard

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

./generator -h

获取节点二进制
拉取最新fisco-bcos二进制文件到meta中

./generator --download_fisco ./meta

检查二进制版本
若成功,输出 FISCO-BCOS Version : x.x.x-x

./meta/fisco-bcos -v

这里遇到的问题是,二进制文件拉取贼慢。
然后我再本机把generator克隆下来,发现是:
在这里插入图片描述
工具类的download_fisco函数这里卡主了。没有cdn的朋友可以vim修改下这个url为:

https://xiaoyue-blog.oss-cn-hangzhou.aliyuncs.com/fisco-bcos.tar.gz

这是我的OSS,开放给大家使用轻点敲啊。

一秒不到就下完了。然后这个就是装好了:
在这里插入图片描述


2.联盟链初始化

来康康拓扑图:
在这里插入图片描述
因为官方教程是在一个机子上配的,是节点1,2。分起来的话实际上没有1,2之分的。因为是在两台机子上,也不会存在端口冲突的情况。如果端口没有打开可能会报错,这边建议把两台机子添加白名单就行了。详情可参考:FSICO BCOS多机部署之端口开放

机构节点rpc端口channel端口p2p端口
机构A节点185452020030300
机构B节点285452020030300

2.1 机构初始化

#初始化机构AB

cd ~/generator
cp -r ~/generator ~/generator-A
cp -r ~/generator ~/generator-B

2.2 链初始化

#生成链证书ca.crt&链私钥ca.key

./generator --generate_chain_certificate ./dir_chain_ca

链证书和链私钥在./dir_chain_ca


3.构建群组

3.1 初始化机构A

#生成机构A的证书

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

#证书授权机构将机构证书发送给机构,机构放到meta目录下面

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

3.2 初始化机构B

#生成机构B的证书

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

#证书授权机构将机构证书发送给机构,机构放到meta目录下面

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

3.3 机构A修改配置文件

#进入机构A修改node_deployment.ini节点配置文件、生成节点配置文件夹。

cd ~/generator-A
cat > ./conf/node_deployment.ini<<EOF
[group]
group_id=1
[node0]
; host ip for the communication among peers.
; Please use your ssh login ip.
p2p_ip=you_ip
; listen ip for the communication between sdk clients.
; This ip is the same as p2p_ip for 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 seehttps://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=0.0.0.0
channel_ip=0.0.0.0
p2p_listen_port=30300
channel_listen_port=20200
jsonrpc_listen_port=8545
EOF

3.4 机构B修改配置文件

#进入机构B修改node_deployment.ini节点配置文件、生成节点配置文件夹。

cd ~/generator-B
cat > ./conf/node_deployment.ini<<EOF
[group]
group_id=1
[node0]
; host ip for the communication among peers.
; Please use your ssh login ip.
p2p_ip=you_ip_B
; listen ip for the communication between sdk clients.
; This ip is the same as p2p_ip for 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 seehttps://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=0.0.0.0
channel_ip=0.0.0.0
p2p_listen_port=30300
channel_listen_port=20200
jsonrpc_listen_port=8545
EOF

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

#生成机构A节点证书和P2P连接地址文件,根据上面修改的node_depoyment.ini生成

cd ~/generator-A
./generator --generate_all_certificates ./agencyA_node_info

#机构生成节点时需要指定其他节点的P2P连接地址,这里A机构把P2P连接机构发送给了B机构

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

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

#生成机构A节点证书和P2P连接地址文件,根据上面修改的node_depoyment.ini生成

cd ~/generator-B
./generator --generate_all_certificates ./agencyB_node_info

#因为需要生成创世区块,规定此机构必须要节点证书。B机构除了要发送P2P连接地址之外还要发送节点证书。

cp ./agencyB_node_info/cert*.crt ~/generator-A/meta/
cp ./agencyB_node_info/peers.txt ~/generator-A/meta/peersB.txt

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

#来生成创世区块。这里实际可以通过协商由那个机构生成,不一定是A。

cd ~/generator-A
cat > ./conf/group_genesis.ini<< EOF
[group]
group_id=1
;i am xiaoyue
;my blog-s cnmf.net.cn 
;yea i love you~
[nodes]
node0=you_ip:30300
node1=you_ip_b:30300
EOF
./generator --create_group_genesis ./group

#把group1的创世区块发送给B机构

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

3.8 机构A生成所属节点

#生成机构A的节点

cd ~/generator-A
./generator --build_install_package ./meta/peersB.txt ./nodeA

#启动节点

bash ./nodeA/start_all.sh

上面有两个需要注意的地方:
1.在生产节点配置文件和创世区块配置文件时端口一致是没问题的,因为我不在一台机子上做测试,不会存在端口冲突的情况。但这样在复制B机构到B机子上的时候跑不起来就很尴尬。
2.rpc的ip默认是127.0.0.1,如果硬要开启的话会报警告:
在这里插入图片描述
如果非要开启rpc测试的话,也可以参照上面说的开启防火墙ip白名单。


4.B机构转移并生成节点

压缩:tar cvf B.tar generator-B
解压:tar xvf B.tar
然后上传下载操作

4.1 生成&启动节点:

./generator --build_install_package ./meta/peersA.txt ./nodeB
Copy to clipboard

机构B启动节点:

bash ./nodeB/start_all.sh

Z.查看共识状态

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

正确回显如下:
在这里插入图片描述
这里还有一个问题。就是上面说的对自己自信不进行测试,导致ip输错了导致共识失败,这时候是没有回显的。把后面的正则删掉就行了。能看到日志报错,通过报错去找不能共识的原因。


广告墙
在这里插入图片描述

参考:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/enterprise_tools/tutorial_detail_operation.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FISCO BCOS是一个基于联盟链技术的企业级区块链平台。通过FISCO BCOS,可以搭建单一群组FISCO BCOS链联盟。 首先,要搭建FISCO BCOS链联盟,需要进行以下几个步骤。 第一步,准备环境。搭建FISCO BCOS链联盟需要一台可用的服务器,可以选择云服务器或物理服务器。同时,需要安装和配置必要的软件和环境,包括操作系统、Java开发环境、MySQL数据库等。 第二步,下载FISCO BCOS源代码。可以从FISCO BCOS官方网站下载最新版的FISCO BCOS源代码,并解压到服务器上的指定目录。 第三步,配置节点参数。进入解压后的FISCO BCOS源代码目录,修改config目录下的节点配置文件,配置节点的IP地址、端口号、节点类型等信息。 第四步,生成节点证书。在源代码目录下的nodes目录中,使用FISCO BCOS提供的脚本工具生成节点的证书和私钥。 第五步,初始化创世块。在源代码目录下,使用FISCO BCOS提供的脚本工具初始化创世块,并设置相关的参数,如创世节点的账户余额、链 ID、共识算法等。 第六步,启动节点。进入源代码目录下的script目录,执行启动节点的脚本命令,启动FISCO BCOS链联盟的节点。 通过以上步骤,就可以成功搭建单一群组FISCO BCOS链联盟。在链联盟中,各个节点可以进行交易和通信,实现数据的共享和验证。需要注意的是,在搭建和操作FISCO BCOS链联盟时,要确保网络安全和相应的权限控制,保护链上数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值