建议和反馈

请填写你的反馈内容

问答 > 链客Talk > 问答详情
已解决

共识投票分为三类,其中的NextIndex投票是共识失败时才会被用到,共识成功时会不会产生额外的通信消耗,影响整个链的运行?10LK

共识投票分为三类,其中的NextIndex投票是共识失败时才会被用到,共识成功时会不会产生额外的通信消耗,影响整个链的运行?

2020-04-09
0
请先登陆或注册

YOUChain有链2020-05-27

验证者进行NextIndex投票的主要作用在于告诉其它验证者,若这一轮共识失败,下一轮共识它将会继续对某个区块进行投票。若超过2/3的验证者对同一个区块进行了NextIndex投票,就意味着下一轮的区块提议者不会形成新的区块并广播到全网,进而节省了通信消耗。

 

若这一轮共识成功,NextIndex投票机制也是有益的。由于所有的验证者并不能保证处于同一轮共识的同一阶段,有些验证者很有可能是处于超前状态,而另一部分的验证者处于滞后状态。超前状态的验证者很有可能未来得及收集到滞后状态验证者的Precommit投票,从而超时并判定共识失败,开始下一轮的共识。但验证者只要收集到了足够多的Prevote投票,到了固定时间就会进行NextIndex投票。所以超前状态的验证者很有可能收集到某个区块超过2/3的NextIndex投票的。由此一来,超前状态的验证者进入下一轮共识后,不会再一次打包交易形成新的区块并广播出去,进而减少对带宽的损耗。

 

在我们技术白皮书的复杂度分析章节,通过对比提议一个新区块需要的通信消耗,与进行一轮NextIndex投票所需要的通信消耗,我们可以得知,当区块size超过382kB,使用NextIndex机制就可以降低通信消耗。所以,即时共识成功,只要能减少哪怕一个新区块在全网的广播,所有验证者进行一轮的NextIndex投票也是值得的。


投一票
评论(0)
赞赏(0)

求助中

解决了这个问题,预计可以帮助到

  • 0
  • 3
  • 4
  • 0
  • 7
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励