资讯正文

全球区块链监管查询APP

扫一扫下载APP

    首页  >  产业  >  正文

    了解Solana:领导者轮换机制

    金色财经   |   07-21 18:32

    分享到:

    微信分享 ×
    微信扫描上方二维码

    摘要: Solana生态系统中有多个角色(领导者、验证者、存档者等)。与DPoS区块链不同,Solana不会在网络参与者之间委派这些角色,而是由Solana节点履行网络的所有角色。

      可扩展性是区块链行业的一个持续性挑战。

      随着去中心化金融的爆炸式增长,区块链对于可扩展性的要求越来越高。各种区块链正试图通过分片、Layer2和侧链等可扩展性方案来解决此难题。而Solana却采用了更直接的方案——在Layer1提供超快速、安全且抗审查的公链,以此为面向全球的去中心化应用提供高可扩展性的开放基础设施。

      归功于独创的PoH(工作历史证明)共识,性能为业内顶尖的Solana正着向世界上第一个Web级的去中心化网络迈进。基于工作历史证明证明,Solana链上的所有节点能够通过算法生成统一的时间戳,降低信任成本,提升效率,同时其所有的验证和处理都以异步的状态进行。

    Solana的领导者及作用

      Solana生态系统中有多个角色(领导者、验证者、存档者等)。与DPoS区块链不同,Solana不会在网络参与者之间委派这些角色,而是由Solana节点履行网络的所有角色。

      Solana领导者的任务是生产新区块,它们每四个块(1.6秒)旋转一次。处于领导地位的节点将所有交易放入该节点正在生产的四个区块中。该节点将这些包含事务的块显示给名为Solana Clusters的相关节点组。集群使用数字时间戳作为参考来验证交易,并将记录快速传递给其他节点。

      创世配置声明了第一个纪元的第一个领导者。这个领导者最终被安排在前两代,因为领导者计划也在下一个时代的slot 0生成。前两个时期的长度也可以在创世配置中指定。第一个纪元的最小长度必须大于或等于Tower BFT中定义的最大回滚深度。

      在工作历史证明的支持下,领导者会不断轮换,无论网络状况如何,整个网络都无需任何验证者交流,遇到错误也不会停止,而是马上在新的区块高度上开始接下来的行动。这意味着Solana的网络成为了“永动机”。因为领导者和验证者都是可轮换的。

      同时,Solana领导者的轮换决策是异步进行的。这一核心创新开辟了其向上堆栈的设计空间。

    Solana的领导者轮换

      领导者是被精确选择的,但一次只有一个领导者的弊端也同时存在。

      恶意领导者可以审查投票和交易。由于审查无法与网络丢弃数据包区分开来,集群不能简单地选择一个节点来无限期地担任领导者。相反,集群通过“轮换”机制来规避恶意领导者的风险。

      前文介绍,领导者的产生和认证都是异步进行的。在整个系统中,每个领导者都被分配在一个插槽的插槽顺序列表“领导者时间表”中,对照这个列表,每个验证者都能使用相同的算法选择预期的领导者。当验证者收到一个新的签名分类帐条目时,可以确定条目是由预期的领导者生成的。

      因此,如果想保证系统判断的流畅性,“领导者时间表”的调度必须在它分配的槽位之前早早地被计算出来,这样它用来计算调度的分类帐状态才能最终确定。

      那么“领导者时间表”又是怎样产生的呢?

      1. 定期使用PoH刻度高度(一个单调递增的计数器)来播种一个稳定的伪随机算法;

      2. 在该高度,对所有具有领导身份的抵押账户进行抽样,这些账户在集群配置的滴答数内进行了投票。该样本称为活动集;

      3. 按权益权重对活动集进行排序;

      4. 使用随机种子选择按权益加权的节点以创建权益加权排序;

      5. 此排序在集群配置的滴答数后生效。

      该持续时间称为领导者计划偏移量。Solana将偏移量设置为槽的持续时间,直到下一个纪元。

      也就是说,一个epoch的leaderschedule是从上一个epoch开始时的账本状态计算出来的。一个epoch的偏移量是相当任意的,并假设足够长,以便所有验证者都将在生成下一个时间表之前完成其分类帐状态。集群可以选择缩短偏移量,以缩短权益变更和领导者时间表更新之间的时间。

      由于这样的异步性,在下一个时期之前,提交给根分叉的任何新信息都不会处于活动状态。直到新的领导者诞生,并生产第一个跨越纪元边界的区块。

      如果分区的持续时间不超过一个纪元,这种交流也不会中断,而是按照如下方式继续运作:

      1. 验证者在投票时不断更新自己的根叉。

      2. 每次槽高度越过一个纪元边界时,验证者都会更新其领导者时间表。

      例如: 纪元持续时间为100个时隙。根分叉从在槽高度99计算的分叉更新为在槽高度102计算的分叉。由于故障,槽高度为100、101的分叉被跳过。新的领导者调度是在槽高度102使用fork计算的。它从槽200开始一直有效,直到它再次更新。

      在这个跳跃式的解决方案中不会存在不一致的现象,因为当其根通过102时,与集群投票的每个验证者都跳过了100和101。所有验证者,无论投票模式如何,都将提交给102或102的后代的根。

      在不增加网络吞吐量的情况下,Solana验证者可以管理10万笔交易的内存池大小。这意味着,在网络吞吐量为5万TPS的情况下,10万笔交易的内存池在几秒钟内就能执行。

      验证者们将转发(forwarding)推送到网络边缘,这被称之为海湾流(Gulf Stream)。由于每个验证者都知道未来领导者的顺序,验证者可以提前将交易转发给预期的领导者。这使得验证者可以提前执行交易,减少确认时间,更快地切换领导者,并减少未确认交易池对验证者的内存压力,让Solana每秒可处理5万笔交易。

    结语

      Solana的核心创新是工作历史证明(PoH),它使得Solana的网络可以认证无需许可的时间来源,可以在达成共识之前工作,从而大大提升了可扩展性和流动性。

      而领导者轮换机制更是其中“先一步”理念的重要体现:先一步制定“领导者时间表”、先一步将交易和信息推送至新的领导者、绕过错误和故障先一步处理正确的信息……由于无需信任的异步处理,让Solana在处理速度方面快人一步。

      凭借独特的共识和各种机制,如今Solana已经在加密世界拥有了巨大的影响力,其生态系统的采用率还会增长到何种程度,我们拭目以待。