您当前的位置: 首页 > 
  • 4浏览

    0关注

    284博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

EOS的共识机制(一)

区块链(Web3)开发工程师 发布时间:2018-11-27 17:48:53 ,浏览量:4

EOS的共识机制由传统的DPoS (委托权益共识)升级到BFT-DPoS(拜占庭容错-委托权益共识)

EOS 由21个节点(见证人,出块者)参入。

传统:DPoS 的特点:          1、每3秒生产一个区块,每个出块者生产一个区块。出块顺序是无序的。          2、 DPoS的算法中,每一个区块需要21个出块者中的三分之二以上的(大于等于14)的出块者承认,才会永久有效,不可逆。

比如: A 出块后,E如何认同A所出的块呢,那么就是E出块的时候(E在A出的块的基础上自己出了一个块)他认可了A所出的块。              如果C要出块了,那就代表着,他认同了之前的所有的块。            那A所出的块(比如3007),如何被认定不可逆(永久有效)呢?那就是需要后来的至少14个见证人认可他是有效的才行,那时间就是至少15*3=45秒。            为什么是15不是14,因为是这笔交易产生后,3007这个区块生成也许要3秒,就是说包含此交易的区块,也要算一个区块,所以是15。            虽然出块者出块(比如3007)后,是可以广播,但是其他的出块者,即使收到广播,但是没有轮到自己出块,他也无法对该块(3007)进行认可的。            认可的手段:是必须轮到自己出块,并且在前一个块的基础上,产生新的块,才认可前面的块。这是认可的机制。 综上:确认的速度慢。

利用BFT 进行改进: A出块(3007)了后,立马广播,这个时候,A会向所有见证人索要认可(确认) ,不需要等到下一个见证人出块的时候才能认可,直接让其他见证认对该块(3007)的认可。这样就非常快了,如果有超过14个见证认认可,就表明该块(3007)就是不可逆的了,时间估计只要3秒钟(该交易自己的块生成时间)。    

BFT-DPoS(带有拜占庭容错的委托权益共识)的特点: 1、每0.5秒出一个块。每个出块者连续生产6个快(间隔时间是0.5秒)。总共3秒。 2、21个节点顺序出块,自己拟定出块顺序。(随机的话,0.5时间不够,存在需要出块的节点都还没有接收到上一个出块的信息,时间就到了,所以每个出块者出6个块) 3、6个块如果在规定的时间没有被下一个见证者全部收到(比如收到4个块,还有两个2块没有收到),就出现分叉了,接收的见证人就会在接收到的块(比如4块)的最后一个块的基础上生产6个块,并发给其他见证人认可,通过拜占庭算法,最长的链为主链,那么后面的产生的块都会回到主链上来。

关注
打赏
1665194163
查看更多评论
立即登录/注册

微信扫码登录

0.0383s