【问题标题】:Byzantine fault tolerance (BFT) and Crash fault tolerance (CFT)拜占庭容错 (BFT) 和崩溃容错 (CFT)
【发布时间】:2019-05-28 06:32:39
【问题描述】:
崩溃容错 (CFT) 是一种弹性级别,如果组件发生故障,系统仍然可以正确达成共识。而拜占庭容错 (BFT) 表示,即使存在恶意行为者,订购者也可以完成其工作。以下是我的问题
CFT 对单个企业更有用。目前 Hyperleger Fabric 使用的是 CFT 的 Kafka。即使在多个组织的情况下,我们也在 Hyperledger Fabric 网络中使用 Kafka。这是否意味着我们仍在使用 CFT?
在 CFT 中,如果组件发生故障,系统如何仍能正确达成共识?例如网络已关闭,或系统中存在恶意节点等
即使存在恶意行为者,CFT 也能工作吗?
Hyperledger Fabric 如何实现 BFT?他们什么时候发布?
CFT 和 BFT 的主要区别是什么?
【问题讨论】:
标签:
hyperledger-fabric
hyperledger
【解决方案1】:
- CFT 对单个企业更有用。目前 Hyperleger Fabric 使用的是 CFT 的 Kafka。即使在多个组织的情况下,我们也在 Hyperledger Fabric 网络中使用 Kafka。这是否意味着我们仍在使用 CFT?
是的,它仍然是 CFT,Crash Fault Tolerant 模型保证可承受系统故障,例如崩溃、网络分区。在您的共识系统 CFT 中有 N 个节点能够承受多达 N/2 次此类崩溃。您可能将其分布在组织或不同的云中这一事实不会改变这一假设。
- 在 CFT 中,如果组件发生故障,系统如何仍能正确达成共识?例如网络已关闭,或系统中存在恶意节点等
在 CFT 模型中,有 N/2 + 1 个节点的法定人数必须就某个值达成一致,因此只要您有 N/2 + 1 个可用节点,这意味着您有一个法定人数,您将能够达到同意,因为多数同意。 不它不能保证任何恶意行为者的存在。
- 即使存在恶意行为者,CFT 也能正常工作吗?
没有。
- Hyperledger Fabric 如何实现 BFT?他们什么时候发布?
计划实施 BFT 协议并集成到 Fabric 中,但目前正在仔细设计和规划具体日期。我想它会在每两周一次的维护者会议上得到满足。
- CFT 和 BFT 的主要区别是什么?
主要区别在于假设和威胁/故障模型,CFT 可以承受多达 N/2 次系统故障,而不能保证对手节点。 BFT 提供了在包括拜占庭在内的任何类型的 N/3 次失败的情况下承受并正确达成共识的保证。您可以将其视为两阶段提交与三阶段提交。