🔬 تنسيق الحزمة

هذا المرجع مخصص للمستقبِلات المخصصة فقط. صيغة الـ shred لدينا مُحسَّنة لـ ShredStream.com — ولا تطابق ما تتوقعه أدوات Solana القياسية. يُغلِّف SDK كل هذا نيابةً عنك. لا تقرأ هذه الصفحة إلا إذا كنت تُنفّذ مُستقبِل UDP مخصّصًا دون SDK الخاص بنا. راجع لماذا تستخدم SDK وبدء سريع SDK.

📖 نظرة عامة

كل حزمة UDP يُوصلها ShredStream.com بالضبط 1203 بايت وتحتوي على shred بيانات تقليدي واحد (variant 0xA5). يُوصل ShredStream.com shreds البيانات فقط -- لا يتم تضمين shreds FEC أو الترميز في البث.

يحمل كل shred جزءاً من بيانات إدخال slot Solana. تصل الـ shreds بمؤشرات متسلسلة داخل كل slot، بدءاً من 0. لإعادة بناء بيانات الكتلة الكاملة لـ slot، اجمع كل shreds الخاصة به، رتبها حسب المؤشر، وألحق payloads.

📐 جدول الإزاحات

الإزاحةالحجمالحقلالنوعالوصف
0x0064Signaturebytes64 بايت أصفار. لا يوقع ShredStream.com الـ shreds؛ لا تتحقق من هذا الحقل
0x401Shred Variantu8دائماً 0xA5 (shred بيانات تقليدي)
0x418Slotu64 LEرقم slot الذي ينتمي إليه هذا الـ shred
0x494Indexu32 LEمؤشر shred داخل slot (متسلسل)
0x4D2Versionu16 LEدائماً 0 -- غير مستخدم من ShredStream.com
0x4F4FEC Set Indexu32 LEدائماً 0 -- غير مستخدم من ShredStream.com
0x532Parent Offsetu16 LEدائماً 0 -- غير مستخدم من ShredStream.com
0x551Flagsu8علم الحدود: DATA_COMPLETE = 0x40
0x562Sizeu16 LEالحجم المفيد الكلي (ترويسة + payload). Payload = data[0x58..size]
0x58متغيرPayloadbytesبيانات الإدخال الفعلية
بعد payloadمتغيرحشو أصفارbytesبايتات غير مستخدمة (أصفار) من نهاية payload إلى البايت 1203

📏 الثوابت

الثابتالقيمةملاحظات
SHRED_MAX_SIZE1203 بايتالحجم الثابت لكل حزمة UDP
DATA_HEADER_SIZE88 بايت (0x58)الحجم الكلي للترويسة قبل payload
MAX_PAYLOAD_SIZE1035 بايتأقصى payload لكل shred (80 بايت محجوزة للتوافق مع تنسيق Solana السلكي)

🚩 بايت الأعلام

بايت الأعلام عند الإزاحة 0x55 يُشير إلى حدود دفعة الإدخال:

العلمالقيمةالمعنى
DATA_COMPLETE0x40هذا آخر shred بيانات في دفعة الإدخال الحالية

⚠️ ملاحظات مهمة

  • shreds بيانات فقط. يُوصل ShredStream.com shreds البيانات التقليدية (variant 0xA5). لن تستقبل shreds FEC/الترميز.
  • مؤشرات متسلسلة. داخل كل slot، تبدأ مؤشرات shred من 0 وتتزايد بالتسلسل. فقدان مؤشر يعني فقدان shred أثناء النقل.
  • حجم Payload. يُشير حقل Size إلى نهاية البيانات المفيدة. بايتات Payload في data[0x58..size]. البايتات بعد إزاحة size هي حشو أصفار.
تنسيق الحزمة — Documentations | ShredStream.com