草稿。下列數字來自一次內部壓測。硬體、節點數量、軟體版本與交易類型仍待補充,補齊之前本頁保持不被搜尋引擎收錄。
本頁說明 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 萬筆交易壓測 |