应用链管理
中继链支持对应用链的管理,包括注册、更新、冻结、注销应用链等功能。
1. 应用链注册
1.1 命令
对于需要加入跨链网络使用中继链进行跨链的应用链,需要首先由应用链管理员向中继链注册应用链,命令如下:
pier [--repo <repository>] appchain register --name <appchain name> --type <appchain type> --desc <description> --version <appchain version> --validators <path of appchain validators file> --consensusType <appchain consensus type> [--addr <bitxhub node address>]
- --repo:可选参数,指定pier配置文件所在目录,如果不指定,默认使用$HOME/.pier目录。
- --name:必选参数,指定应用链名称。
- --type:必选参数,指定应用链类型,如hyperchain、fabric等。
- --desc:必选参数,对应用链的描述信息。
- --version:必选参数,指定应用链版本信息。
- --validators:必选参数,指定应用链的验证人信息所在的文件路径。
- --consensusType:必选参数,指定p应用链的共识类型,如rbft、raft等。
- --addr:可选参数,指定要连接的中继链节点地址,如果不指定,默认使用$repo目录下pier.toml中指定的BitXHub节点地址。
该命令向中继链发送一笔应用链注册的交易,中继链以交易的from(即当前pier公钥的地址)作为应用链的ID,生成一个应用链注册的提案。
中继链管理员需要对提案进行投票,命令如下:
bitxhub [--repo <repository>] client governance vote --id <proposal id> --info <voting information> --reason <reason to vote>
- --repo:可选参数,指定bitxhub节点配置文件所在目录,如果不指定,默认使用$HOME/.bitxhub目录。
- --id:必选参数,指定提案id。
- --info:必选参数,指定投票信息,approve或者reject。
- --reason:必选参数,指定投票的原因。
1.2 举例
比如进行fabric应用链的注册,命令执行如下:
$ pier appchain register --name chainA --type fabric --desc chainA-desc --version 1.4.3 --validators config/fabric.validators --consensusType raft
INFO[11:01:25.884] Establish connection with bitxhub localhost:60011 successfully module=rpcx
the register request was submitted successfully, chain id is 0x8D093dd84717042b23546cdA396cEBB2F48D8442, proposal id is 0x8D093dd84717042b23546cdA396cEBB2F48D8442-0
如管理员对该提案审核后,认为该应用链提交对信息无误,投票通过,命令执行如下:
$ bitxhub --repo ./scripts/build/node1 client governance vote --id 0x8D093dd84717042b23546cdA396cEBB2F48D8442-0 --info approve --reason "fabric appchain register"
vote successfully!
$ bitxhub --repo ./scripts/build/node2 client governance vote --id 0x8D093dd84717042b23546cdA396cEBB2F48D8442-0 --info approve --reason "fabric appchain register"
vote successfully!
$ bitxhub --repo ./scripts/build/node3 client governance vote --id 0x8D093dd84717042b23546cdA396cEBB2F48D8442-0 --info approve --reason "fabric appchain register"
vote successfully!
$ bitxhub --repo ./scripts/build/node1 client governance proposals --id 0x8D093dd84717042b23546cdA396cEBB2F48D8442-0
Id Type Status ApproveNum RejectNum ElectorateNum ThresholdNum Des
-- ---- ------ ---------- --------- ------------- ------------ ---
0x8D093dd84717042b23546cdA396cEBB2F48D8442-0 AppchainMgr approve 3 0 4 3 register
2. 更新应用链
2.1 命令
如果应用链发生了更改,比如验证人信息发生了变化,需要更新其在中继链上的应用链信息。命令如下:
pier --repo <repository> appchain update --name <appchain name> --type <appchain type> --desc <description> --version <appchain version> --validators <path of appchain validators file> --consensusType <appchain consensus type> --addr <bitxhub node address>
该命令参数含义与应用链注册命令的参数一致,不再赘述。
2.2 举例
比如进行fabric应用链的验证人信息发生变化,需要更新应用链,命令执行如下:
$ pier appchain update --name chainA --type fabric --desc chainA-desc --version 1.4.3 --validators config/fabric-new.validators --consensusType raft
INFO[11:01:25.884] Establish connection with bitxhub localhost:60011 successfully module=rpcx
the update request was submitted successfully, proposal id is 0x8D093dd84717042b23546cdA396cEBB2F48D8442-1
管理员进行审核并投票,与注册应用链部分一致,不再赘述。
3. 冻结应用链
3.1 命令
如果应用链出现问题,应用链管理员可以申请冻结应用链。命令如下:
pier --repo <repository> appchain freeze
3.2 举例
比如对之前已经注册过的应用链进行冻结,命令执行如下:
$ pier appchain freeze
INFO[11:01:25.884] Establish connection with bitxhub localhost:60011 successfully module=rpcx
the freeze request was submitted successfully, proposal id is 0x8D093dd84717042b23546cdA396cEBB2F48D8442-2
管理员进行审核并投票,与注册应用链部分一致,不再赘述。
4. 激活应用链
4.1 命令
如果冻结的应用链恢复正常,应用链管理员可以申请激活应用链。命令如下:
pier --repo <repository> appchain activate
4.2 举例
比如对之前已经冻结的应用链进行激活,命令执行如下:
$ pier appchain freeze
INFO[11:01:25.884] Establish connection with bitxhub localhost:60011 successfully module=rpcx
the activate request was submitted successfully, proposal id is 0x8D093dd84717042b23546cdA396cEBB2F48D8442-3
管理员进行审核并投票,与注册应用链部分一致,不再赘述。
5. 注销应用链
5.1 命令
如果应用链退出跨链系统,不再进行跨链,应用链管理员可以向中继链提交注销应用链的提案。命令如下:
pier --repo <repository> appchain logout
5.2 举例
比如对之前激活的应用链进行注销,命令执行如下:
$ pier appchain logout
INFO[11:01:25.884] Establish connection with bitxhub localhost:60011 successfully module=rpcx
the logout request was submitted successfully, proposal id is 0x8D093dd84717042b23546cdA396cEBB2F48D8442-4
管理员进行审核并投票,与注册应用链部分一致,不再赘述。