上证指数 3342.01 -0.24%
|
深证成指 10365.73 -1.40%
|
恒生指数 22849.81 -1.52%
|
纳斯达克 15587.79 -5.82%
|
日经225指数 33780.58 -2.75%
|
Relay Bits 站内编辑
559 文章
364512 阅读
首页  >  要闻 >  区块链 >  正文
申请成为签约作者 >
PBFT如何执行?
2019年11月22日 00:00    
收藏  

第三阶段:执行(Commit)

「已预备」的将军若决定执行,则发送附有签名的「执行」信息给所有将军;若决定不执行则不发送任何信息。

发出「执行」信息的将军开始「执行」阶段。

各将军若收到3则以上「执行」信息,则执行信息内容,这也代表该提议取得了共识。

执行信息后的将军进入「已执行」状态并将执行结果回报(Reply)给拜占庭君主。

回报后的将军结束这回合,静待下一个提议的到来。

PBFT Commit

PBFT Commit Phase

可能有些读者比较熟悉下面这个精简版的流程图:

PBFT 精简

PBFT Process

替换不适任的主导者:视域变换(View-change)

以上的共识形成的过程非常依赖忠诚的主导者,万一主导者是叛徒呢?为了避免不提案的主导者瘫痪所有行动,将军们需要一个轮替机制,也就是视域变换:

每个将军从收到「预备」信息后开始计时,转为「已执行」状态后结束计时。

如果在计时后T时间内未执行信息,则该将军可以发送「变换」(View-change)信息,信息内容包含新的代数(目前代数+1)以及其他重要讯息。

如果主导者未提案,则每个诚实的验证者最终都会因为超时而发出变换信息。

视域变换

PBFT View-change

新主导者若收到3则以上「变换」信息,则新主导者可以发送「新域」(New-view)信息,信息内容包含新代数、所有具有「已预备证明」且尚未被执行的「就位」信息,以及其他重要讯息。

各验证者收到「新域」信息后,逐一针对尚未执行的「就位」信息进行投票流程。

接下来由新主导者负责接收拜占庭君主的命令。

PBFT新域

PBFT New-view


前两个阶段可参阅《PBFT如何运作?

点击关注币海启行微信公众号,了解更多

声明: 本文由入驻币海编者上传,观点仅代表编者本人,不代表币海财经赞同其观点或证实其描述,请自行判断。
延伸阅读
PBFT如何保证安全性与活跃性?
   Leora        2019/11/22 01:00
PBFT如何运作?
   Leora        2019/11/21 04:00
共识:想说爱你不容易
   Relay Bits        2019/11/21 02:00
拜占庭将军问题还没破,拜占庭容错又是什么鬼?
   Leora        2019/11/21 00:00