3 主链是通过矿工挖矿产生资产,vapor侧链是通过claim交易产生资产,因此侧链上资产的源头都是claim交易。
5 claim交易是资产从主链转移到侧链产生的交易,即在主链上锁定交易,在侧链上用claim交易生成侧链上的资产。
11 vapor侧链中验证人、收集人、联邦三个角色:
13 验证人:侧链的出块人,任何人都可以成为验证人。
15 收集人:监控主链锁定在联邦合约地址的交易,收集交易并生成claim交易,发送到节点验证人进行验证入交易池。
17 联邦 : 侧链充值是指资产从主链转移到侧链的过程,转移过程,是需要资产先锁定到联邦合约地址。
19 ![main2side](png/main2side.png)
25 1、联邦合约地址需要7个联邦成员公钥生成,系统开始启动由初始出块人担任。
27 2、运行一段时间后vapor侧链上用户可以注册为联邦成员候选人,由vapor侧链用户投票,从注册候选人中选出联邦成员,每次联邦成员变动不能超 过联盟成员的1/3
29 3、选出联邦成员后,由新的联邦成员生成新的合约地址,以前的联邦合约地址转账到新的联邦合约地址。
31 4、转账完成后,主链锁定资产到新的联邦地址,以后可以再竞选联邦成员。
39 2、运行一段时间后,vapor侧链上用户可以注册成为候选人收集人,由vapor侧链用户投票,从注册的候选人中选出收集人(dpos出块一轮筛选一次)
41 3、下发新的监控主链的联邦合约地址的收集人,收集交易,并附带收集人列表、收集人签名、原始交易、收集人公钥的claim交易到节点
45 注:成为验证人、收集人、联邦在侧链都需要质押一定数量的btm
49 1、vapor侧链用户发起提现请求,销毁vapor侧链的资产
51 2、联邦合约地址针对请求向vapor侧链用户的主链地址发送对应对应数量的资产(前提交易已经在侧链上达到不会回滚的确认数)
53 3、联邦在侧链上生成一笔完成提现的操作的交易
61 - 增加ClaimInput的输入类型,也是vapor侧链上资产产生源头,主要用于处理资产从主链到侧链的转移。
63 - TxInput结构作用增加字段Peginwitness
65 Peginwitness保存了主链的源交易信息,用于其他节点收到交易时做验证。
67 内容如下(字段序列化后依次放入Peginwitness):
69 amount + ParentGenesisBlockHash + claimScript + rawTx + merkleBlock
71 - 生成claim交易输入,并根据主链交易、proof生成Peginwitness
79 提交交易是要进入交易池,以及广播交易给其他节点。
81 在入交易池前以及处理block过程的交易验证的时候,claim交易验证是对输入中的claim输入与Peginwitness的信息匹配做验证(验证主链交易信息,以及生成的claim输入有没恶意行为),类似工作量证明。