平行链节点包括授权节点与非授权节点,相较于非授权节点,授权节点拥有更多的特权,例如,授权节点可以参与平行链交易的共识过程。
现有主链-平行链共识机制中,授权节点的申请管理比较单一,需要主链的超级用户审批。例如,平行链非授权节点a想要申请成为授权节点,或平行链授权节点b想要申请退出授权节点,都需要经过超级用户审批,授权节点的更新非常不灵活。
为了提升授权节点更新的灵活性,chain33提供了三种平行链自主管理授权的方法。
方法一:官方授权方案
1、平行链在创建之前向主链发起申请备案,申请的账户作为授权账户,申请账户需要在主链上冻结保证金。
2、平行链创建之后,主链超级管理员账户分别在主链和平行链发起创建交易,创建授权节点账户组。
3、新授权账户提出申请,冻结保证金。
4、初始授权节点账户组通过交易的方式对当前新增加授权账户的申请发出同意或拒绝投票,超过2/3初始授权账户同意才可加入,反之,超过2/3授权账户拒绝则不可加入,申请失败。
以如下例子为例。
在1中:用户甲请求创建平行链M,平行链M的初始授权节点为用户乙的节点a、用户丙的节点b,用户甲的终端生成平行链创建请求交易tx1并发送至主链节点,主链节点在主链网络中广播tx1,并将tx1打包到区块block1中执行,在执行tx1时,冻结用户甲缴纳的保证金,将用户甲请求创建平行链M的平行链创建请求记录到主链上。
在2中:主链的超管账户S响应于平行链创建请求,在平行链节点生成第一账户组创建交易tx2,并将tx2发送给主链节点,主链节点互相广播tx2,将tx2打包至主链区块中,执行