实验环境

两台centos7机器(虚拟机和远程服务器都可以)

  • 192.168.80.144

  • 192.168.80.145

java1.8

搭建多机多群FISCO BCOS链

为了检测实验,我们计划搭建两个机构A和B,一个机构4节点一个机构5节点,一共两个群组,A和B均在这两个群组里,呈现一种嵌套的结构。

我将192.168.80.144 作为机构A, 192.168.80.145机器作为机构B

如图,这是我们的拓扑图(嵌套结构)

部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_公众号

给两台机构机器安装依赖

sudo yum install -y openssl openssl-devel

部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_群组_02

创建实验文件夹

首先,我们给两台机器都创建一个操作目录 (比如:~/fisco)

创建操作目录

cd ~ && mkdir -p fisco &&cd fisco

部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_html_03
选择一台机器下载安装脚本(build_chain.sh)

这里我们选择机构A(192.168.80.144)下载我们的安装脚本

## 下载脚本
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.7.1/build_chain.sh && chmod u+x build_chain.sh

创建~/fisco/ipconf文件
ipconf文件写入以下内容 —— (多机构多群组5+4节点联盟链)

192.168.80.144:5 A 1,2 30300,20200,8545
192.168.80.145:4 B 1,2 30300,20200,8545

注意:ipconf文件内不允许存在任何多余的回车。
格式说明:
​ip:节点数(当前ip/机构下共有几个节点) 机构名 群组 p2p端口,channel端口,rpc端口

开始搭建多机多群组联盟链

bash build_chain.sh -f ipconf -T

此时 fisco文件夹下会多出个nodes文件夹
部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_html_04

将nodes/192.168.80.145目录复制到机构B机器(192.168.80.145)的~/fisco/下

scp -r 192.168.80.145 root@192.168.80.145:/root/fisco/192.168.80.145

部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_群组_05

启动所有节点

机构A进入 ~/fisco/nodes/192.168.80.144 目录,执行./start_all.sh

同时机构B进入 ~/fisco/nodes/192.168.80.145 目录,执行 ./start_all.sh

部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_区块链_06

检测是否搭建成功(检测节点之间是否实现共识)
部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_FISCO BCOS_07

如果有内容则表示成功达成共识,既节点搭建成功。

总结

内存分配问题

节点搭建成功了,但是异常退出,并且在log文件里找不到报警内容的时候,这个情况就很有可能是内存太小导致的原因。

推荐内存配置 节点数/1G
部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_群组_08

我搭建的示例并不是一个规范的示范

在进行多机部署的时候,首先要确保的一点是 —— 单个机构掌握的节点数,应该低于共识算法可容错的数量。我部署了9个节点,只能容忍2个拜占庭节点,所以每个机构下只能有一个节点。这样可以避免机构内部强行修改自己掌握的节点数据,或一个机构的所有节点都意外出错、掉线(比如机房光纤都被挖断了),导致链无法出块。

此处可以参考:

https://mp.weixin.qq.com/s/xt-hRDAkUCCnrodwMkFjnw

更多总结。。。

 

我们的公众号平台 — (湖师区块人)

欢迎各位大大关注我们湖州师范区块链协会的公众号(湖师区块人),我们会在这里不定期推送区块链相关的“精神食粮”。
部署多机多群FISCO BCOS链 | FISCO BCOS开发系列(一)_html_09