Solana Geyser gRPC - gRPC Latentietest

Deze handleiding laat u zien hoe u de latentie van de Solana Geyser gRPC-server kunt testen.

Vereisten

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

gRPC-latentie testen

U kunt eenvoudig de latentie van de Solana Geyser gRPC-server testen met het volgende commando:
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
Als u geen Geyser gRPC-toegang heeft, raadpleeg dan de handleiding Geyser gRPC Snelstart.

De latentiecontrole uitvoeren

Om een gedeeld endpoint direct te testen, voert u het volgende commando uit met uw eigen endpoint:
bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token none
Voorbeeld:
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
De test controleert vervolgens de latentie van de Geyser gRPC-server.
U kunt de test stoppen door op Ctrl + C te drukken.

Referentie: gRPC-latentie begrijpen

Bij het meten van gRPC-latentie kunt u waarden van meer dan een seconde zien. Dit kan aanvankelijk "traag" aanvoelen, maar onthoud dat Solana's bloktijd alleen op secondeniveau wordt geregistreerd — milliseconden worden afgekapt.

Verbinden in dezelfde regio

Zorg er allereerst voor dat uw server zich in dezelfde regio bevindt als het gRPC-endpoint. Als u bijvoorbeeld verbinding maakt met grpc-ams1.erpc.global, moet u uw server ook in Amsterdam plaatsen om de netwerklatentie te minimaliseren.

Waarom u "meer dan 1 seconde" latentie kunt zien

Stel dat een transactie feitelijk plaatsvindt om 07:46:46.900, maar dat Solana deze registreert als 07:46:46.000. Als u deze ontvangt om 07:46:47.200, levert een eenvoudige berekening op:
(Ontvangsttijd) - (Bloktijd)
= 07:46:47.200 - 07:46:46.000
= 1,2 seconden
Op het eerste gezicht lijkt dit op 1,2 seconden latentie. Maar omdat de transactie werkelijk plaatsvond om 07:46:46.900, is de werkelijke latentie slechts ongeveer 300ms: 07:46:47.200 - 07:46:46.900 = 0,3 seconden.

500ms aftrekken als benadering

Omdat Solana naar beneden afrondt op de dichtstbijzijnde seconde, weten we niet precies waar in die seconde de transactie plaatsvond. Een redelijke benadering is om een middelpunt (500ms) aan te nemen, dus de formule wordt:
(Ontvangsttijd) - (Bloktijd + 0,5 seconden)
Hoewel dit niet helemaal exact is, compenseert het de ontbrekende millisecondegegevens en geeft het een nauwkeurigere schatting van de werkelijke gRPC-latentie.
Door deze overwegingen in gedachten te houden, kunt u de Solana Geyser gRPC-latentie nauwkeuriger beoordelen. Omdat Solana tijden op secondeniveau registreert, moet u rekening houden met mogelijke afrondingsverschillen en zorgen voor een juiste plaatsing van server en endpoint, zodat de meting de prestaties in de praktijk weergeeft.