Direct Shreds - UDP Forwarding Standard (Raw Shreds)
UDP Forwarding Standard inoltra Raw Shreds via UDP all'indirizzo IPv4 pubblico e alla porta configurati per il tuo abbonamento. Seleziona una regione disponibile durante la configurazione iniziale, poi salva come destinazione un indirizzo IPv4 pubblico valido e non vuoto con la relativa porta. Puoi aggiornare la destinazione in seguito. ERPC applica la configurazione dell'inoltro con il suo ciclo di aggiornamento di 30 secondi e non richiede alcuna attivazione tramite heartbeat. Puoi anche cambiare la regione in seguito dalla dashboard, tutte le volte che ti serve. Il cambio di regione modifica l'IP sorgente, quindi il firewall lato ricezione deve consentire il nuovo IP sorgente. La consegna si interrompe brevemente mentre l'abbonamento passa alla nuova regione. Se la nuova regione al momento non ha capacità disponibile, il cambio non viene effettuato e la regione e la destinazione restano invariate.
Come funziona l'inoltro UDP
- ERPC inoltra Raw Shreds via UDP alla destinazione configurata.
- UDP non prevede né l'instaurazione della connessione, né la ritrasmissione, né l'ordinamento dei pacchetti; il tuo receiver dovrebbe gestire i pacchetti di conseguenza.
Nota: l'endpoint Shreds gRPC condiviso funziona su TCP, quindi è più lento degli Shreds via UDP.
Provalo con Solana Stream SDK
- Codice di esempio (
shreds-udp-rs, Rust): il rilevamento di nuovi token è solo un esempio tipico — sostituiscilo con ciò che vuoi rilevare.
https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs - Configura il tuo receiver con la destinazione
ip:portsalvata per UDP Forwarding Standard. - Non usi ancora UDP? Esegui il codice di esempio in locale o sul tuo server per esplorare i log e personalizzare gli hook.
I pacchetti UDP non arrivano
L'inoltro UDP si avvia automaticamente dopo che la destinazione è stata configurata. Non è richiesta alcuna attivazione tramite heartbeat; una risposta
UNIMPLEMENTED all'heartbeat non significa che l'inoltro sia disabilitato.Per prima cosa, cattura il traffico sull'interfaccia di rete dell'host. Sostituisci i placeholder con l'IP sorgente ERPC mostrato per il tuo stream e con la porta di destinazione che hai configurato.
Linux (
tcpdump):bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'Windows (
Pktmon, esegui come amministratore):powershell
pktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-timepktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time- Se la cattura resta a zero, controlla sia il firewall del sistema operativo sia i firewall esterni al sistema operativo. Hetzner potrebbe filtrare il traffico nel Cloud Firewall o nel firewall Robot a livello di porta dello switch. Su AWS, controlla il Security Group e la Network ACL della subnet.
- Consenti il traffico UDP in entrata da
<ERPC_SOURCE_IP>/32verso la porta di destinazione<DESTINATION_PORT>. Lascia la porta sorgente senza restrizioni perché ERPC usa porte sorgente UDP dinamiche. - Se i pacchetti compaiono nella cattura ma non nella tua applicazione, esegui il bind del receiver su
0.0.0.0:<DESTINATION_PORT>anziché su localhost, quindi controlla il firewall locale e le impostazioni di socket/processi.
Se dopo l'aggiornamento delle regole non arriva ancora alcun pacchetto, invia al Supporto la durata della cattura, il numero di pacchetti, l'IP sorgente, l'IP di destinazione e la porta di destinazione.
Riferimenti dei provider: Hetzner Cloud Firewall, Hetzner Robot Firewall, AWS Security Groups, AWS Network ACLs e Microsoft Pktmon.
Risorse
- Tutto il codice e la documentazione README si trovano nel repository di Solana Stream SDK:
https://github.com/ValidatorsDAO/solana-stream






