pbft共识协议

pbft协议可以处理拜占庭错误,即可以处理以下错误:

  1. 节点故意不回复
  2. 节点故意发送误导的信息
    拜占庭错误的协议不仅要在多个节点之中确定一个提议,还要防止这个提议是假的,例如:这个提议的发送者是一个坏的节点,故意给一些节点发送A提议,给另外一些节点发送B提议,这样这个集群就产生了不一致,俗称脑裂。这是共识协议最严重的错误。

如何才能处理拜占庭错误

非拜占庭错误需要:

  1. 二阶段协议
  2. n >= 2f + 1,即错误节点不能超过一半,集群要有大多数是正确的。

拜占庭错误需要:

  1. 三阶段协议。可以理解为,其中的两阶段用于确定一个值,第三阶段用于验证这个值是否与其他人一致。
  2. n >= 3f + 1。可以理解为,只有大多数并不能确定一个值,因为这个大多数中可能有恶意节点故意装的。我们需要另外的f节点再帮我们验证。

流程

pbft是一个leader-based协议,即集群中有一个leader节点,也主节点。主节点发送错误后,重新选择一个主节点,这个过程叫view-change。
正常的协议有下面三个阶段:

pre-prepare

主节点将请求发送给所有其他节点

prepare

其他节点收到后,验证消息有效性。然后将请求发送给所有其他节点

commit

其他节点收到后,验证消息有效性。然后将请求发送给所有其他节点

当主节点收到2f+1的commit消息后,就可以返回确定信息给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值