Solana Geyser gRPC - gRPC 延遲測試

本指南將向您展示如何測試 Solana Geyser gRPC 伺服器的延遲。

前提條件

安裝 SLV CLI:
bash
curl -fsSL https://storage.slv.dev/slv/install | sh

測試 gRPC 延遲

您可以使用以下命令輕鬆測試 Solana Geyser gRPC 伺服器的延遲:
bash
slv check grpc --help
Usage:   slv check grpc
Version: 0.9.0

Description:

  Check gRPC endpoint

Options:

  -h, --help              - Show this help.
  --endpoint  <endpoint>  - gRPC endpoint URL
  --token     <token>     - Token for authentication
如果您沒有 Geyser gRPC 訪問許可權,請參閱 Geyser gRPC 快速入門指南。

執行延遲檢查

如需直接測試共享端點,請將自己的端點填入下面的命令並執行:
bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token none
示例:
bash
  ~ slv check grpc --endpoint http://grpc-ams1.erpc.global --token none
Checking gRPC endpoint: http://grpc-ams1.erpc.global
Current latency: 540 ms, slots: 0
Avg latency: 540 ms
Current latency: 962 ms, slots: 1
Avg latency: 751 ms
Current latency: 394 ms, slots: -1
Avg latency: 632 ms
Current latency: 776 ms, slots: 0
Avg latency: 668 ms
Current latency: 1157 ms, slots: 1
Avg latency: 765.8 ms
Current latency: 529 ms, slots: 0
Avg latency: 726.3333333333334 ms
Current latency: 891 ms, slots: 1
Avg latency: 749.8571428571429 ms
Current latency: 249 ms, slots: -1
Avg latency: 687.25 ms
測試將繼續檢查 Geyser gRPC 伺服器的延遲。
您可以按 Ctrl + C 停止測試。

參考:理解 gRPC 延遲

在測量 gRPC 延遲時,您可能會看到超過一秒的值。起初這可能感覺"很慢",但請記住 Solana 的出塊時間僅記錄到秒級——毫秒被截斷。

在同一區域連線

首先,確保您的伺服器與 gRPC 端點位於同一區域。例如,如果您連線到 grpc-ams1.erpc.global,您應該將伺服器也放在阿姆斯特丹以最小化網路延遲。

為什麼您可能會看到"超過 1 秒"的延遲

考慮一筆實際發生在 07:46:46.900 的交易,但 Solana 將其記錄為 07:46:46.000。如果您在 07:46:47.200 收到它,直接計算得出:
text
(接收時間)-(區塊時間)
= 07:46:47.200 - 07:46:46.000
= 1.2 秒
乍一看這似乎有 1.2 秒的延遲。然而,由於交易實際發生在 07:46:46.900,實際延遲僅約 300ms: 07:46:47.200 - 07:46:46.900 = 0.3 秒。

減去 500ms 作為近似值

由於 Solana 向下取整到最近的秒,我們不知道交易確切發生在該秒的哪個位置。一個合理的近似是假設中點(500ms),因此公式變為:
text
(接收時間)-(區塊時間 + 0.5 秒)
雖然不完全精確,但這有助於抵消缺失的毫秒資料,提供更接近實際 gRPC 延遲的估計。
牢記這些注意事項,您可以更準確地評估 Solana Geyser gRPC 延遲。Solana 秒級時間記錄需要考慮潛在的四捨五入差異,同時確保伺服器和端點的正確部署以反映真實效能。