đŹ Format des paquets
Cette rĂ©fĂ©rence est rĂ©servĂ©e aux rĂ©cepteurs custom. Notre format de shred est propre Ă ShredStream.com â il ne correspond pas Ă ce qu'attend l'outillage Solana standard. Le SDK encapsule tout cela pour vous. Ne lisez cette page que si vous implĂ©mentez un rĂ©cepteur UDP custom sans notre SDK. Voir Pourquoi utiliser le SDK et DĂ©marrage rapide SDK.
đ Aperçu
Chaque paquet UDP livré par ShredStream.com fait exactement 1203 octets et contient un seul legacy data shred (variante 0xA5). ShredStream.com ne livre que des data shreds -- aucun shred FEC ou de codage n'est inclus dans le flux.
Chaque shred transporte une portion des données d'entrée d'un slot Solana. Les shreds arrivent avec des index séquentiels au sein de chaque slot, en commençant par 0. Pour reconstruire l'intégralité des données d'un bloc pour un slot donné, collectez tous ses shreds, ordonnez-les par index et concaténez les payloads.
đ Table des offsets
| Offset | Taille | Champ | Type | Description |
|---|---|---|---|---|
0x00 | 64 | Signature | bytes | 64 octets de zéros. ShredStream.com ne signe pas les shreds ; ne vérifiez pas ce champ |
0x40 | 1 | Shred Variant | u8 | Toujours 0xA5 (legacy data shred) |
0x41 | 8 | Slot | u64 LE | Numéro du slot auquel ce shred appartient |
0x49 | 4 | Index | u32 LE | Index du shred au sein du slot (séquentiel) |
0x4D | 2 | Version | u16 LE | Toujours 0 â non utilisĂ© par ShredStream.com |
0x4F | 4 | FEC Set Index | u32 LE | Toujours 0 â non utilisĂ© par ShredStream.com |
0x53 | 2 | Parent Offset | u16 LE | Toujours 0 â non utilisĂ© par ShredStream.com |
0x55 | 1 | Flags | u8 | Flag de frontiĂšre : DATA_COMPLETE = 0x40 |
0x56 | 2 | Size | u16 LE | Taille utile totale (en-tĂȘte + payload). Payload = data[0x58..size] |
0x58 | variable | Payload | bytes | Données d'entrée effectives |
| aprÚs le payload | variable | Zero-padding | bytes | Octets inutilisés (zéros) de la fin du payload à l'octet 1203 |
đ Constantes
| Constante | Valeur | Notes |
|---|---|---|
SHRED_MAX_SIZE | 1203 octets | Taille fixe de chaque paquet UDP |
DATA_HEADER_SIZE | 88 octets (0x58) | Taille totale de l'en-tĂȘte avant le payload |
MAX_PAYLOAD_SIZE | 1035 octets | Payload maximum par shred (80 octets réservés pour la compatibilité Solana) |
đ© Octet de flags
L'octet de flags à l'offset 0x55 marque les frontiÚres de lots d'entrées :
| Flag | Valeur | Signification |
|---|---|---|
DATA_COMPLETE | 0x40 | Il s'agit du dernier data shred du lot d'entrées en cours |
â ïž Notes importantes
- Data shreds uniquement. ShredStream.com livre des legacy data shreds (variante
0xA5). Vous ne recevrez pas de shreds FEC/codage. - Index séquentiels. Au sein de chaque slot, les index de shred commencent à 0 et s'incrémentent de maniÚre séquentielle. Un index manquant signifie qu'un shred a été perdu en transit.
- Taille du payload. Le champ Size indique la fin des données utiles. Les octets de payload se trouvent à data[0x58..size]. Les octets au-delà de l'offset size sont du zero-padding.