Direct Shreds - UDP Forwarding (Raw Shreds)
Si tienes ERPC Dedicated Shreds, puedes enviar Shreds crudos sobre UDP a tu propio oyente. Esta es la capa de observación más rápida de Solana, antes de Geyser gRPC y mucho más adelante de RPC/WebSocket. El SDK incluye una simple muestra Rust; new-token detection se utiliza sólo porque es la pregunta más común que tenemos.
Por qué este es el camino más rápido
- Shreds llega primero: validator-to-validador Shreds land before Geyser gRPC or RPC/WebSocket, así que los flujos críticos de latencia ver los acontecimientos más temprano.
- UDP mantiene la cabeza pequeña: no hay configuración de conexión, retransmitir o ordenar; coincide con el formato on-wire entre validadores.
- Trade-off: pre-finalization data can be missing/out-of-order/failed—mantenerlo como parte de la ganga de velocidad.
Nota: el endpoint compartido de Shreds gRPC corre sobre TCP, por lo que es más lento que UDP Shreds.
Pruébalo con Solana Stream SDK
- Código de muestra (
shreds-udp-rs, Rust): la bomba.fun es sólo un ejemplo común - cambio en su propio objetivo.
https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs - Usuarios Dedicados de Shreds: señala tu remitente de Shreds a la muestra
ip:portpara ver las detecciones. - ¿Aún no con UDP? Ejecutarlo localmente o en su propio servidor para explorar registros y personalizar ganchos.
Los paquetes UDP no llegan
El reenvío UDP comienza automáticamente después de configurar el destino. No es necesario activarlo mediante heartbeat; una respuesta heartbeat
UNIMPLEMENTED no significa que el reenvío esté deshabilitado.Primero, captura el tráfico en la interfaz de red del host. Sustituye los marcadores por la IP de origen de ERPC que se muestra para tu stream y por el puerto de destino configurado.
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, ejecutar 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-timepktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time- Si la captura continúa en cero, revisa tanto el firewall del sistema operativo como los firewalls externos al sistema operativo. Hetzner puede filtrar el tráfico mediante Cloud Firewall o Robot Firewall en el puerto del switch. En AWS, revisa el Security Group y la Network ACL de la subred.
- Permite UDP entrante desde
<ERPC_SOURCE_IP>/32hacia el puerto de destino<DESTINATION_PORT>. No restrinjas el puerto de origen, ya que ERPC utiliza puertos de origen UDP dinámicos. - Si los paquetes aparecen en la captura pero no en la aplicación, configura el receptor para escuchar en
0.0.0.0:<DESTINATION_PORT>en lugar de localhost y revisa después el firewall local y la configuración del socket/proceso.
Si siguen sin llegar paquetes tras actualizar las reglas, envía a Support la duración de la captura, el número de paquetes, la IP de origen, la IP de destino y el puerto de destino.
Documentación oficial de los proveedores: Hetzner Cloud Firewall, Hetzner Robot Firewall, AWS Security Groups, AWS Network ACLs y Microsoft Pktmon.
Recursos
- Todos los docs de código y README están en Solana Stream SDK repo:
https://github.com/ValidatorsDAO/solana-stream






