🌐 إعداد الشبكة
قبل أن يتمكن خادمك من استقبال الـ shreds، تحتاج لفتح المنفذ الصحيح وضبط buffers الشبكة في نظام التشغيل. ينطبق هذا على التسليم عبر UDP، سواء بنيت مستقبِلك الخاص للشذرات الخام أو استخدمت عميل Decoded Shred Stream. أما التسليم عبر gRPC (Decoded Shred Stream) فهو اتصال صادر: لا منفذ وارداً لفتحه، ويبقى ضبط الـ buffers وحده مفيداً.
تستخدم عميل Decoded Shred Stream؟ يطلب عميل Decoded Shred Stream buffer استقبال socket نيابةً عنك. أما مع مستقبِل للشذرات الخام فتضبطه بنفسك. في الحالتين، لا تزال بحاجة لإكمال خطوات firewall وضبط نظام التشغيل أدناه.
🔒 تكوين Firewall
افتح منفذ UDP الذي عيّنته على ShredStream.com. يعتمد الأمر الدقيق على توزيعة Linux الخاصة بك.
🔹 UFW (Ubuntu / Debian)
sudo ufw allow 8001/udp
🔹 iptables
sudo iptables -A INPUT -p udp --dport 8001 -j ACCEPT
لاستمرار القاعدة عبر عمليات إعادة التشغيل، احفظها باستخدام iptables-save أو آلية الاستمرارية الخاصة بتوزيعتك (مثلاً netfilter-persistent).
🔹 firewalld (CentOS / RHEL / Fedora)
sudo firewall-cmd --permanent --add-port=8001/udpsudo firewall-cmd --reload
إذا كان خادمك خلف مجموعة أمان مزود سحابي (AWS، GCP، Azure، إلخ)، يجب أيضاً السماح بحركة مرور UDP الواردة على نفس المنفذ في وحدة تحكم السحابة.
📐 ضبط buffer UDP
ينتج مدققو Solana الـ shreds بمعدل عالٍ جداً. buffer استقبال UDP الافتراضي في Linux عادةً 256 كيلوبايت، وهو صغير جداً وسيتسبب في إسقاط الحزم تحت الحمل. اضبط buffer الاستقبال إلى 25 ميغابايت على الأقل.
⚡ تطبيق فوري
# Linuxsudo sysctl -w net.core.rmem_max=26214400sudo sysctl -w net.core.rmem_default=26214400# macOSsudo sysctl -w kern.ipc.maxsockbuf=33554432
💾 الاستمرارية عبر عمليات إعادة التشغيل
echo 'net.core.rmem_max=26214400' | sudo tee -a /etc/sysctl.confecho 'net.core.rmem_default=26214400' | sudo tee -a /etc/sysctl.conf
ثم تحقق:
sysctl net.core.rmem_max net.core.rmem_default
يجب أن ترى كلتا القيمتين معينتين على 26214400.
تجاوز ضبط buffer هو السبب الأكثر شيوعاً لفقدان shreds. إذا أبلغ مستمعك عن فجوات في البيانات، تحقق من إعدادات buffer أولاً.
✅ التحقق من إعدادك
بمجرد تشغيل مستقبِلك وبثك نشط في لوحة تحكم ShredStream.com، يجب أن ترى مخرجات خلال ثوانٍ.
قائمة التحقق إذا لم تصل الـ shreds:
- حالة لوحة التحكم — تأكد أن بثك يعرض نشط وأن عنوان IP ومنفذ الاتصال يتطابقان مع خادمك.
- Firewall — تحقق أن منفذ UDP مفتوح. اختبر من جهاز آخر باستخدام
nc -u <your-ip> 8001. - IP العام — تأكد أنك أدخلت عنوان IPv4 العام لخادمك، وليس عنواناً خاصاً أو داخلياً.
- حجم Buffer — شغّل
sysctl net.core.rmem_maxللتأكد أن buffer مُعيَّن على 26214400 على الأقل. - ربط المستمع — تأكد أن المستمع يرتبط بـ
0.0.0.0(جميع الواجهات)، وليس127.0.0.1(المحلي فقط).
إذا تحققت من كل شيء ولا تزال لا تستقبل بيانات، راجع استكشاف الأخطاء وإصلاحها أو تواصل معنا على Discord.