PBFT共识算法

PBFT解决了原始拜占庭容错算法效率不高的问题,将算法的复杂度由指数级降低到多项式级。
PBFT主要分为三个阶段:

  1. pre-perpare
  2. prepare
  3. commit
    前两个阶段主要是为了将在同一个视图里发送的请求排序,且使得网络中的每个节点都认可这个序列并按序执行。
    在这里插入图片描述
    如上图所示,现在我们有四个节点,且没有故障节点和问题节点(坏节点个数记为 f f f),并假设R0为主节点,R1,R2,R3为从节点。
    过程:
    1.客户端(图中的左上角)首先发送请求到各个副本节点,主节点R0收到请求之后向所有从节点R1,R2,R3广播pre-prepare信息。
    2.在各个节点接受了pre-prepare信息之后,就向其他节点发送prepare消息
    3.如果接收到了至少 2 f + 1 2f+1 2f+1个来自不同节点(包括自身)的pre-prepare消息,则认为请求在该节点中达到了prepared状态
    4.达到prepared状态的节点广播commit消息来告知其他节点该请求已经处于prepared状态
    5.当节点收到至少 2 f + 1 2f+1 2f+1个来自不同节点(包括自身)的commit消息,则认为请求在该节点中达到了committed状态
    6.副节点按照请求n由低到高的顺序执行请求并反馈给客户端,客户端收到来自 f + 1 f+1 f+1个节点的相同消息,意味着本轮共识正确完成。
    PBFT要求网络总节点数N满足 N > = 3 f + 1 N>=3f+1 N>=3f+1

👁插眼后补

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值