Paxos

Paxos 和 Raft,具有简单容错能力,对系统崩溃或网络延迟等故障容错,需要同步信息传输环境,适用于严格受控的私链环境。可解决CFT(crash Fault)

BFT情况下,机器还可能‘’撒谎‘’

解决非拜占庭问题的分布式一致性算法(Paxos,Raft)

DLS 和 PBFT,可对拜占庭故障容错,在异步信息传输环境中需要做某种形式的同步假设(超时),适用于新加入节点需要验证的联盟链。

## Paxos

Paxos:强一致性协议

Gossip协议:节点管理.流言协议

paxos算法主要解决的问题就是如何保证分布式系统中各个节点都能执行一个相同的操作序列。在2f+1个节点的集群中,允许有f个节点不可用

paxos是在多个成员之间对某个值(提议)达成一致的一致性协议。这个值可以是任何东西。比如多个成员之间进行选主,那么这个值就是主的身份

paxos分为prepare和accept两个阶段。协议中有两个主要的角色,proposer和acceptor。

value被majority accept之前,每个acceptor可以accept多个不同的值。但是,一旦一个value被majority accept(即value达成一致),那么这个value就不会变了。因为prepare阶段会将该value给找出来,随后accept阶段会使用这个value,后续的所有的提案都会选择这个value。

需要注意的是,每个阶段都是收到majority的响应后即开始处理。并且由于机器会宕机,acceptor需要对acceptedProposalID, acceptedValue和minProposal进行持久化。


从流程中可以看出prepare有两个作用:

大的proposal id会block未完成的小的proposal id达成一致的过程,所以为了减少无效的prepare请求,每次都选择比自己以往见过的proposal id更大的id。

一旦某个value达成一致,那么后续的prepare都会找到这个value作为accept阶段的值

可以看出,一次paxos达成一致至少需要两次网络交互

Paxos并不适合于拜占庭容错系统

[更多内容](https://blockchaindev.org/archives/10-from-Paxos-to-PBFT.html)

[更详细](https://www.hollischuang.com/archives/693)

###系统难点

1、管理多个proposer并发执行

2、容忍var变量的不可变性

3、容忍任意Proposer的故障

4、容忍半数以下的acceptor的故障

解决方案一:互斥访问权,可以解决难点1和难点2,但是无法解决难点3和难点4

解决方案二:抢占式访问权

proposer向acceptor发出的每次请求都要带一个编号(epoch),且编号间要存在全序关系。一旦acceptor接收到proposer的请求中包含一个更大的epoch的时候,马上让旧的epoch失效,不再接受他们提交的取值。然后给新的epoch发放访问权,让他可以设置var变量的值。

为了保证var变量取值的不变性,不同epoch的proposer之前遵守后者认同前者的原则:

>在确保旧的epoch已经失效后,并且旧的epoch没有设置var变量的值,新的epoch会提交自己的值。

当旧的epoch已经设置过var变量的取值,那么新的epoch应该认同旧的epoch设置过的值,并不在提交新的值。

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

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,289评论 2 89
  • 4. 设计思想 4.1 动机 我们设计的 Kafka 能够作为一个统一的平台来处理大公司可能拥有的所有实时数据馈送...
    疯狂的橙阅读 1,144评论 1 4
  • 巴比特旗下时戳资本近日发布了《区块链公链项目研究报告》。作为时戳资本区块链行业研究报告系列03,这份最新的报告主要...
    shenciyou阅读 2,638评论 1 10
  • 人不仅要从跟自己相同或类似的人身上学习,更应该与自己志同道合的人身上学习,更要从与自己性格、背景、学识、工作无关甚...
    万花谷阅读 160评论 0 0
  • 蓝星带领大家急急忙忙返回营地。留守后方的猫被他们的喧闹声吵醒。当蓝星他们穿过入口处的金雀花丛时,被吵醒的猫们睡眼惺...
    猫武士雀尾阅读 1,113评论 0 0

友情链接更多精彩内容