Solana Geyser gRPC - teste de latência gRPC
Este guia mostrará como testar a latência do servidor GRPC Solana Geyser.
Pré-requisitos
Instalar o SLV CLI:
bash
curl -fsSL https://storage.slv.dev/slv/install | shcurl -fsSL https://storage.slv.dev/slv/install | shLatência do gRPC de teste
Você pode testar facilmente a latência do servidor GRPC Solana Geyser com o seguinte 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 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 authenticationSe você não tem um Geyser gRPC Access, consulte Geyser gRPC Quickstart guia.
Executar a verificação de latência
Para testar um endpoint compartilhado diretamente, execute o seguinte comando com seu próprio endpoint:
bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token noneslv check grpc --endpoint <YOUR_ENDPOINT> --token noneExemplo:
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 msO teste irá então proceder para verificar a latência do servidor gRPC Geyser.
Você pode parar o teste pressionando
Ctrl + C.Referência: Compreendendo a latência do gRPC
Ao medir a latência do gRPC, você pode ver valores de mais de um segundo. Isso pode inicialmente parecer "leve", mas lembre-se que o tempo de bloqueio de Solana só é registrado no segundo nível - milisegundos são truncados.
Conexão na mesma região
Primeiro, certifique-se de que seu servidor esteja localizado na mesma região do endpoint do gRPC. Por exemplo, se você estiver se conectando a
grpc-ams1.erpc.global, você deve colocar seu servidor em Amsterdam também para minimizar a latência da rede.Por que você pode ver “mais de 1 segundo” latência
Considere uma transação que realmente ocorre às 07:46:46.900Mas Solana grava como 07:46:46.000. Se o receber às 07:46:47.200, um cálculo simples resulta:
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À primeira vista, parece que 1.2 segundos de latência. No entanto, porque a transação realmente aconteceu às 07:46:46.900, a latência real é apenas cerca de 300ms:
07:46:47.200 - 07:46:46.900 = 0.3 segundos.
Subtraindo 500ms como uma aproximação
Porque Solana arredonda para o segundo mais próximo, nós não sabemos exatamente onde nesse segundo a transação ocorreu. Uma aproximação razoável é assumir um ponto médio (500ms), de modo que a fórmula se torna:
text
(Receive Time) - (Block Time + 0.5 seconds)(Receive Time) - (Block Time + 0.5 seconds)Embora não seja perfeitamente preciso, isso ajuda a compensar os dados de milissegundo faltando, fornecendo uma estimativa mais próxima da latência real do gRPC.
Ao manter essas considerações em mente, você pode medir mais precisamente a latência do GRPC Solana Geyser. O registro de tempo de segundo nível em Solana requer fatoramento em potenciais discrepâncias de arredondamento, bem como garantir a localização adequada do servidor e do endpoint para refletir o desempenho do mundo real.