FISCO BCOS-多服務器部署區(qū)塊鏈(2)-群組擴充新服務器新節(jié)點
由于官方技術文檔中缺乏對新結構新節(jié)點加入已有群組的描述,故整理了這篇文章。
在兩節(jié)點兩機構單群組的區(qū)塊鏈上,擴充新機構新節(jié)點,組網模式如下圖節(jié)點組網拓撲圖。

機器環(huán)境,每個節(jié)點的IP和端口號如下:

一、證書授權機構初始化機構C
1.進入證書生成機構目錄
本次搭鏈的證書生成機構是阿里云1
cd~/generator
2.初始化機構C
此時generator目錄下有鏈證書及私鑰,實際環(huán)境中機構C無法獲取鏈證書及私鑰(那應該怎么處理呢?拋出問題)。
cp -r ~/generator ~/generator-C
3.生成機構C證書
./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyC

4.查看機構證書及私鑰
ls dir_agency_ca/agencyC/

上圖中,從左至右分別為機構證書、機構私鑰、鏈證書
5.發(fā)送機構證書、機構私鑰、鏈證書給機構C。
cp ./dir_agency_ca/agencyC/* ~/generator-C/meta/
二、機構C生成節(jié)點
1.進入生成機構C目錄
cd~/generator-C
2.機構C修改配置文件
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=127.0.0.1
; 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=127.0.0.1
channel_ip=0.0.0.0
p2p_listen_port=30302
channel_listen_port=20202
jsonrpc_listen_port=8547
EOF
2.1?查看配置文件內容
vim./conf/node_deployment.ini
3.機構A發(fā)送節(jié)點連接地址文件及群組1創(chuàng)世區(qū)塊給機構C
3.1 A機構需要將節(jié)點P2P鏈接地址文件發(fā)送至機構C
(因為機構生成節(jié)點時需要指定其他節(jié)點的節(jié)點P2P連接地址)
cd~/generator-A
cp ./agencyA_node_info/peers.txt ~/generator-C/meta/peersA.txt
3.2 分發(fā)群組1創(chuàng)世區(qū)塊至機構C
cp ./group/group.1.genesis ~/generator-C/meta
4.機構C生成并發(fā)送節(jié)點信息
4.1?進入生成機構C目錄
cd~/generator-C
4.2?機構C生成節(jié)點證書及P2P連接信息文件
./generator --generate_all_certificates ./agencyC_node_info

4.3?機構C發(fā)送節(jié)點證書給機構A
cp ./agencyC_node_info/cert*.crt ~/generator-A/meta/
4.4?機構C發(fā)送P2P連接地址文件給機構A
cp ./agencyC_node_info/peers.txt ~/generator-A/meta/peersC.txt
5.機構C生成所屬節(jié)點
5.1?進入生成機構C目錄
cd~/generator-C
5.2?生成節(jié)點C
./generator --build_install_package ./meta/peersA.txt ./nodeC

5.3?機構C啟動節(jié)點
bash ./nodeC/start_all.sh

5.4?查看節(jié)點進程
ps -ef|grep fisco

三、機構C節(jié)點加入群組1
1.發(fā)送群組1創(chuàng)世區(qū)塊給機構C
1.1 進入生成機構A目錄
cd~/generator-A
1.2?發(fā)送群組1創(chuàng)世區(qū)塊給機構C
./generator --add_group ./group/group.1.genesis ~/generator-C/nodeC
1.3 重啟機構C節(jié)點
cd~/generator-C
bash ./nodeC/stop_all.sh
bash ./nodeC/start_all.sh

四、配置及使用控制臺
因為將節(jié)點加入已有群組需要用戶使用控制臺發(fā)送指令,將節(jié)點加入群組。
1.安裝java
sudo apt install -y default-jdk

2.下載控制臺配置文件
2.1?進入生成機構A目錄
cd~/generator-A
2.2 拉取控制臺
./generator --download_console ./ --cdn

3.查看機構C節(jié)點信息
由于機構A使用控制臺加入機構C節(jié)點4為觀察節(jié)點,其中參數第二項需要替換為加入節(jié)點的nodeid,nodeid在節(jié)點文件夾的conf的node.nodeid文件
cat ~/generator-C/nodeC/node_127.0.0.1_30302/conf/node.nodeid

4.啟動控制臺
cd~/generator-A/console&&bash ./start.sh1

5.使用控制臺將機構C節(jié)點注冊為觀察節(jié)點
addObserverf8d449eae86cc17f9f5adeb895e9db68d1bf8aa41511619a690b3897d65dbd97147ccfe000458697e4b361dfb4f27f6f01d7e8d2dcf22c7107998b431c48866f
其中,是3查看出來的機構C節(jié)點信息

6.使用控制臺將機構C節(jié)點注冊為共識節(jié)點
addSealerf8d449eae86cc17f9f5adeb895e9db68d1bf8aa41511619a690b3897d65dbd97147ccfe000458697e4b361dfb4f27f6f01d7e8d2dcf22c7107998b431c48866f

7.利用控制臺查看共識節(jié)點信息
getSealerList

8.推送機構C文件夾給阿里云服務器3即可
至此,就完成了新服務器生成新節(jié)點并加入已有群組的完整步驟??!