分布式系统架构系列讲解八(分布式一致性 8):PBFT算法

Posted 吃透Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式系统架构系列讲解八(分布式一致性 8):PBFT算法相关的知识,希望对你有一定的参考价值。

分布式系统架构系列讲解 - 总目录

Leslie Lamport在论文中提出的口信消息解决方案就属于BFT,需要考虑恶意节点的篡改、攻击等问题。但是,口信消息解决方案在现实场景中很难落地。比如,它并不关心这个共识的结果是什么,这会出现一种情况:现在适合进攻,但将军们达成的共识却是撤退。

另外,实际场景中,我们往往需要就提议的一系列值(而不是单值)在拜占庭错误发生的时候,也能被达成共识。那应该怎么做呢?一种方案就是本文要讲解的PBFT算法。PBFT算法,是一种能在实际场景中落地的BFT算法,它在区块链中应用广泛。

一、oral message的问题

要理解PBFT算法,首先必须要明白口信消息解决方案(A solution with oral message)到底存在哪些问题?这些问题都是后续众多BFT算法在努力改进和解决的,理解了这些问题,能帮助你更好地理解后来的拜占庭容错算法的思想(包括 PBFT 算法)。

oral message方案存在一个致命的缺陷:当将军总数为n,叛将数为f时,算法需要递归协商 f+1 轮,消息复杂度为 O(n^(f+1)),消息数量指数级暴增。

你可以想象一下,如果叛将数为 64&

以上是关于分布式系统架构系列讲解八(分布式一致性 8):PBFT算法的主要内容,如果未能解决你的问题,请参考以下文章

分布式系统架构系列讲解十(分布式一致性 10):ZAB协议

分布式系统架构系列讲解六(分布式一致性 6):Gossip协议

分布式系统架构系列讲解七(分布式一致性 7):Quorum NWR算法

分布式系统架构系列讲解九(分布式一致性 9):PoW算法

微服务学习八--什么时候用微服务架构

微服务学习八--什么时候用微服务架构