IRI 1.5.0 – 新的tip选择算法和其他改进

IRI 1.5.0 - 新的tip选择算法和其他改进

我们正在不断的改进IOTA参考实现(IRI),并使其更接近IOTA白皮书。对于我们所做的任何更新,都需要进行大量的计划、研究、开发和测试。IOTA的IRI团队一直在努力改进目前的tip选择算法。我们很高兴能够在IRI 1.5.0版本中推出一个完整重写的tip选择算法。

想要更详细的了解Tangle?请参考:图解介绍缠结

IRI 1.5.0中引入的新tip选择算法改变了很多东西。本文将简要介绍这些变化,但是如果您想更深入的了解这个新实现,请参阅:Tip选择算法文档

累积权重

在以前的IRI版本中,我们对每个交易使用了简化的权重计算算法。根据Tangle的拓扑结构,以前的方法可能导致结果不能很好地代表Tangle中交易的实际权重,现在已经变更为Tangle白皮书中提出的内容。取而代之的是根据直接或间接引用的交易量来表示每个交易权重的实际值。虽然新方法的计算成本更高,但我们开发了一种算法,使我们能够以高效的内存方式进行计算。

固定子图

权重计算是一个高成本的过程,为了解决这个问题,我们现在使用的是图(graph)的一个固定部分(fixed portion),称为子图(subgraph),我们在其上进行计算。子图是由一个旧里程碑和当前tip之间的图的一部分形成的。子图返回多少个里程碑是由用户定义的“Depth”值定义的,直到预定义的“maxDepth”值。以前的方法也存在其他缺点,比如有一种理论上的可能性,即新的交易会比walker能够以更快的速度地加入到计算中,这种情况在固定子图(Fixed subgraph)上不会发生。

忽略无效交易

之前的IRI实现在遇到无效交易时停止了walker,并返回到该点为止的最后一个有效交易,walker也停在这一点。这使得臭名昭著的blowballs得以形成。我们现在已经改变了这种行为,这样walker会简单地忽略无效交易,将它从批准者列表中移除,并继续在另一条路径上漫步。这使得Tangle变得更加安全。采用先前的方法,对手可能会利用创造blowballs的方式来影响整体确认率。

当大量的交易引用单个特定的交易时(通常是一个里程碑),就会出现Blowballs现象。通过在blowball内部“诱捕”进入的交易,会阻止Tangle的有机成长。[图片来自IOTA StackExchange]

新的转移函数

我们已将IRI中的转移函数更改为指数函数。我们已经对函数的指数版本进行了研究和模拟,并且我们确信它代表了我们在转移函数中需要的行为。该函数还实现了一个'alpha'参数,它使我们能够控制漫步的随机性。我们可以使用该参数来调整功能,以便在漫步的不同部分获得最佳效果。

其他改进

改变tip选择算法的一个非常重要的部分就是记录算法是如何工作的。如前所述,请参阅tip选择算法文档来了解详情。

最后的一个要点是,我们还努力提高了代码的可读性和可测试性,这将使代码的维护和IRI的改进变得更简单。我们也希望它能让您和社区成员能更容易的直接为IRI项目作出贡献。

免费Coin?

如果您正在使用我们的Devnet(以前的testnet),您或许会很高兴听到我们现在已经使免费测试coin的获得变得超级简单。我们创建了一个水龙头网站,在那里你可以申请coin,只需提供你的IOTA地址就行了!

请在IOTA Discord的#testnet频道上反馈水龙头网站的任何问题。

弃用testnet网址

请注意,testnet的所有网址现在已被弃用。我们在将来会删除所有testnet.iota.org网址,并启用新的网址:devnet.iota.org。

发行说明

当新版本可用时, 发行页面上会提供完整的发行说明。

本次版本更新包括以下内容:

  • 修改tip选择算法(#778
  • 验证alpha值(#817
  • TipSelection:更新API参考(#773
  • 可用处理器数量的插入检查。 (#758
  • 改进的Docker支持(#744
  • 更快的PearlDiver(PoW)(#733
  • Kerl哈希速度提高(#628
  • 路由返工日志(#727

其它小型更新和修复

  • 修复了attachmentTimestampUpperBound的值(#777
  • 修正了‘getBalances’,‘tip’参数解析(#776
  • 添加哈希到‘tx_trytes’ ZMQ主题(#739

感谢Alon ElmaliahAlon Gal

Tip:如果文中遇到难以理解的地方,建议您结合文后附加的官方原文进行阅读。

 

原文链接:https://blog.iota.org/new-tip-selection-algorithm-in-iri-1-5-0-61294c1df6f1

胖子李

专栏作者:胖子李

个人简介:我共发表了 190 篇文章,总计被阅读了585,635 次,共获得了 1,879 个赞。

作者邮箱 作者主页 Ta的文章

1条评论 “IRI 1.5.0 – 新的tip选择算法和其他改进”

发表评论

电子邮件地址不会被公开。 必填项已用*标注