拜占庭容错(BFT)和崩溃容错(CFT)

Blo*_*eek 7 hyperledger hyperledger-fabric

崩溃容错 (CFT) 是一种弹性级别,如果组件出现故障,系统仍然可以正确地达成共识。而拜占庭容错(BFT),它表示即使存在恶意行为者,排序者也可以完成其工作。以下是我的问题

  1. CFT 对单个企业更有用。目前,Hyperleger Fabric 使用 Kafka,即 CFT。即使在多个组织的情况下,我们也在 Hyperledger Fabric 网络中使用 Kafka。这是否意味着我们仍在使用 CFT?

  2. 在 CFT 中,如果组件出现故障,系统如何仍能正确达成共识?例如网络出现故障,或系统中存在恶意节点等

  3. 即使存在恶意行为者,CFT 也能工作吗?

  4. Hyperledger Fabric 如何实现 BFT?他们什么时候发布?

  5. CFT 和 BFT 之间的主要区别是什么?

Art*_*ger 11

  1. CFT 对单个企业更有用。目前,Hyperleger Fabric 使用 Kafka,即 CFT。即使在多个组织的情况下,我们也在 Hyperledger Fabric 网络中使用 Kafka。这是否意味着我们仍在使用 CFT?

是的,它仍然是 CFT,崩溃容错模型保证承受系统故障,例如崩溃、网络分区。在您的共识系统 CFT 中拥有 N 个节点,能够承受多达 N/2 次此类崩溃。您可能将其分布在组织或不同的云中这一事实不会改变这一假设。

  1. 在 CFT 中,如果组件出现故障,系统如何仍能正确达成共识?例如网络出现故障,或系统中存在恶意节点等

在 CFT 模型中,有 N/2 + 1 个节点的法定人数,它们必须就某个值达成一致,因此只要您有 N/2 + 1 个可用节点,这意味着您有一个法定人数,您将能够达成协议,因为多数人对此表示同意。而NO不能保证在恶意行为者存在任何事情。

  1. 即使存在恶意行为者,CFT 也能工作吗?

不。

  1. Hyperledger Fabric 如何实现 BFT?他们什么时候发布?

有计划实施 BFT 协议并将其集成到 Fabric 中,但目前正在仔细设计和规划确切的天数。我想它会在每两周一次的维护者会议中得到体现。

  1. CFT 和 BFT 之间的主要区别是什么?

关键区别在于假设和威胁/故障模型,CFT 最多可以承受 N/2 个系统故障,而对对手节点没有保证。BFT 提供了在出现包括拜占庭在内的任何类型的 N/3 故障时能够承受并正确达成共识的保证。您可以将其视为两阶段提交与三阶段提交。