在part1 中,我们不仅介绍了什么是tangle,同样也了解了tips、以及tip 的选择算法及其重要性等。在本章节中,我们先学习 transaction rates 和 network latency 的概念,这两个特征决定tangle 的具体形状;最后,我们再来学习the unweighted random walk 的定义。
在 part1 的模拟中,细心的读者或许可以发现,随着时间的推移交易并不会均匀分布,有时会稀疏,有时又会密集。因为该模拟使用的是Poisson point process(泊松过程)。该算法所产生出的随机性,可以使整个tangle模拟过程更贴近现实情况。通过这个通用的泊松过程模型,我们可以很方便模拟出日常生活中的一些场景,例如,在给定时间内,有多少顾客会进入商场,或者有多少电话打到一个呼叫中心。图1-1 例子为我们展示在Tangle模型中对应的交易行为;在示例中,交易4、5、6几乎同时到达,而经过一段较长的等待时间后,交易7才单独到达。
目前,对于泊松过程,我们只需要它其中一个作用:平均的单位时间交易到达率 λ,它是一个常量,意味着单位时间内,将会有λ 笔交易到达。这里举一个简单的例子,假设λ=2,需要到达的交易数为100,换言之,每个单位时间内都会有两笔交易到达,并在50 个单位时间后,这100交易全部到达。
我们在来深入理解一下λ 的作用,我们讨论两种极端情况。第一种是极端小,我们假设λ=0.1,tangle 所展示的则是图1-2的形状,因为在λ=0.1情况下,意味着需要经过 10 个单位时间才会有一笔交易到达,换言之,每一笔即将到达的交易只有一笔交易可选择认证,因此,tangle会退化成链状。另一种是极端大的情况,我们假设λ=11,tangle 所展示的则是图1-3的形状,因为在一个单位时间内有大量交易同时到达,但有效的交易只有创世交易“可见”,因此,所有到达的交易只有创世交易可选择认证。
在上面λ=11 极端大的例子中,我们提到了创世区块“可见”。这里我们来解析另一个重要的 参数 (该参数设定为h),network latency,网络延迟。这个延迟意味着一笔交易需要做好相关的准备工作以及经过IOTA网络充分传播,才被认为是有效交易,我们也称之为“可见”。这个参数的引入,主要是模拟一笔新交易的到来需要传播所带来的延时,从而使tangle更接近现实世界;并且,它可以更好的避免tangle 退化成一条无聊的链。我们假设h=1,则意味着,每笔新到来的交易只有经过1个单位时间后,才是“可见”交易,即有效交易。
上面的模拟中,我们使用的 是 uniform random tip selection,即均匀随机选择;最后,我们在来介绍一个更高级的tip 选择算法:unweighted random walk。该算法下,我们将一个游历者(walker)放在在创世交易的位置(交易[0]),然后开始“走向”需要选择的tip。路劲选择的规则如下:游历者当前所在的交易为t[a],而选择的交易类型有两种,一种是tip 交易,一种则是非 tip交易,即被认证的交易。所有的的选择都是随机的。如果选择的交易为tip 交易,则进行认证,并建立关联,游历完毕。反之,如果存在直接认证t[a]的交易集合中(a[x]、a[x-1]...),则随机选择其中一个作为 移动目标(这里假设选择结果为a[x]),然后,游历者 会从t[a] 移动到 t[x],然后再次按照上述规则进行移动,直到没有交易可选择或者选择的目标为tip 交易,才完成选择。而随机则可以视为无权重。
如图1-4 的动态实例中,walker 从 交易[0] 开始游历,所游历过的路径会设置为红色,而蓝色路径 则为 待选择的路径,如果遇到多个待选择路径,则随机选择,直到选择“可见”tip 作为终点,图列中的透明交易被视为 “不可见”tip。
到这里,本章节完毕。