Solana Geyser gRPC - Тест latency gRPC
Это руководство показывает, как проверить latency сервера Solana Geyser gRPC.
Prerequisites
Установите SLV CLI:
bash
curl -fsSL https://storage.slv.dev/slv/install | shcurl -fsSL https://storage.slv.dev/slv/install | shПроверка latency gRPC
Проверить latency сервера 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.
Запуск проверки latency
Чтобы напрямую проверить shared endpoint, выполните следующую команду со своим endpoint:
bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token noneslv 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➜ ~ 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После этого начнется проверка latency сервера Geyser gRPC.
Остановить тест можно сочетанием
Ctrl + C.Справка: как интерпретировать latency gRPC
При измерении latency gRPC вы можете увидеть значения больше одной секунды. Сначала это может показаться "медленным", но важно помнить, что block time в Solana фиксируется только с точностью до секунд - миллисекунды отбрасываются.
Подключение в том же регионе
Сначала убедитесь, что ваш сервер находится в том же регионе, что и endpoint gRPC. Например, если вы подключаетесь к
grpc-ams1.erpc.global, ваш сервер тоже лучше разместить в Amsterdam, чтобы минимизировать network latency.Почему latency может выглядеть как "больше 1 секунды"
Представьте transaction, которая реально произошла в 07:46:46.900, но Solana записала ее как 07:46:46.000. Если вы получили ее в 07:46:47.200, обычный расчет дает:
text
(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 seconds(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 secondsНа первый взгляд кажется, что latency составляет 1.2 секунды. Однако transaction в действительности произошла в 07:46:46.900, поэтому реальная latency - около 300 ms:
07:46:47.200 - 07:46:46.900 = 0.3 seconds.
Вычитание 500 ms как приближения
Поскольку Solana округляет время вниз до ближайшей секунды, мы не знаем точно, в какой момент внутри этой секунды произошла transaction. Разумное приближение - принять midpoint (500 ms), и тогда формула становится такой:
text
(Receive Time) - (Block Time + 0.5 seconds)(Receive Time) - (Block Time + 0.5 seconds)Это не идеально точный метод, но он помогает компенсировать отсутствие millisecond data и дает более близкую оценку реальной latency gRPC.
Учитывая эти особенности, вы сможете точнее оценивать latency Solana Geyser gRPC. Из-за секундной точности временных меток в Solana нужно учитывать возможное rounding discrepancy, а также правильно размещать сервер и endpoint, чтобы измерения отражали реальную производительность.