...
代码块 |
---|
import { WasmFs } from '@wasmer/wasmfs' import { MoveSandbox } from '@starcoin/move-js' const subscribeState = async () => { const sandbox = initSandbox(modules, resources) let snapshot, ch = await sandbox.subscribe() console.log(snapshot) ch.on("change_set", function(changeSet){ console.log(changeSet) }) } subscribeState() |
2.3.3 Proposals
2.3.3.1
...
结算状态通道提案
当状态通道节点检查到Leader不可达时,可以发起选主提案。超过2/3成员投票通过,选主成功。当有P2P成员希望离开状态通道时,需要发起结算状态通道提案。提案成功后方可离开状态通道,如果没有发起结算状态通道提案就离开状态通道,认为弃权,后续投票默认弃权。
提案参数:
参数 | 类型 | 描述 |
---|
state_ |
channel_ |
id | string |
P2P地址地址类型
state_channel_id
string
状态通道ID | ||
from_height | u128 | 状态通道起始高度,需要和链上状态通道中的已结算高度匹配 |
to_height | u128 | 状态通道结算高度 |
change_sets | vector<u8> | 起始高度到待结算高度的所有变更集 |
2.3.3.2 惩罚作弊者提案
当状态通道收到Leader发送过来的同步消息,并在MoveVM验证结果不对时,可以发起Leader作弊的惩罚提案,如果提案执行成功,发起人为新的Leader.
提案参数:
参数
类型
描述
state_channel_id
string
参数 | 类型 | 描述 |
---|---|---|
leadertarget_p2p_address | string | P2P地址地址类型 |
state_channel_id | string | 状态通道ID |
badraw_sync_messagetransaction | string | 错误的同步消息,其中包括原始交易,验证者,验证结果 |
2.3.3.3 结算状态通道提案
当有P2P成员希望离开状态通道时,需要发起结算状态通道提案。提案成功后方可离开状态通道,如果没有发起结算状态通道提案就离开状态通道,认为弃权,后续投票默认弃权。
提案参数:
原始交易 | ||
change_sets | vector<u8> | 改原始交易对应的变更集 |
target_sign | string | 目标地址对该交易的签名 |
2.3.4 Sessions
2.3.4.1 开启会话
...