详解pos共识算法的特点 pos算法原理( 二 )


但是,在军队内可能有叛徒,这些人将影响将军们达成共识 。拜占庭将军问题是指在已知有将军是叛徒的情况下,剩余的将军如何达成一致决策的问题 。
1982年,莱利斯·兰波特(Leslie Lamport)等在论文The Byzantine Generals Problem中证明当将军总数大于3f,背叛者数为f或者更少时,忠诚的将军可以达成命令上的一致,即 3f+1≤n,算法复杂度为O(nf +1) 。
米格尔·卡斯特罗(Miguel Castro)和芭芭拉·利斯科夫(Barbara Liskov)在1999年发表论文Practical Byzantine Fault Tolerance提出PBFT算法 。该算法的容错数量也满足3f+1≤n,算法复杂度为O(n2) 。
该算法能提供高性能的运算,使系统可以每秒处理上千次请求,这比旧系统快了一些 。
PBFT算法的共识过程
PBFT算法的共识过程如下:客户端(Client)发起消息请求(request),并广播转发至每一个副本节点(Replica),由其中一个主节点(Leader)发起提案消息pre-prepare,并广播 。其他节点获取原始消息,在校验完成后发送prepare消息 。每个节点收到2f+1个prepare消息,即认为已经准备完毕,并发送commit消息 。当节点收到2f+1个commit消息时,我们就认为该消息已经被确认完成(reply) 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: