BitMEX 研究团队进行了 35 次初始区块下载, 将初始区块下载时间作为一个基准测试的指标, 以此来测试 Bitcoin Core 的性能. 测试中使用了 2012 年至 2019 年的 Bitcoin 软件版本.
这段测试中, 我们使用了 2012 年至 2019 年期间的 Bitcoin 软件版本, 结果表明, 该软件在性能上有了相当大的进步, 但也存在很大的差异. 即使使用了最新的电脑硬件, 老版本的 Bitcoin 也难以克服 2015 年至 2016 年期间交易量上升的障碍. 因此, 我们得出结论, 如果没有增强软件性能, 今天的快速初始同步几乎是不可能的.
图 1 - 比特币初始区块下载时间(天)-3 次尝试的平均时间
综述
为了测试 Bitcoin Core 在初始同步过程中的性能, 我们尝试了 35 次初始区块下载, 并记录了每次尝试所花费的时间. 结果如图 1 所示, 说明在 2016 年 2 月推出 Bitcoin Core 0.12.0 时, 由于签名验证从 OpenSSL 升级到 libsecp256k1, 比特币的速度有了明显的提升.(头等仓注: Bitcoin Core 软件 0.12.0 版本升级后, 签名验证速度提升了 7 倍左右.)
Libsecp256k1 是专门为比特币构建的. 此后, 速度上的改进步伐慢了许多, 由于初始区块下载时间的差异很大, 只有多次尝试下载才能看出明显的改进. 但发布 Bitcoin Core 0.12.0 版之后, 相继发布 0.13.0 到 0.19.0.1 版本, 每个 Bitcoin Core 版本的性能都有一个小的逐步提升.
当然, 初始区块下载时间只是一个衡量标准, 还可以从其他角度和条件来评估 Bitcoin Core 的性能. 虽然初始区块下载时间 (IBD) 不是衡量软件性能的最佳指标, 但它占用了大量资源, 因此是一个成为基准测试的良好指标.
本报告延续了之前的两个实验:
.2018 年 11 月, Jameson Lopp 尝试了一次类似的研究, 但分析的重点是旧版本 Bitcoin Core 的独立实现(或简称 "Bitcoin", 因为一些较老的软件在 "Bitcoin Core" 之前命名为 Bitcoin).
.Sjors Provoost 也在 2017 年 7 月尝试了这项实验, 但 Sjors 的同步次数较少.
完整的测试结果和原始数据如下
图 2 - 比特币初始区块下载时间(天)
- (来源: BitMEX 研究)
- (注: 区块高度同步到 602,707)
系统规范和其他说明
完整的结果表格
(来源: BitMEX 研究) (注: 针对比特币 0.8.6 客户端, 以上数据来自 2 次尝试的平均结果)
(来源: BitMEX 研究) (注: 在 Linux 上运行的节点数据. Bitcoin Core 0.19.0.1 只同步区块高度到 602,707)
来源: http://www.tuicool.com/articles/Vb6Zfaj