// 研究

Bitroot 性能基准

草稿。下列数字来自一次内部压测。硬件、节点数量、软件版本与交易类型仍待补充,补齐之前本页保持不被搜索引擎收录。

本页说明 Bitroot 如何度量吞吐、在什么条件下度量,以及这些数字如何复现。设计目标与实测结果分开列出,每个实测值都注明它来自哪一次测试。

1. 目标与实测

指标设计目标最近一次实测测试
吞吐(TPS)100,000+36,430.68 tx/s,整个测试期间的平均值,自首笔至末笔上链交易3000 万笔交易压测,见第 4 节
终局确认时间待补待补本次测试未覆盖
出块时间待补待补本次测试未覆盖

实测吞吐低于设计目标。设计目标描述的是架构意图达到的水平,实测描述的是某一次测试实际跑出的结果。

2. 指标定义

这里的 TPS 是链上口径:已上链交易数,除以从首笔到末笔上链所经过的时间,而不是压测工具的发送速率。通用术语见性能指标词典。

TODO(研发):说明是否包含共识与网络开销,以及失败交易如何计数。本次测试没有失败交易。

3. 测试环境

项目取值
运行模式mempool
Nonce 模式local
签名账户数500
Mempool TXs100,000
小费(Tip)5,000,000,000 wei(5 gwei)
网络待补(测试网、开发网或隔离集群)
节点数量与角色待补
单节点硬件(CPU、内存、磁盘、网络)待补
地理分布与延迟待补
软件版本与 commit待补
测试日期待补

压测工具还输出了 blocks 为 300、chunk size 为 0 KB 两项设置。TODO(研发):在把它们作为测试条件公布之前,先说明这两项的含义。

4. 负载与结果

项目取值
计划发送交易数30,000,000
实际发送交易数30,000,000
上链交易数30,000,000
发送失败0
重试次数0
成功率100.00%
发送耗时805.19 s
链上吞吐36,430.68 tx/s

TODO(研发):说明交易类型。报告里接收方为 "default",没有说明本次用的是原生转账、代币转账还是合约调用。纯转账的数字是真实应用的上限,必须在结果旁边写明。冲突如何改变吞吐,参见并行 EVM 的负载热点。

原始输出

压测工具的原始报告,未做任何修改:

==================================================
🔥 Stress Test Report
==================================================
Total Planned:       30000000
Successfully Sent:   30000000
Duplicate Sent:      0 (already known, not counted above)
Failed to Send:      0
Landed Transactions: 30000000
Success Rate:        100.00%
Retry Attempts:      0
Signing Time:        79499764 ms (all sign_batch_txs)
Total Pause Time:    79499764 ms (incl. recharge & signing)
--------------------------------------------------
Send Duration:       805.19s
Total Duration:      805.19s (incl. waiting)
Average RPS:         46425.94 req/s (send speed)
Average TPS:         46425.94 tx/s (inclusion speed)
--------------------------------------------------
Run Mode:            mempool
Nonce Mode:          local
Signer Count:        500
Blocks:              300
Chunk Size:          0 KB
Tip Wei:             5000000000
Mempool TXs:         100000
To:                  default
Real Chain TPS:      36430.68 tx/s (first to last landed)
==================================================

工具输出了两个吞吐数字。本页采用的是链上口径 "Real Chain TPS"(36,430.68 tx/s,自首笔至末笔上链交易)。"Average RPS" 与 "Average TPS"(46,425.94)不采用:3000 万笔除以 805.19 s 约为 37,257 tx/s,与之对不上。

TODO(研发):说明工具如何计算 "Average TPS",以及 "Signing Time" 与 "Total Pause Time"(各 79,499,764 ms)度量的是什么,便于读者核对这份报告。

5. 复现方式

TODO(研发):给出压测工具、确切的 commit、命令行与配置、原始输出的链接。

6. 已知限制

  • 一次测试不等于持续的生产负载,它只说明在这套配置下网络大约 13 分钟内的表现。
  • 负载只有一种。高争用场景,例如大量交易访问同一合约,不在本次测试范围内。
  • 结果只适用于上表补全后的环境,不适用于其他环境。

7. 独立验证

TODO(产品):链接任何第三方测量或审计报告,注明机构、范围与日期。如果暂时没有,在此如实说明。

8. 更新记录

日期变更
待补首次发布:3000 万笔交易压测