普通节点增删
增加节点
默认创建4个节点,需增加第5个节点(普通节点)参考下列指令
./env.sh ./scripts/create_cita_config.py append --chain_name "test-chain" --node "127.0.0.1:4004"
#添加新节点(普通节点),设置新端口号
/env.sh ./bin/cita setup test-chain/4
#初始化新节点配置文件
/daemon.sh ./bin/cita start test-chain/4
#启动新节点(普通节点)
检查新增节点的工作状态
检查服务进程
netstat -nutlp | grep 'cita-network'
#查看 Network 微服务进程端口号4004
netstat -nutlp | grep 'cita-jsonrpc'
#查看 RPC 微服务进程端口号1341
新增节点后检查 CITA 服务状态
curl -s -X POST --data '{"jsonrpc":"2.0","method":"peerCount","params":[],"id":1}' 127.0.0.1:1337 | python -m json.tool
#查看 CITA 节点总数量
Tips:
在单台主机部署4个共识节点的环境中,在该主机上新增普通节点后,新节点的数据会更新到所有共识节点的 network 微服务配置文件中,所以通过任何节点的 RPC 接口去查询节点数量都会增加;
普通节点在 CITA 服务中仅同步共识节点的数据,并不参与共识计算;所以只需要在任意一台共识节点的 network 微服务配置文件中添加普通节点的信息即可实现数据同步,但是仅可以在添加普通节点信息的共识节点 RPC 接口查询中看到节点数量增加;
curl -s -X POST --data '{"jsonrpc":"2.0","method":"blockNumber","params":[],"id":1}' 127.0.0.1:1337 | python -m json.tool
#查看共识节点的区块高度
curl -s -X POST --data '{"jsonrpc":"2.0","method":"blockNumber","params":[],"id":1}' 127.0.0.1:1341 | python -m json.tool
#查看普通节点的区块高度,由于所有节点需要区块高度一致,所以新增节点将会通过 P2P 网络同步旧的数据信息;
Tips:
普通节点仅同步区块数据,所以在 CITA 服务中,并不参与投票,此信息可在节点配置目录下的logs/cita-bft.log
文件来核实;
新节点将会同步共识节点的数据,所以在刚开始查看新节点的区块高度时,会快速增长,直到数据同步完成后才会恢复正常的增长速度;
停止节点
./daemon.sh ./bin/cita stop test-chain/4
删除节点
进入到所有添加了新节点配置信息的共识节点文件目录下,找到 Network 微服务的network.toml
文件,删除新增节点peers
条目即可,例如:
vim network.toml
#删除下列参数后保存退出:
[[peers]]
id_card = 4
ip = "127.0.0.1"
port = 4004
Tips:
- CITA中节点分为 普通节点 和 共识节点,普通节点可以通过修改各节点的配置
network.toml
停止通讯,共识节点需要管理员调用deleteNode(address)
合约方法删除。 - 修改 network.toml 文件后 CITA的 cita-network 微服务会自动重新加载,不需要重启整个 CITA 服务。
很感谢您能够看到这里,如果文中的内容有描述不当,请您在本章节下方指出,我会尽快修改;