Shreds Direta - Encaminhamento UDP (Raw Shreds)

Se você tiver ERPC Dedicated Shreds, você pode encaminhar Shreds cru sobre UDP para seu próprio ouvinte. Esta é a camada de observação mais rápida da Solana — antes do GRPC da Geyser e muito à frente do RPC/WebSocket. O SDK inclui uma simples amostra Rust; new-token detection é usado apenas porque é a pergunta mais comum que temos.

Por que este é o caminho mais rápido

  • Shreds chegam primeiro: validador-para-validador Shreds terra antes Geyser gRPC ou RPC/WebSocket, então os fluxos de latência-críticos vêem os eventos mais cedo.
  • O UDP mantém a sobrecarga minúscula: nenhuma configuração de conexão, retransmissão ou encomenda; corresponde ao formato on-wire entre validadores.
  • Trade-off: dados pré-finalização podem estar faltando/out-of-order/failed— lidar com isso como parte do negócio da velocidade.
Nota: o endpoint compartilhado do Shreds gRPC passa por TCP, então é mais lento do que o UDP Shreds.

Tente com o Solana Stream SDK

  • Código da amostra (shreds-udp-rs, Rust): new-token detection é apenas um exemplo comum — bata no seu próprio alvo.
    https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs
  • Usuários de Shreds dedicados: aponte seu remetente de Shreds para a amostra ip:port para ver detecções.
  • Ainda não está no UDP? Execute-o localmente ou em seu próprio servidor para explorar registros e personalizar ganchos.

Os pacotes UDP não chegam

O encaminhamento UDP começa automaticamente após a configuração do destino. Não é necessário ativá-lo por heartbeat; uma resposta heartbeat UNIMPLEMENTED não significa que o encaminhamento esteja desativado.
Primeiro, capture o tráfego na interface de rede do host. Substitua os marcadores pelo IP de origem ERPC exibido para o seu stream e pela porta de destino configurada.
Linux (tcpdump):
bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'
Windows (Pktmon, execute como administrador):
powershell
pktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time
  1. Se a captura continuar em zero, verifique tanto o firewall do sistema operacional quanto os firewalls externos ao sistema operacional. A Hetzner pode filtrar o tráfego no Cloud Firewall ou no Robot Firewall da porta do switch. Na AWS, verifique o Security Group e a Network ACL da subnet.
  2. Permita UDP de entrada de <ERPC_SOURCE_IP>/32 para a porta de destino <DESTINATION_PORT>. Não restrinja a porta de origem, pois a ERPC usa portas de origem UDP dinâmicas.
  3. Se os pacotes aparecerem na captura, mas não na aplicação, configure o receptor para escutar em 0.0.0.0:<DESTINATION_PORT> em vez de localhost e verifique o firewall local e as configurações de socket/processo.
Se nenhum pacote chegar após a atualização das regras, envie ao Support a duração da captura, a quantidade de pacotes, o IP de origem, o IP de destino e a porta de destino.

Recursos