PBFT 为什么PBFT 需要2次Prepare

   日期:2020-05-28     浏览:121    评论:0    
核心提示:主题:“PBFT” 对于区块链从业者而言都很是耳熟能详的名词了,大家也都知道PBFT是拜占庭容错算法但是有没有人想过为什么PBFT 需要2次Prepare?对于 这个知识点,我们需要了解PBFT pre_prepare和 prepare是干嘛的.先用一个例子解释PBFT工作原理故事:某公司远程开会,需要投票表决某一个事项,但是开会的成员不一定在听,投票表决只有Yes和No,那么假设有b(bad boy)个人没有认真听,那么需要多少人投票表决才可以算通过呢?计算过程:先假定人数n,我们看看n.区块链

主题:“PBFT” 对于区块链从业者而言都很是耳熟能详的名词了,大家也都知道PBFT是拜占庭容错算法

但是有没有人想过为什么PBFT 需要2次Prepare?

对于 这个知识点,我们需要了解PBFT pre_ prepare和 prepare是干嘛的.

先用一个例子解释PBFT工作原理

故事:某公司远程开会,需要投票表决某一个事项,但是开会的成员不一定在听,投票表决只有Yes和No,那么假设有b(bad boy)个人没有认真听,那么需要多少人投票表决才可以算通过呢?计算过程:先假定人数n,我们看看n至少是多少。那么正常的收到消息n-b,判断标准,我们至少需要b+1 个人通过(b+1说明,在以知的b个拜占庭节点后,还收到b+1个一致的节点,说明这个消息是正确的),但是不确定里面的n-b个人是不是也是有没有认真听的人,所以我们最终的结论是:n-b-b>b,所以,n>3b, 这也就是为什么pbft需要保证。

那为什么需要pre_prepare 和 prepare 这两次呢?

那就需要了解pre_prepare和prepare是干嘛的和整个算法有什么关联就好了。

先看看pre_prepare:

pre_prepare 工作:  

      leader节点:向所有节点发出pre_prepare消息,进入prepare阶段。

      普通节点:收到Pre_prepare消息,进入prepare阶段

再看看prepare阶段:

      所有节点都会验证pre_prepare 消息(massage)然后验证消息是否合法,然后将自己的 节点信息和投票结果封装进 massage,并且向其他节点广播。然后统计收到的其他节点发送的(封装后的massage结果),如果统计投票赞成的投票数量大于(2n/3)接着进入commit阶段。

泰岳PBFT

 

      以上是个人理解。欢迎讨论。

 

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服