版本比较

密钥

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

所有加入状态通道的成员,需要和合约保持心跳,15s内有心跳的成员认为是有效成员。

当状态通道小于等于5个成员:

第一个进入状态通道的成员,查询状态通道状态,没有Leader, 将调用合约方法申请成为Leader, 合约检查只有1个有效成员,将验证通过。

其他成员进入状态通道的成员,查询状态通道状态,发现有Leader, 他将从Leader同步状态,并和Leader保持心跳, 如果和Leader15s心跳没有响应,他调用状态通道合约申请自己为Leader如果和Leader 15s 心跳没有响应,他调用状态通道合约申请自己为Leader, 合约检查之前的Leader如果有效将拒绝申请,如果之前的leader无效了,将通过申请。

...

对应申请失败的成员,将再次查询状态通道的最新状态,并和最新的Leader保持状态同步。

当状态通道大于5个成员:

需要选举5个成员作为候选成员,其他成员需要将投票权委托给候选成员,每个候选成员最大只能接受n/5-1个其他成员的委托。候选成员需要提供代理连接Leader节点功能,其他成员优先通过候选成员和Leader通讯。

问题:

选举过程中状态通道不可写。选举过程中状态通道不可写?

Leader故障如何快速切换?

5、如何选择和Leader的最优通信路径问题

状态通道的Follower需要从Leader同步状态和转发交易,但是有可能Follower直连Leader响应延迟没有经其他Follower中转效率高,所以为了发现最优路径。所有的和Peer的心跳包需要带上和Leader通信的最优延迟。

...