拜占庭共识算法解析
1. 拜占庭共识基础
在拜占庭共识中,当 tmpval ≠ ⊥ 时,会发送包含 tmpval 的 WRITE 消息。具体而言,满足 N - f > (N + f) / 2 的所有正确进程会写入相同的 tmpval 。随后,每个正确进程最终会向所有进程发送包含 tmpval 的 ACCEPT 消息,并且由于不会出现中止情况,每个正确进程最终都会做出决定。同时,算法的中止行为属性也能得到满足,即仅当算法被中止时,才会立即返回事件 <Aborted | state> 。
算法 5.17 - 5.18 需要三个通信步骤,再加上底层条件收集实现的步骤。使用“签名条件收集”算法时,拜占庭时期共识算法需要五个通信步骤。由于所有进程之间都会相互发送消息,因此总共会有 $O(N^2)$ 条消息。
2. 拜占庭领导者驱动共识
- 算法概述 :在故障嘈杂任意模型中,“拜占庭领导者驱动共识”算法(算法 5.19)基于拜占庭时期变更和拜占庭时期共识抽象的实现,提供了弱拜占庭共识。该算法与崩溃停止进程的对应算法的区别仅在于使用了适用于拜占庭进程的底层抽象。
- 算法细节 :
- 拜占庭时期变更原语使用了拜占庭最终领导者检测抽象。根据其属性,算法 5.19 在选举出的领导者表现不佳
超级会员免费看
订阅专栏 解锁全文
298

被折叠的 条评论
为什么被折叠?



