...
那么Follower1 将选择经过Follower 和 Leader通信。
5、如何加载状态
首先Leader从链上状态通道合约中获取状态通道的代码和初始状态。为了防止Leader加载过程中有其他成员加入,每个加入成员需要分配一个加入序号,Leader需要记录他加载时的最大序号,Leader加载成功后,其他成员从Leader同步初始状态,并也从链上加载状态通道状态并验证。首先Leader从链上状态通道合约中获取状态通道的代码和初始账号状态。为了防止Leader加载过程中有其他成员加入,每个加入成员需要分配一个加入序号,Leader需要记录他加载时的最大序号,Leader加载成功后,其他成员从Leader同步初始状态,并也从链上加载状态通道状态并执行验证。当有新成员加入时,加入序号加1,有Leader验证后并同步给其他成员节点。
...
6、如何结算状态
任何状态通道成员可以发起结算提案,一般状态通道的Leader会定时发起结算提案,有成员要离开状态通道时也会发起结算提案。结算提案包括结算的起始高度、结算高度、状态通道的变更集和发起方的签名。发起方创建结算提案后,需要通知所有Peer对提案进行投票,Peer收到通知后会使用本地交易数据对提案进行验证,验证的逻辑是计算起始高度和结算高度的变更集是否和提案中的变更集一致,如果一致认为提案没有问题,可以投赞成票,如果不一致投反对票。当发起方收到2/3的赞成票后,发起方执行提案,完成状态通道的结算。状态通道结算完成后,所有成员可以生成结算高度的快照,并清理结算高度之前的交易数据。
...
Steam模块,维护和SDK的双向流连接,并转发SDK的请求给对应的状态通道实例。
2.2.1
...
加入状态通道
命令:state_channel.join
参数:
参数 | 类型 | 描述 |
---|---|---|
sender | string | 用户钱包地址 |
state_channel_id | string | 状态通道ID |
...