快捷搜索:  创业 手机 疯狂 生态 坏人 华人 发明

仰望确认高度-探索V19 Solidus中的这一新功能将带给我们多少

确认高度是即将发布的Nano节点Solidus版本中的一项主要功能,有助于使网络更安全,高效和易于访问,同时为大量新功能奠定基础。

一旦在V19中设置此高度,它将提供确认历史记录,允许在分类帐中固定块,并将用于减少选举。这些更改将允许更低的网络流量,并使更容易的方式与Nano集成服务。

让我们来看看这个新增内容以及未来版本的功能。

今天的实时选举过程

迄今为止,Nano节点依赖于实时选举过程来确定是否通过网络确认了块。这些选举经常发生,截至今天,他们的结果没有明确地被节点捕获以供以后参考。相反,它们是实时观察的,如果以后对它们的有效性有任何疑问,该节点需要再次进行相同的选举过程。以下是它如何工作的简化说明,列出的数字对应于混合的图表:

  • 当通过UDP(用户数据报协议)在实时网络上接收到块时,它们被插入到分类帐(1)中并且选择开始(2)。这意味着节点对事务是否有效进行投票,并与其连接的其他节点共享这些投票。
  • 对块和任何可能的冲突块的投票进行统计。删除丢失的块仅留下单个获胜块(3)。一旦在获胜块上达到此仲裁,它就会触发RPC(远程过程调用)回调(如果已配置)并在其他RPC调用中显示,以便实时跟踪服务可以验证它是否已被网络确认(4) 。
  • 除了UDP网络之外,还可以通过TCP(传输控制协议)引导网络(5)从其他节点批量请求块。这主要在启动新节点时或在检测到帐户的块间隙时完成,例如当节点不同步时。当这些块通过TCP引导程序网络进入时,它们将被插入到分类帐中,但不会启动选举。因此,不会触发RPC回调,并且不会在任何仅为已确认块保留的RPC调用中返回它们。
  • 未来在现场网络上对其前面的块进行的确认暗示了对这些自举块的确认(6)。然后可以将对自举块的确认视为被动过程以节省投票流量(7)。
Pre-Solidus实时选举流程图。
  • 由于历史投票数据不是由节点记录的,因此确认节点知道块的唯一方法是观察实时选举的结果。从节点的角度来看,它本身并不能确定是否先前在网络上确认了较旧的块。这是因为块可以通过TCP引导网络进入,而不会触发主动选举。
  • 这种设计的结果是,如果在任何时候需要确认实时网络上不活动的特定块,则需要对该块(8)进行RPC block_confirm调用,这将启动网络上的新选举( 9)。一旦达到网络仲裁(10),就会触发RPC回调(11),您可以观察并记录节点外的必要细节。
该图显示了节点必须如何确定不在主动选举中的块的确认

这种对确认的实时投票的依赖会产生一些后果,包括重复选举带来的网络额外流量,以及确定在实时投票期间是否看不到网块确认块是否更加困难的过程。

确认的更好方法

通过Solidus和确认高度的引入,这种对实时选举的依赖性被消除了。相反,使用帐户上的单个字段跟踪确认,如下所示:

  • 当前在V18上,添加到帐户的每个块都被赋予块高度 - 第一个块从1开始的整数值,并且随着每个块的增加而递增。因此,例如,帐户的第15个块的块高度为15。
  • 对于确认高度,当块达到实时网络上的仲裁时,它被认为已确认,并且帐户上的确认高度被设置为该确认块的块高度值(15,17)。
Solidus将引入确认高度,从而无需对未参加活动选举的街区的确认状态进行实时选举
  • 然后,该节点将向下追溯到任何祖先块并更新已经隐式确认的相关帐户的确认高度(18)。
确认高度如何汇集到祖先块
  • 当实时或自举网络上出现附加块时,它们将根据此确认高度进行评估,如果它们与块高度等于或低于当前确认高度匹配,则它们将被丢弃为无效。不考虑任何叉子或选举开始,这导致在确认高度或低于确认高度时立即“粘合”块。
  • 当需要对块执行确认时,可以进行RPC block_info调用(19)并且块高度与确认高度的比较将导致真或假响应(20)。这样做不会触发网络上的额外选举。
在这里,我们可以看到查询块确认状态不再导致在实时网络上进行选举。

确认高度为许多强大功能奠定了基础,其中一些功能包含在此版本中,其他功能则计划用于将来的更新。

提供V19

RPC调用中包含的确认状态

更新了block_infoblocks_info RPC调用以返回有关确认高度的详细信息,包含在V19中。由于需要开始选举以验证对实时网络上未激活的块的确认,因此之前无法使用此功能,但现在通过确认高度,可以根据帐户的确认高度对所涉及的块高度进行简单检查。

确认依赖选举

设置确认高度时,帐户中该高度以下的任何块也将被视为通过扩展名确认,以及来自其他帐户链的任何相关块。这意味着节点可以停止对这些较低块的任何选举,并将其从任何处理队列中删除。这将节省处理和带宽资源。

进入未来版本

仅在自举网络上提供已确认的块

今天,引导网络可以根据请求向同行提供已确认和未确认的块。但是在确认高度的情况下,引导块可以仅限于已确认的块,这有助于减少未确认块的扩散。

更好的分类帐快照

当快照分类帐用于其他节点时,它们可以仅限于确认高度的确认块。这允许在某些可信方案中使用分类帐,并保证其中包含的块已在网络上得到确认。

Ledger修剪

该确认高度提供了一个值,可以更容易地管理修剪工作。作为确认的前沿,可以从分类帐中删除高度低于此值的所有块,无论其前面的未确认块的数量如何。

感谢 Andy Johnson。

您可以还会对下面的文章感兴趣:

  • 每周更新19/9/27-庆祝Nano网络的继续分散化
  • Nano PoW —基本要素
  • V20 —看看莉迪亚(Lydia)
  • 每周更新9/20/19-V20 Lydia即将推出
  • 每周更新9/13/19-Metal Pay加入Nano生态
  • 最新评论

    留言与评论(共有 0 条评论)
       
    验证码: