Bitcoin SV区块链交易处理能力报告
by Daniel Connolly
十月 9, 2020 (1min read)

上周,Bitcoin SV区块链的交易量连续几天较之前增长了近一倍。这次交易量激增使我们有机会能够研究网络并评估在更高负载情况下的网络性能。

时间线

全网传播的交易数量上升大约开始于9月29日清晨4点(本文所有时间和日期均使用UTC时区)。交易速率逐渐增加到每秒20笔(TPS),并且从那时起基本保持稳定,持续了56个小时以上。

从下图可以清楚地看到这一点,图中显示了nChain的一个节点内存池中交易数量的增长速率。

图1:内存池中的交易数量增长速率

我们分析的时间段是2020年9月29日4:00至2020年10月1日12:00点之间,但为了便于比较,图中也附带了一些此时间段之前的数据作为参照。

区块链性能

我们最先检验的就是区块链本身。

图2:每日平均每秒交易数量(TPS)

图2展示了按日平均计算出的每秒交易数量(TPS)。我们能看到9月29日和30日期间有明显的交易量上升。

图3:每日交易数量和每日平均区块大小

图3的两个图表展示出在这两天里,每日交易总数量和每日平均区块大小有近似的增长。

图4:区块大小与交易数量的相关性图

图4针对我们所关注的时间段内所产生的区块,在图中标记出了它们的区块大小与区块内包含的交易数量。图中有许多较小的区块,但也有大量在10MB到30 MB范围的区块,还有一两个更大的区块。图表还显示出了区块大小与交易数量之间的直接相关性。但有两个区块,它们包含的交易数量明显低于正常标准,这些块可能包含较大的数据型交易。图表中最大的区块为58.4 MB,包含19.9万笔交易。

软件性能

在nChain我们管理着许多不同配置的系统,并监控这些系统的性能。我们核查了这些系统在此时间段内的性能表现,发现结果都是相似的。下面的图表具有代表性,取自配置最低的系统之一,这个虚拟机具有4GB内存和2个虚拟CPU。这张图表与节点软件的性能相关,涵盖了从9月25日上午到10月2日上午的时间段,大约7天。

图5:相连接的节点数量

图5显示的是与其他节点的开放连接数量,在我们对系统进行考察的时间段里节点连接数量基本保持不变。

图6:内存池大小

图6是关于内存池的图表,内存池指的是节点软件接收交易的交易池。你在此可以看到一种重复出现的模式——软件接收交易,但在区块被挖出时这些交易则从内存池中被删除。

图7:内存池的详细数据表

图7更详细地展示了10月1日至10月2日上午这段时间的内存池数据。绿色的线表示内存池大小(以字节衡量),橙黄色的线表示内存池中的交易数量。正如我们所料,这两条线高度相关。10月1日的早上内存池增长到了52MB以上,有194000笔交易,随后一个区块(高度654926)打包了所有交易,将内存池清空。

系统性能

nChain管理着许多不同配置的系统,并监控这些系统的性能。

图8:总体CPU使用率

图8显示了系统的总体CPU使用率。我们可以清晰地看到当交易数量上升时,CPU使用率也会上升,但是总的来说CPU使用率依然是比较低的。

Bitcoin SV区块链的目标是进行大规模扩容,因此已对节点进行了大幅优化,以增强可扩展性。一个关键的策略是将节点功能并行化,这样处理负荷就可以均匀地分布在多个处理器上。

图9:单核CPU使用率

图9显示了每个处理器的使用率,图中可以看出负载在机器的处理器之间上均匀分配着。虽然这个系统只有两个处理器,但其它多核的机器上,负载在不同处理器之间也呈现类似的均匀分布模式。

图10:6 CPU系统的单核CPU使用率

图10显示了在相同时段,6 CPU系统的每个处理器的使用率,它进一步展示了多个处理器之间的负载分布情况。请注意,请注意该系统大约连接了100个节点,因此与较小的系统相比处理器的使用率有整体的上升。

图11:内存使用情况

图11显示了由于交易数量庞大导致内存使用量如预期般增长,但是这种增长是适度的,并且在系统的能力范围内。

尽管交易量上升了一倍,这个小型系统依然能够轻松地跟上区块链的进度。

结论

交易量翻倍对Bitcoin SV区块链没有产生不利影响。区块链、网络和系统都能够实现扩展以满足需求,增加的交易量能被轻松的吸收。Bitcoin SV支持大区块的能力使交易量到达高峰时也能够被快速地处理,从而区块确认时间也能保持一致。

在多个处理器之间并行处理交易也进行的十分顺利,负载在处理器之间能够被平均分配。未来随着交易量的增加,只需根据需求部署更强大的服务器即可。

Articles-zh