草稿。下列数字来自一次内部压测。硬件、节点数量、软件版本与交易类型仍待补充,补齐之前本页保持不被搜索引擎收录。
本页说明 Bitroot 如何度量吞吐、在什么条件下度量,以及这些数字如何复现。设计目标与实测结果分开列出,每个实测值都注明它来自哪一次测试。
1. 目标与实测
| 指标 | 设计目标 | 最近一次实测 | 测试 |
|---|---|---|---|
| 吞吐(TPS) | 100,000+ | 36,430.68 tx/s,整个测试期间的平均值,自首笔至末笔上链交易 | 3000 万笔交易压测,见第 4 节 |
| 终局确认时间 | 待补 | 待补 | 本次测试未覆盖 |
| 出块时间 | 待补 | 待补 | 本次测试未覆盖 |
实测吞吐低于设计目标。设计目标描述的是架构意图达到的水平,实测描述的是某一次测试实际跑出的结果。
2. 指标定义
这里的 TPS 是链上口径:已上链交易数,除以从首笔到末笔上链所经过的时间,而不是压测工具的发送速率。通用术语见性能指标词典。
TODO(研发):说明是否包含共识与网络开销,以及失败交易如何计数。本次测试没有失败交易。
3. 测试环境
| 项目 | 取值 |
|---|---|
| 运行模式 | mempool |
| Nonce 模式 | local |
| 签名账户数 | 500 |
| Mempool TXs | 100,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 万笔交易压测 |