4. 节点管理
4.1. 简介
ChainMaker区块链网络中有三类节点 共识节点
同步节点
轻节点
下面详细介绍各类型节点的管理操作。
也可使用 SDK 开发自定义管理工具。
4.2. 目录
4.2.1. 共识节点
4.2.1.1. 加入网络
4.2.1.1.1. BFT类(TBFT、HotStuff)共识、RAFT共识
如果新增共识节点所属的组织根证书不存在与区块链网络中,那么请先参考证书管理获得证书后,从第1步开始。
以创建新组织wx-org5.chainmaker.org为例,具体步骤如下:
3.启动节点程序
1. 复制部署包 $ cd build/release $ cp -rf chainmaker-v2.0.0-wx-org1.chainmaker.org chainmaker-v2.0.0-wx-org5.chainmaker.org 2. 把chainmaker-v2.0.0-wx-org5.chainmaker.org/bin下所有的.sh脚本中所有wx-org1.chainmaker.org替换为wx-org5.chainmaker.org 3. 重命名 $ cd build/release/chainmaker-v2.0.0-wx-org5.chainmaker.org/config $ mv wx-org1.chainmaker.org wx-org5.chainmaker.org 4. 使用chainmaker-cryptogen生成的wx-org5.chainmaker.org下的node和user分别覆盖掉chainmaker-v2.0.0-wx-org5.chainmaker.org/config/wx-org5.chainmaker.org/certs下的node和user 5. 修改chainmaker.yml 把chainmaker-v2.0.0-wx-org5.chainmaker.org/config/wx-org5.chainmaker.org/chainmaker.yml中所有wx-org1.chainmaker.org替换为wx-org5.chainmaker.org 修改net模块,把 listen_addr: /ip4/0.0.0.0/tcp/11301 修改为 listen_addr: /ip4/0.0.0.0/tcp/11305 修改rpc模块,把 port: 12301 修改为 port: 12305 修改monitor模块,把 port: 14321 修改为 port: 14325 修改pprof模块,把 port: 24321 修改为 port: 24325 6. 修改chainmaker-v2.0.0-wx-org5.chainmaker.org/config/wx-org5.chainmaker.org/chainconfig/bc1.yml中的trust_roots模块。 把所有 ../config/wx-org1.chainmaker.org 修改为 ../config/wx-org5.chainmaker.org 7. 启动节点 $ cd build/release/chainmaker-v2.0.0-wx-org5.chainmaker.org/bin $ ./start.sh 8. End
4.2.1.1.2. DPoS 共识
因为【Chainmaker v1.2.0+】的DPoS基于证书体系构建的,所以,当添加新的共识节点时,需要先使用命令将新节点添加到证书体系中。
如果新增节点已经添加到链上的证书体系,请从第3步开始。
具体步骤如下:
9.启动节点程序
$ chainmaker start -c /path/to/chainmaker.yml
4.2.1.2. 退出网络
4.2.1.2.1. BFT类(TBFT、HotStuff)共识、RAFT共识
具体步骤如下:
2.停止节点程序
$ kill -15 <节点程序pid>
*注
退出网络时,如果要删除组织根证书,则必须先删除共识节点,才能删除组织根证书。
4.2.1.2.2. DPoS共识
2.查询验证人数据
4.停止节点程序
$ kill -15 <节点程序pid>
4.2.1.3. 更新共识节点的 NodeID
使用cmc更新共识节点的 NodeID 后,无需重启节点程序。
具体步骤如下:
4.2.2. 同步节点
4.2.2.1. 开始同步
以为组织wx-org1.chainmaker.org新增一个同步节点为例,具体步骤如下:
1.生成同步节点的证书 通过 chainmaker-cryptogen 或者自建的 CA证书服务 生成同步节点证书
2.启动节点程序
1. 复制部署包 $ cd build/release $ cp -rf chainmaker-v2.0.0-wx-org1.chainmaker.org chainmaker-v2.0.0-wx-org1.chainmaker.org_common2 2. 把chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/bin下所有的.sh脚本中所有wx-org1.chainmaker.org替换为wx-org1.chainmaker.org_common2 3. 重命名 $ cd build/release/chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config $ mv wx-org1.chainmaker.org wx-org1.chainmaker.org_common2 4. 拷贝chainmaker-cryptogen扩展生成的crypto-config/wx-org1.chainmaker.org/node/common2 到 chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config/wx-org1.chainmaker.org_common2/certs/node下 5. 修改chainmaker.yml 把chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config/wx-org1.chainmaker.org_common2/chainmaker.yml中所有路径中包含的wx-org1.chainmaker.org替换为wx-org1.chainmaker.org_common2 修改node模块,把 certs/node/consensus1/consensus1.sign.key 修改为 certs/node/common2/common2.sign.key 修改node模块,把 certs/node/consensus1/consensus1.sign.crt 修改为 certs/node/common2/common2.sign.crt 修改net模块,把 certs/node/consensus1/consensus1.tls.key 修改为 certs/node/common2/common2.tls.key 修改net模块,把 certs/node/consensus1/consensus1.tls.crt 修改为 certs/node/common2/common2.tls.crt 修改net模块,把 listen_addr: /ip4/0.0.0.0/tcp/11301 修改为 listen_addr: /ip4/0.0.0.0/tcp/11306 修改rpc模块,把 port: 12301 修改为 port: 12306 修改monitor模块,把 port: 14321 修改为 port: 14326 修改pprof模块,把 port: 24321 修改为 port: 24326 6. 修改chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/config/wx-org1.chainmaker.org_common2/chainconfig/bc1.yml中的trust_roots模块。 把所有 ../config/wx-org1.chainmaker.org 修改为 ../config/wx-org1.chainmaker.org_common2 7. 启动节点 $ cd build/release/chainmaker-v2.0.0-wx-org1.chainmaker.org_common2/bin $ ./start.sh 8. End
4.2.2.2. 停止同步
停止节点程序即可停止同步。
具体步骤如下:
1.停止节点程序
$ kill -15 <节点程序pid>
4.2.3. 链配置
ChainMaker区块链网络在部署并启动完成后,使用 cmc 命令行工具进行链配置的查询、更新。
也可以使用 SDK 开发自定义客户端进行链配置的相关操作。