长安链组织和节点管理
长安链组织管理
长安链组织管理包括如下接口:
添加组织根证书:添加一个组织的根证书,每个组织可以有多个不重复的根证书。
更新组织根证书:更新某个组织的根证书,更新根证书之前,需保证该组织没有参与共识,即chainconfig的consensus.node中不包含该组织的名称。
删除组织根证书:删除某个组织的所有根证书,删除根证书之前,需保证该组织没有参与共识。
命令行发送交易参考:添加组织根证书
节点管理
节点简介
ChainMaker区块链网络中有三类节点 共识节点
同步节点
轻节点
下面详细介绍各类型节点的管理操作。
也可使用 SDK 开发自定义管理工具。
目录
共识节点
加入网络
BFT类(TBFT、Maxbft)共识、RAFT共识
关于新增节点的具体操作示例,参考构造新节点加入网络
如果新增共识节点所属的组织根证书不存在与区块链网络中,那么请先参考证书管理获得证书后,从第1步开始。
以创建新组织wx-org5.chainmaker.org为例,具体步骤如下:
2.准备物料包,启动节点程序,等待节点同步至最新高度区块
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. 通过日志观察节点同步的区块高度 $ cd build/release/chainmaker-v2.0.0-wx-org5.chainmaker.org/log $ tail -f system.log | grep "commit block \["
DPoS 共识
因为【Chainmaker v1.2.0+】的DPoS基于证书体系构建的,所以,当添加新的共识节点时,需要先使用命令将新节点添加到证书体系中。
如果新增节点已经添加到链上的证书体系,请从第3步开始。
具体步骤如下:
2.准备物料包,启动节点程序,等待节点同步至最新高度区块(具体操作见上节)
退出网络
BFT类(TBFT、Maxbft)共识、RAFT共识
具体步骤如下:
2.停止节点程序
$ kill -15 <节点程序pid>
*注
退出网络时,如果要删除组织根证书,则必须先删除共识节点,才能删除组织根证书。
DPoS共识
2.查询验证人数据
4.停止节点程序
$ kill -15 <节点程序pid>
更新共识节点的 NodeID
使用cmc更新共识节点的 NodeID 后,无需重启节点程序。
具体步骤如下:
同步节点
开始同步
以为组织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
停止同步
停止节点程序即可停止同步。
具体步骤如下:
1.停止节点程序
$ kill -15 <节点程序pid>
链配置
ChainMaker区块链网络在部署并启动完成后,使用 cmc 命令行工具进行链配置的查询、更新。
也可以使用 SDK 开发自定义客户端进行链配置的相关操作。