🌐 إعداد الشبكة
قبل أن يتمكن خادمك من استقبال الـ shreds -- سواء عبر SDK أو مستمع UDP خام -- تحتاج لفتح المنفذ الصحيح وضبط buffers الشبكة في نظام التشغيل.
تستخدم SDK الخاص بنا؟ يُعد SDK 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 أولاً.
✅ التحقق من إعدادك
بمجرد تشغيل مستمع SDK وبثك نشط في لوحة تحكم 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.