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

时间:2019-05-28 06:32:39

标签: hyperledger-fabric hyperledger

崩溃容错(CFT)是一种弹性,在这种情况下,如果组件出现故障,系统仍可以正确地达成共识。拜占庭的容错(BFT)表示订购者即使在存在恶意参与者的情况下也可以完成其工作。以下是我的问题

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

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

  3. 即使在存在恶意行为者的情况下,CFT仍然可以工作吗?

  4. Hyperledger Fabric如何实现BFT?他们什么时候释放它?

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

1 个答案:

答案 0 :(得分:0)

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

是的,它仍然是CFT,具有容错模型,可以承受系统故障,例如崩溃,网络分区。您的共识系统CFT中有N个节点能够承受多达N / 2个此类崩溃。实际上,您可能在组织之间或不同的云中分发它不会改变这个假设。

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

在CFT模型中,必须有一定数量的N / 2 + 1个节点的法定人数,因此,只要您有N / 2 + 1个节点可用,这意味着您将有一个法定人数协议,因为大多数人都同意。而且,它不能保证恶意行为者在场。

  
      
  1. CFT即使在存在恶意行为者的情况下也可以工作吗?
  2.   

不。

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

有一个计划实施BFT协议并将其集成到Fabric中,但是目前正在精心设计和计划中。我想它将在每两周一次的维护者会议中被揭露。

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

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