🔬 Formato de Paquete

Esta referencia es solo para receptores custom. Nuestro formato de shred está optimizado para ShredStream.com — no coincide con lo que espera el tooling Solana estándar. El SDK encapsula todo esto por ti. Lee esta página solo si estás implementando un receptor UDP custom sin nuestro SDK. Ver Por qué usar el SDK y el Inicio Rápido SDK.

📖 Descripcion General

Cada paquete UDP entregado por ShredStream.com tiene exactamente 1203 bytes y contiene un unico legacy data shred (variante 0xA5). ShredStream.com entrega solo data shreds -- no se incluyen shreds FEC ni coding shreds en el stream.

Cada shred transporta una porcion de los datos de entrada de un slot de Solana. Los shreds llegan con indices secuenciales dentro de cada slot, comenzando desde 0. Para reconstruir los datos completos del bloque de un slot, recopila todos sus shreds, ordenalos por indice y concatena los payloads.

📐 Tabla de Offsets

OffsetTamanoCampoTipoDescripcion
0x0064Signaturebytes64 bytes en cero. ShredStream.com no firma los shreds; no verifiques este campo
0x401Shred Variantu8Siempre 0xA5 (legacy data shred)
0x418Slotu64 LENumero de slot al que pertenece este shred
0x494Indexu32 LEIndice del shred dentro del slot (secuencial)
0x4D2Versionu16 LESiempre 0 -- no utilizado por ShredStream.com
0x4F4FEC Set Indexu32 LESiempre 0 -- no utilizado por ShredStream.com
0x532Parent Offsetu16 LESiempre 0 -- no utilizado por ShredStream.com
0x551Flagsu8Flag de límite: DATA_COMPLETE = 0x40
0x562Sizeu16 LETamano util total (header + payload). Payload = data[0x58..size]
0x58variablePayloadbytesDatos de entrada reales
despues del payloadvariableZero-paddingbytesBytes no utilizados (ceros) desde el final del payload hasta el byte 1203

📏 Constantes

ConstanteValorNotas
SHRED_MAX_SIZE1203 bytesTamano fijo de cada paquete UDP
DATA_HEADER_SIZE88 bytes (0x58)Tamano total del header antes del payload
MAX_PAYLOAD_SIZE1035 bytesPayload maximo por shred (80 bytes reservados para compatibilidad con el formato wire de Solana)

🚩 Byte de Flags

El byte de flags en el offset 0x55 marca los limites de lotes de entradas:

FlagValorSignificado
DATA_COMPLETE0x40Este es el ultimo data shred en el lote de entradas actual

⚠️ Notas Importantes

  • Solo data shreds. ShredStream.com entrega legacy data shreds (variante 0xA5). No recibiras FEC/coding shreds.
  • Indices secuenciales. Dentro de cada slot, los indices de shred comienzan en 0 e incrementan secuencialmente. Un indice faltante significa que un shred se perdio en transito.
  • Tamano del payload. El campo Size indica el final de los datos utiles. Los bytes del payload estan en data[0x58..size]. Los bytes mas alla del offset size son zero-padding.
Formato de Paquete — Documentations | ShredStream.com