Towards Massive On-Chain Scaling: Block Propagation Results With Xthin
Part 3 of 5: Xthin blocks are less affected by the Great Firewall of China than standard blocks
By Andrew Clifford, Peter R. Rizun, Andrea Suisani (@sickpig), Andrew Stone and Peter Tschipper. With special thanks to Jihan Wu from AntPool for the block source and to @cypherdoc and our other generous donors for the funds to pay for our nodes in Mainland China.
Note to readers: These experiments were carried out with Bitcoin Unlimited nodes running on the Bitcoin network. Xthin has been deployed and helping improve network connectivity since March 2016.
In Part 1 we explained the motivation for Xthin and described our experimental methodology, while in Part 2 we investigated the length of time required to propagate blocks between nodes over the normal P2P network. In this post, we focus on the Great Firewall of China (GFC) — the GFC’s adverse effect on block propagation is often cited as a primary obstacle to on-chain scaling. As this post builds upon concepts introduced in earlier posts, please read parts 1 and 2 if you haven’t already done so.
We begin with the headlines: not only are Xthin blocks faster than standard blocks, they are also less affected by the Great Firewall of China (GFC). Xthin blocks propagated on average 5.6 times as fast across the normal P2P network (3.9 s / 0.7 s), and 9.7 times as fast through the GFC (17.4 s / 1.8 s). The GFC slowed standard blocks by a factor of 4.5 (17.4 s / 3.9 s) and slowed Xthin blocks by a factor of 2.6 (1.8 s / 0.7 s). All blocks had an uncompressed size between 900 kB and 1 MB.
The remainder of this post explores the data behind these headline numbers, and concludes with an animation of a Xthin block racing a standard block through the GFC.
Recall from Part 1 that our experimental setup included six Bitcoin Unlimited nodes, two of which sat behind the GFC connected to AntPool (Core node).
Smoothed histograms of block propagation times for each bin are plotted on a common time scale below. These charts attest to the statistics reported earlier: Xthin blocks transmitted over the normal P2P (Bin 2) are the fastest, followed Xthin blocks transmitted through the GFC (Bin 4), then standard blocks transmitted over the normal P2p network (Bin 1) and lastly standard block transmitted through GFC (Bin 3). Note that propagation time is plotted on a log scale—as illustrated later, these distributions have very long tails.
The same data visualized using box-and-whisker charts reveals the significant number of slow-block outliers (in all bins).
As explained in Part 2, the mean propagation time is the most representative average, but it was also the most difficult to accurately measure. The median significantly understates the effect of very slow blocks while the 95th percentile is not a true average.
Another useful average is what we refer to as the derived mean. It is derived by calculating the (arithmetic) mean of the log-normal distribution that best fits the data. This has the advantage of accounting for the long tail while taming the effect of extreme outliers. Its disadvantage is that it still understates the actual mean for distributions with fatter-than-lognormal tails (although not nearly to the extent of the median).
The following table summarizes the mean, median, 95% percentile, derived mean and our headline numbers. For Bin 1, the headline propagation time is the mean value after correcting for the effect of a small number of outliers (refer to the “fat tail” discussion below).
Analysis of Variance
Performing a 2x2 full-factorial ANOVA on the (logarithm of) the propagation time dataset suggests that both the use of Xthin (p=2 x 10^-787) and the presence of the GFC (p=6 x 10^-287) produced statistically significant effects on the average propagation time.
The third p-value describes the significance of the interaction effect between Xthin and the GFC. The interaction effect is the extent to which the GFC affects Xthin blocks differently than standard blocks. Because ANOVA implies that the interaction effect is significant, we reject the null hypothesis in favour of the hypothesis that Xthin blocks are less affected by the GFC than standard blocks.
Whether the blocks are thin or thick, their tails are fat
The chart below visualizes the tails of the propagation time distributions, thereby permitting a closer examination of the outliers. As explained by @jbreher at bitco.in:
‘# of nines’ is the proportion of [blocks that propagate] within the time on that data point’s Y axis. So 90% of all [blocks propagate] within some time, 99% of all [blocks propagate] within some larger time, 99.9% [propagate] within some time larger yet…
The jump in the curve for Bin 1 near 99% corresponded almost entirely to the very slow blocks received by the Shenzhen node. The elevated number of very slow blocks in Bin 1 explains its large mean value (relative to the other statistics such as the derived mean). To account for this, the tail was adjusted as indicated by the X’s, and the the mean value was corrected.
Visualizing the improvement in propagation times
We conclude with an animated race between a Xthin block and a standard block to the other side of the GFC. The animation is representative of real performance and plays at the real speed.
Part 4 of 5: Xthin blocks require fewer bytes to propagate
This post concludes our examination of the length of time required to propagate a block. In the next post, we will turn our attention to the number of bytes required.
Download Bitcoin Unlimited
You too can help improve network block propagation by downloading and running Bitcoin Unlimited today [link].
This document and its images are placed in the public domain.