Solana Geyser gRPC - prueba de latencia gRPC

Esta guía le mostrará cómo probar la latencia del servidor Solana Geyser gRPC.

Prerrequisitos

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

Prueba de latencia gRPC

Puede probar fácilmente la latencia del servidor Solana Geyser gRPC con el siguiente comando:
bash
slv check grpc --help
Usage:   slv check grpc
Version: 0.8.2

Description:

  Check gRPC endpoint

Options:

  -h, --help              - Show this help.
  --endpoint  <endpoint>  - gRPC endpoint URL
  --token     <token>     - Token for authentication
Si usted no tiene un acceso Geyser gRPC, consulte el Geyser gRPC Quickstart guía.

Ejecute el cheque de la latencia

Para probar un endpoint compartido directamente, ejecute el siguiente comando con su propio endpoint:
bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token none
Ejemplo:
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
Puede detener la prueba pulsando Ctrl + C.

Referencia: comprender la latencia de gRPC

Al medir la latencia del gRPC, puede ver valores de más de un segundo. Esto puede inicialmente sentirse "lento", pero recuerde que el tiempo de bloqueo de Solana sólo se registra en el segundo nivel: los milisegundos están truncados.

Conexión en la misma región

En primer lugar, asegúrese de que su servidor se encuentra en la misma región que el endpoint del gRPC. Por ejemplo, si se conecta a grpc-ams1.erpc.global, debe colocar su servidor en Amsterdam así como para minimizar latencia de la red.

¿Por qué podrías ver "Más de 1 segundo"?

Considere una transacción que realmente ocurre a las 07:46:46.900, pero Solana lo registra como 07:46:46.000Si lo recibes a las 07:46:47.200, un cálculo directo produce:
text
(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 seconds
A primera vista, esto parece 1.2 segundos de latencia. Sin embargo, porque la transacción realmente sucedió a las 07:46:46.900, la latencia real es sólo unos 300ms: 07:46:47.200 - 07:46:46.900 = 0.3 segundos.

Extrayendo 500ms como una aproximación

Debido a que Solana baja hasta el segundo más cercano, no sabemos exactamente dónde en ese segundo tuvo lugar la transacción. Una aproximación razonable es asumir un punto medio (500ms), por lo que la fórmula se convierte en:
text
(Receive Time) - (Block Time + 0.5 seconds)
Aunque no es perfectamente preciso, esto ayuda a compensar los datos faltantes de milisegundos, proporcionando una estimación más cercana de la latencia real del gRPC.
Manteniendo estas consideraciones en mente, usted puede medir con más precisión Solana Geyser gRPC latencia. La grabación de tiempo de segundo nivel en Solana requiere tener en cuenta las posibles discrepancias de redondeo, así como asegurar un servidor adecuado y la colocación de endpoint para reflejar el rendimiento del entorno real.