Solana Geyser gRPC - gRPC 延迟测试
本指南将向您展示如何测试 Solana Geyser gRPC 服务器的延迟。
前提条件
安装 SLV CLI:
bash
curl -fsSL https://storage.slv.dev/slv/install | shcurl -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 authenticationslv 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 快速入门指南。
运行延迟检查
共享 gRPC 端点不再需要
x-token。传入 --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➜ ~ 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 秒(接收时间)-(区块时间)
= 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 秒)(接收时间)-(区块时间 + 0.5 秒)虽然不完全精确,但这有助于抵消缺失的毫秒数据,提供更接近实际 gRPC 延迟的估计。
牢记这些注意事项,您可以更准确地评估 Solana Geyser gRPC 延迟。Solana 秒级时间记录需要考虑潜在的四舍五入差异,同时确保服务器和端点的正确部署以反映真实性能。