找回密码
 立即注册

扫一扫,登录网站

首页 百科 查看内容
  • 17107
  • 0
  • 分享到

迅雷链介绍——共识算法

2018-5-28 14:29

来源: 区块链游戏大全 作者: 小谢

迅雷链共识算法


迅雷链采用了同构多链架构,将不同的账户锚定在不同的同构链上,然后接入层将交易路由到发送方所在的链上进行区块打包与共识。

共识成功的区块中的交易会根据接收方所在的链的不同,跨链转发到相应的链上。若交易接收方与发送方同属于一条链,则不再进行交易转发。

在每一条同构链上,验证人节点对打包好交易的区块进行共识。共识采用优化过的 PBFT 算法。


以处于某一区块高度的共识操作为例,由于共识的达成需要超过 2/3 的节点确认,因此每一次共识可能需要多轮投票才能达成。

与传统的 PBFT 算法类似,对于每一轮共识操作,又包括三个阶段: Propose,Prevote 和 Precommit。

当在某一轮达成共识(收到+2/3 的 Precommit 投票)后,就会进入对下一个高度的共识,从第 0 轮开始。下面简单介绍下详细的步骤:

首先介绍一个锁定区块的概念,表示在某个特定的高度和轮数,节点对某个块收到超过节点总数 2/3 的 Prevote 投票集合后,则此节点对于此高度此轮的区块进行锁定。也就是说,节点以锁定区块来表示对某一个区块的认可。

Propose 阶段:系统中所有验证人节点轮流作为提议者提出提议,而系统中非提议者的节点在收到提议后,就会进入 Prevote 阶段。如果当前节点此前存在已锁定区块,则还需要收集所有针对已锁定区块的 Prevote 投票。

PreVote 阶段:当节点进入到 Prevote 阶段后,每个节点广播自己的PreVote 投票。

具体的,如果当前区块高度或投票轮数高于此前已锁定的区块高度或轮数,则将原锁定的区块进行解锁。

如果此时节点仍含有未解锁的区块,则对此锁定的区块投 PreVote 投票。或者如果节点收到合法的 Propose 区块,则对此区块投 ProVote 投票。

当阶段超时或者接收到大于 2/3 的针对某个块的投票后,则节点锁定此区块并进入。

PreCommit 阶段:当节点存在已锁定区块,则对此区块投 PreCommit 投票。当节点收到针对已锁定区块大于 2/3 的 PreCommit 投票是,就可以将这个块 Commit,并且进入针对下一个高度块的共识。

若 PreCommit 阶段定时器超时,则节点保存已锁定区块,然后重新返回到 Propose 阶段。

各节点通过在以上阶段上循环,对区块进行一致性共识。与 PBFT 算法类似,迅雷链共识也经过了三阶段提交,但通过引入区块锁定操作,通过缓存待确认区块,降低了未达成共识情况下重复通信区块带来的网络压力,从而提升了共识效率。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。
1234567
相关新闻
发表评论

请先 注册/登录 后参与评论

    回顶部