fisco-bcos 动态添加节点

内容来源:https://www.bookstack.cn/read/fisco-bcos-v2.0/6dc4349ee2a1c481.md

新增节点步骤:

1 . 进入nodes同级目录,在该目录下拉取并执行gen_node_cert.sh生成节点目录,目录名以node4为例,node4内有conf/目录;

# 获取脚本
$ curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/gen_node_cert.sh && chmod u+x gen_node_cert.sh
# 执行,-c为生成节点所提供的ca路径,agency为机构名,-o为将生成的节点目录名
$ ./gen_node_cert.sh -c nodes/cert/agency -o node4

2 . 拷贝node4到nodes/127.0.0.1/下,与其他节点目录(node0node1)同级;

$ cp -r ./node4/ nodes/127.0.0.1/

3 . 进入nodes/127.0.0.1/,拷贝node0/config.ininode0/start.shnode0/stop.sh到node2目录;

$ cd nodes/127.0.0.1/
$ cp node0/config.ini node0/start.sh node0/stop.sh node4/

4 . 修改node2/config.ini。对于[rpc]模块,修改listen_ipchannel_listen_portjsonrpc_listen_port;对于[p2p]模块,修改listen_port并在node.中增加自身节点信息;

$ vim node4/config.ini
[rpc]
    channel_listen_ip=0.0.0.0
    channel_listen_port=20204
    jsonrpc_listen_ip=127.0.0.1
    jsonrpc_listen_port=8549
[p2p]
    listen_ip=0.0.0.0
    listen_port=30304
    ; nodes to connect
    node.0=127.0.0.1:30300
    node.1=127.0.0.1:30301
    node.2=127.0.0.1:30302
    node.3=127.0.0.1:30303
    node.4=127.0.0.1:30304

5 . 节点4拷贝节点1的node1/conf/group.1.genesis(内含群组节点初始列表)和node1/conf/group.1.ininode4/conf目录下,不需改动;

$ cp node1/conf/group.1.genesis node4/conf/ 
$ cp node1/conf/group.1.ini node4/conf/

如果node1 设置为mysql数据库存储,需修改  group.1.ini 数据库中的 “db_name”

6 . 执行node4/start.sh启动节点3;

$ ./node2/start.sh

7 . 确认节点3与节点1和节点2的连接已经建立,加入网络操作完成

$ tail -f node2/log/log*  | grep P2P
debug|2019-02-21 10:30:18.694258| [P2P][Service] heartBeat ignore connected,endpoint=127.0.0.1:30400,nodeID=b231b309...
debug|2019-02-21 10:30:18.694277| [P2P][Service] heartBeat ignore connected,endpoint=127.0.0.1:30401,nodeID=aab37e73...
info|2019-02-21 10:30:18.694294| [P2P][Service] heartBeat connected count,size=2

此时如果该节点为游离节点,需手动添加为共识节点

新增节点nodeId可在 “node4/conf/node.nodeid” 查看

cat nodes/127.0.0.1/node4/conf/node.nodeid

通过console操作如下:

cd ~/fisco/console && bash start.sh

addObserver {nodeId}

节点退出网络步骤:

1 . 对于节点4,将自身的P2P节点连接列表内容清空,重启节点4

2 . 对于节点0到节点3,将节点4从自身的P2P节点连接列表中移除(如有),重启这些节点;

3 . 确认节点4与节点0到3的原有连接已经断开,退出网络操作完成。

原文地址:https://www.cnblogs.com/luyilan/p/15193148.html