通往链上扩容之路:极瘦区块(Xthin)对区块传输速度的影响

2016-06-07 16:31 来源:巴比特 阅读:6860
由Andrew Clifford、Peter R. Rizun、@sickpig、Andrew Stone以及Peter Tschipper撰写,特别感谢蚁池的吴忌寒提供区块资源,感谢@cypherdoc和其他慷慨解囊的捐赠者让我们可以支付位于中国大陆的节点。

第4部分:极瘦区块(Xthin)通信所需字节更少

由Andrew Clifford、Peter R. Rizun、@sickpig、Andrew Stone以及Peter Tschipper撰写,特别感谢蚁池的吴忌寒提供区块资源,感谢@cypherdoc和其他慷慨解囊的捐赠者让我们可以支付位于中国大陆的节点。

读者注意:如果你错过了第3部分,你可以点击这里阅读中国的GFW对区块传输速度的影响。

本节,我们对比传输极瘦区块(Xthin)与传输标准区块所需的字节数。

图1

图表1:使用极瘦区块(Xthin)传输技术,所需的字节数只有原来的1/24. 结果很简单:平均来说,传输1MB的瘦区块只需要42kB,因此区块传输所需的带宽只需要原来的1/24(1000kB/42kB)。

本节接下来将更仔细地探讨相关数据。首先,瘦区块技术可以大幅度减少所需字节数,GFC的存在也没有很大地改变平均压缩量。

统计数据与方差分析

下表显示,每bin区块传输字节数的均值、中位值和第95%位值。所有区块的未压缩大小都处在900kB到1MB之间,每bin中未压缩区块的平均大小为0.99MB.

图2

区块传输所需每千字节数量的统计数据

 

使用极瘦区块(Xthin)显著地节约了带宽(41.3kB和42.6kB对比0.99MB),而且GFC似乎也产生了一点点影响。普通P2P网络 上传输的瘦区块比GFC上传输的极瘦区块(Xthin)要少用3%的字节数。为了研究这一点是否具有显著统计意义,我们再进行一次2×2全因子方差分析, 这一次是分析带宽数据。
图3

极瘦区块(Xthin)的影响p值非常明显(p=3 x 10^-8796),但GFC的影响p值并不高(p=0.4)。我们因此可以将极瘦区块(Xthin)影响相关的虚无假设抛开(极瘦区块(Xthin)的 确可以降低带宽要求);但是,我们不能直接否定GFC的影响(没有足够数据来判断GFC是否影响平均压缩量)。

就压缩量而言,bin2和bin4之间并不存在显著的统计数据差别,本节接下来合并分析所有的极瘦区块(Xthin)数据(也就是bin2和bin4)。

布隆过滤器与极瘦区块(Xthin)直方图

下图为:传输极瘦区块(Xthin)所需的字节数的平缓直方图、及其两个局部构件的直方图:极瘦区块(Xthin)(包括丢失交易的)以及布隆过滤器。注意下图的水平轴是以对数尺度呈现的,这是为了捕获数据完整的域。

图4

图表2:布隆过滤器大小、极瘦区块(Xthin)大小(包括丢失交易的)以及总大小(布隆过滤器+极瘦区块)。包含bin2与bin4;N=6685.

盒须图

盒须图揭示了需要远超42kB进行传输的偶然异常值。所有情况中,这都是因为有“胖的”极瘦区块(Xthin),绝非布隆过滤器过大。

图5

图表3:布隆过滤器大小、极瘦区块大小(包括丢失交易的)以及总大小(布隆过滤器+极瘦区块)的盒须图。

布隆过滤器有多大影响?

布隆过滤器是为了让传输节点知晓接收节点的存储池的内容。这使得传输节点在发送接收节点知晓的交易时,可以使用短哈希,而对于接收节点不知晓的交易则完整地发送。在第2部分中展示的那样,这使得区块传输在98.5%的情况下可以只走1.5个来回。

(https://medium.com/@peter_r/towards-massive-on-chain-scaling-block-propagation-results-with-xthin-a0f1e3c23919#.2cu90karu)

所以应该研究存储池(mempool)足够齐次以至于布隆过滤器没有影响的发生频率(也就是说除了coinbase TX(作为瘦区块的一部分总是会被发送)以外,接收节点已经知晓了区块中的全部交易。)

下图将回答这个问题。超过一半的情况中(53%),接收节点已经知晓区块中的全部交易;整个区块都以交易哈希传输,而布隆过滤器毫无作用。17%的 情况中,接收节点缺失知晓一笔交易,9%的情况中,接收节点缺失知晓2笔交易,并如下图的机率密度函数所示,以此类推。总的来说,47%的情况下需要布隆 过滤器来防止第二轮数据往返(除了绿色部分以外的所有情况)。

图6

图表4:传输节点发送的瘦区块包含完整交易信息的频次0, 1, 2, ….10(coinbase TX总是会被发送,不计算在内)。

第5部分:通往大规模链上扩容之路

这一节将总结我们对实验性数据的分析。我们下一个,也是这个5节系列最后一个小节会对如何更好地使用这一技术提出建议(注意,它已经在Bitcoin Unlimited 0.12上部署并成功运行),并一窥究竟Bitcoin Unlimited Laboratory的内部。

(http://www.bitcoinunlimited.info/download)

 

声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

点击阅读全文