注:成为验证人、收集人、联邦在侧链都需要质押一定数量的btm
+
+
# 侧链提现流程
1、vapor侧链用户发起提现请求,销毁vapor侧链的资产
3、联邦在侧链上生成一笔完成提现的操作的交易
+
+
+# claim交易输入类型
+
+1、定义此输入类型,为了处理claim交易
+
+type ClaimInput struct {
+
+ SpendCommitmentSuffix []byte // The unconsumed suffix of the output commitment
+
+ Arguments [][]byte // Witness
+
+ SpendCommitment
+
+}
+
+2、TxInput结构作用增加字段Peginwitness
+
+ Peginwitness保存了主链的源交易信息,用于其他节点收到交易时做验证。
+
+ 内容如下(字段序列化后依次放入Peginwitness):
+
+ amount + ParentGenesisBlockHash + claimScript + rawTx + merkleBlock
+
1、交易格式
-~~~json
+ dpos_type: 1代表注册为候选出块人,2代表投票,3代表取消投票
+ type: dpos表示跟共识有关系的交易
+
+ amount: 表示注册交易的交易费,目前是1btm
+
+~~~json
+ 注册交易
```
{
"base_transaction":null,
"ttl":0,
"time_range":43432
}
+ ```
+ 投票交易
+ ```
+ {
+ "base_transaction":null,
+ "actions":[
+ {
+ "address":"vsm1qkm743xmgnvh84pmjchq2s4tnfpgu9ae2f9slep",
+ "amount":100000000,
+ "asset_id":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "forgers":[
+ "vsm1qndq3w79kwtk9acnuswxlwxjqweglwhg8yrzp2c",
+ "vsm1q93jcjhwe62n5mdtym6m7utle95erd6s3jsn4tn",
+ "vsm1qtu926tcsky876hflm93getsv27w7pccv4jg2fs",
+ "vsm1qyd4rcrdnwexgg2gwk33frrrqymzyrycggjslu2",
+ "vsm1qacp9zg2h4950lr5yhlychn6686fhullkuyzd5s",
+ "vsm1qlf8s9tv90x9ys25fl2kczy44jjnnaa8e542nea"
+ ],
+ "dpos_type":2,
+ "type":"dpos"
+ }
+ ],
+ "ttl":0,
+ "time_range":43432
+ }
+ ```
+ 取消投票
+ ```
+ {
+ "base_transaction":null,
+ "actions":[
+ {
+ "address":"vsm1qkm743xmgnvh84pmjchq2s4tnfpgu9ae2f9slep",
+ "amount":100000000,
+ "asset_id":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "forgers":[
+ "vsm1qndq3w79kwtk9acnuswxlwxjqweglwhg8yrzp2c",
+ "vsm1q93jcjhwe62n5mdtym6m7utle95erd6s3jsn4tn",
+ "vsm1qtu926tcsky876hflm93getsv27w7pccv4jg2fs"
+ ],
+ "dpos_type":3,
+ "type":"dpos"
+ }
+ ],
+ "ttl":0,
+ "time_range":43432
+ }
```
~~~
- dpos_type: 1代表注册为候选出块人,2代表投票,3代表取消投票
-
- type: dpos表示跟共识有关系的交易
-
- amount: 表示注册交易的交易费,目前是1btm
-
2、逻辑说明
(1)、检查交易费在用户地址是否够用,序列化的注册、注册类型(用op表示)序列化后放入tx的referenceData