Solana Geyser gRPC - Test di latenza gRPC

Questa guida ti mostrerà come testare la latenza del server Solana Geyser gRPC.

Prerequisiti

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

Testare la latenza gRPC

Puoi testare facilmente la latenza del server Solana Geyser gRPC con il seguente comando:
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
Se non disponi di un accesso Geyser gRPC, consulta la guida Geyser gRPC Quickstart.

Eseguire il controllo della latenza

Per testare direttamente un endpoint condiviso, esegui il seguente comando con il tuo endpoint:
bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token none
Esempio:
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
Il test procederà quindi a controllare la latenza del server Geyser gRPC.
Puoi interrompere il test premendo Ctrl + C.

Riferimento: comprendere la latenza gRPC

Quando si misura la latenza gRPC, si possono vedere valori superiori a un secondo. All'inizio può sembrare "lento", ma ricorda che il block time di Solana è registrato solo a livello del secondo: i millisecondi vengono troncati.

Connessione nella stessa regione

Per prima cosa, assicurati che il tuo server si trovi nella stessa regione dell'endpoint gRPC. Ad esempio, se ti connetti a grpc-ams1.erpc.global, dovresti posizionare il tuo server ad Amsterdam per ridurre al minimo la latenza di rete.

Perché potresti vedere una latenza "superiore a 1 secondo"

Considera una transazione che avviene effettivamente alle 07:46:46.900, ma che Solana registra come 07:46:46.000. Se la ricevi alle 07:46:47.200, un calcolo diretto dà:
text
(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 seconds
A prima vista, sembra una latenza di 1.2 seconds. Tuttavia, poiché la transazione è avvenuta realmente alle 07:46:46.900, la latenza effettiva è solo di circa 300ms: 07:46:47.200 - 07:46:46.900 = 0.3 seconds.

Sottrarre 500ms come approssimazione

Poiché Solana arrotonda per difetto al secondo più vicino, non sappiamo esattamente in quale punto di quel secondo sia avvenuta la transazione. Un'approssimazione ragionevole è assumere un punto intermedio (500ms), quindi la formula diventa:
text
(Receive Time) - (Block Time + 0.5 seconds)
Sebbene non sia perfettamente precisa, questa approssimazione aiuta a compensare i dati mancanti dei millisecondi, fornendo una stima più vicina alla latenza gRPC effettiva.
Tenendo presenti queste considerazioni, puoi valutare con maggiore precisione la latenza di Solana Geyser gRPC. La registrazione del tempo a livello del secondo su Solana rende necessario tenere conto di potenziali discrepanze di arrotondamento, oltre a garantire un posizionamento corretto di server ed endpoint per riflettere le prestazioni reali.