PBFT共识算法核心思想

PBFT基于状态机副本机制,每个节点有当前的状态(state),如果每个正常的节点都执行顺序的相同请求,那么正常的节点将保持状态一致。

1.通过主节点分配顺序的序号,并且将请求发送给其他节点。(pre-prepare)

2.为防止主节点作恶,给不同的节点发送序号不同,或者信息不一致。通过节点之间互相交互信息保证序号和信息一致。(prepare)

3了防止主节点作恶,通过timeout机制来切换主节点,切换主节点的过程需要保证节点的状态一致(可能在上个view中有一些节点执行了,有一些没有执行),需要commit阶段和新主的条件来保证。(commit)(quorum)。

提示:进行commit阶段的原因是,如果没有这个阶段,在prepare阶段之后直接执行,可能在view-change的时候一些节点还没有执行。而在选主的时候主节点收到2f+1个节点的view_change消息就会切换成功,如果在之前的view对一个消息m达成共识,有一个节点执行了这个消息的操作,在新的view选出来之后,因为存在错误的节点,主节点并不能确认之前已经执行的消息在新的view中还能形成2f+1的多数派,所以可能造成有些节点执行了,有些节点没有执行。导致整个集群状态的不一致。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介 实用拜占庭容错 (Practical Byzantine Fault Tolerance, PBFT) 算法...
    vdes阅读 2,322评论 0 4
  • 算法   Our algorithm is a form of state machine replication...
    小谁是谁阅读 1,608评论 0 2
  • 三个阶段:预准备(pre-prepare)、准备(prepare)、和确认(commit) 步骤: 从全网节点选举...
    山天大畜阅读 23,262评论 1 11
  • 分布式系统面临的第一个问题就是数据分布,即将数据均匀地分布到多个存储节点。另外,为了保证可靠性和可用性,需要将数据...
    olostin阅读 4,885评论 2 26
  • 这次的课堂笔记晚了2天!原因一,小瑄的《能断金刚》借给了同事去学习,身边只有之前版本的刊物,故这次的笔记总结也此版...
    唐2僧carina阅读 641评论 0 2

友情链接更多精彩内容