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的原有连接已经断开,退出网络操作完成。

 

posted @   路易蓝  阅读(610)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示