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 | sh

Latê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.8.2

Description:

  Check gRPC endpoint

Options:

  -h, --help              - Show this help.
  --endpoint  <endpoint>  - gRPC endpoint URL
  --token     <token>     - Token for authentication
Se 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 none
Exemplo:
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
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
À 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)
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.