3.3 共识协议
01 Paxos的提出
无论二阶段提交还是后面提出三阶段提交(三阶段提交是为解决两阶段提交协议的缺点而设计的)都
无法很好的解决分布式的一致性问题。
直到Paxos算法的提出,Paxos协议由Leslie Lamport最早在1990年提出,目前已经成为应用最广
的分布式一致性算法。
区块链与创新思维
02 节点角色
Paxos 协议中,有三类节点:
1.Proposer:提案者
Proposer 可以有多个,Proposer 提出议案(value)。所谓 value ,在工程中可以是任何操作,例如
“修改某个变量的值为某个值”、“设置当前primary 为某个节点”等等。Paxos 协议中统一将这
些操作抽象为 value。不同的 Proposer 可以提出不同的甚至矛盾的 value ,例如某个 Proposer 提
议“将变量 X 设置为 1”,另一个 Proposer 提议“将变量 X 设置为 2”,但对同一轮 Paxos 过程,
最多只有一个 value 被批准。
区块链与创新思维
03 节点角色
Paxos 协议中,有三类节点:
2. Acceptor:批准者
• Acceptor 有 N 个,Proposer 提出的 value 必须获得超过半数(N/2+1)的Acceptor 批
准后才能通过。
• Acceptor 之间完全对等独立。
区块链与创新思维
04 节点角色
Paxos 协议中,有三类节点:
3.Learner: 学习者
Learner 学习被批准的 value。所谓学习就是通过读取各个 Proposer 对 value 的选择结果,如果
某个 value 被超过半数 Proposer 通过,则 Learner 学习到了这个 value。这里类似 Quorum 议
会机制,某个 value 需要获得 W=N/2 + 1 的 Acceptor 批准,Learner 需要至少读取 N/2+1 个
Accpetor ,至多读取 N 个 Acceptor 的结果后,能学习到一个通过的 value。
Paxos中 proposer 和 acceptor 是算法的核心角色,paxos 描述的就是在一个由多个 proposer
和多个 acceptor 构成的系统中,如何让多个 acceptor 针对 proposer 提出的多种提案达成一致
的过程,而 learner 只是“学习”最终被批准的提案。
区块链与创新思维
05 约束条件
Paxos协议流程还需要满足如下约束条件:
1、Acceptor必须接受它收到的第一个提案;
2、如果一个提案的v值被大多数Acceptor接受过,那后续的所有被接受的提案中也必须包含v值(v
值可以理解为提案的内容,提案由一个或多个v和提案编号组成);
3、如果某一轮 Paxos 协议批准了某个 value ,则以后各轮 Paxos 只能批准这个value ;
每轮 Paxos 协议分为准备阶段和批准阶段,在这两个阶段 Proposer 和 Acceptor 有各自的处理流
程。
区块链与创新思维
06 约束条件
Proposer与Acceptor之间的交互主要有4类消息通信,如下图:
区块链与创新思维
07 约束条件
这4类消息对应于paxos算法的两个阶段4个过程:
Phase 1准备阶段
a) proposer向网络内超过半数的acceptor发送prepare消息
b) acceptor正常情况下回复promise消息
Phase 2批准阶段
a) 在有足够多acceptor回复promise消息时,proposer发送accept消息
b) 正常情况下acceptor回复accepted消息
区块链与创新思维
08 选举过程
选举分为两个阶段,如下图所示。
您可能关注的文档
最近下载
- 新疆2026届高三(二模)理科综合试卷(含答案).pdf
- 2025年演出经纪人国际演出经纪公司合作模式与案例分析专题试卷及解析.pdf VIP
- 2021年“大梦杯”福建省初中数学竞赛解析版.pdf
- 医师定期考核口腔科医生考核题库888题 .pdf VIP
- 2025年房地产经纪人大数据驱动的房地产市场分析专题试卷及解析.pdf VIP
- The Pitt《匹兹堡医护前线(2025)》第一季第七集完整中英文对照剧本.docx VIP
- 2025年演出经纪人演出合同变更与解除及纠纷解决机制专题试卷及解析.pdf VIP
- 2026年大连装备制造职业技术学院单招职业适应性考试题库含答案详解.docx VIP
- 永辉超市的盈利能力分析.docx
- 智能工厂中基于物联网的设备全生命周期管理.pdf VIP
原创力文档

文档评论(0)