相关名词:提案者(Proposers)、决策者(Acceptors)和学习者(或者说书记Learners)
基本说明:提案者可以提相应的法案给各个决策者,得到多数决策者的法案会被记录为法律,学习者会记录在案而生效
b.每次只能批准一个法案
c.只有决议确定被批准后Leaners才能获取该法案并进行记录
2.Acceptor接受到相应的法案及其编号N,如果发现接受过类似法案其编号为M,如果M<N,则表示法案通过,并向相应发送N的Proposer通知其接受过M的法案,并表示不再接受编号小于N的法案;如果M>N,则Acceptor直接拒接该法案
4.如果Proposer没有收到大多数Acceptor的允许,是不会停止的,一直重复3
基本说明:提案者可以提相应的法案给各个决策者,得到多数决策者的法案会被记录为法律,学习者会记录在案而生效
一致性三个基本条件:
a.法案只有在被Proposer提出后才能批准b.每次只能批准一个法案
c.只有决议确定被批准后Leaners才能获取该法案并进行记录
Paox算法流程可以分为三段式,6个步骤:
第一阶段--准备阶段
(这里,为了方便起见,一般会设置Leader节点,负责向各个提案者分配法案编号)1.Proposer从Leader那儿获得一个编号,然后向大多数Acceptors发送法案
2.Acceptor接受到相应的法案及其编号N,如果发现接受过类似法案其编号为M,如果M<N,则表示法案通过,并向相应发送N的Proposer通知其接受过M的法案,并表示不再接受编号小于N的法案;如果M>N,则Acceptor直接拒接该法案
第二阶段--正式提交阶段
3.Proposer们如果收到Acceptor的允许,则会check是否收到相应的一系列M值即Acceptor们是否同意过之前类似的法案,如果有,则从中选择编号最大的M,再向各个Acceptor发送编号N+相应M的法案内容;如果没有收到任何M值,则继续向其它Acceptor提议N+自己法案内容。(这里要特别注意,如果收到之前的M,需要将相应N中的内容修改为M的内容,这样可以保持法案一致性)4.如果Proposer没有收到大多数Acceptor的允许,是不会停止的,一直重复3
第三阶段--法案生效
5.当Proposer发现收到大多数Acceptor的允许,则通过Leader将法案变成法律一部分6.由一部分Leaner记录该法案成为法律并传播