🌐 إعداد الشبكة

قبل أن يتمكن خادمك من استقبال الـ shreds -- سواء عبر SDK أو مستمع UDP خام -- تحتاج لفتح المنفذ الصحيح وضبط buffers الشبكة في نظام التشغيل.

تستخدم SDK الخاص بنا؟ يُعد SDK buffer استقبال socket تلقائياً. لا تزال بحاجة لإكمال خطوات firewall وضبط نظام التشغيل أدناه.


🔒 تكوين Firewall

افتح منفذ UDP الذي عيّنته على ShredStream.com. يعتمد الأمر الدقيق على توزيعة Linux الخاصة بك.

🔹 UFW (Ubuntu / Debian)

bash
sudo ufw allow 8001/udp

🔹 iptables

bash
sudo iptables -A INPUT -p udp --dport 8001 -j ACCEPT

لاستمرار القاعدة عبر عمليات إعادة التشغيل، احفظها باستخدام iptables-save أو آلية الاستمرارية الخاصة بتوزيعتك (مثلاً netfilter-persistent).

🔹 firewalld (CentOS / RHEL / Fedora)

bash
sudo firewall-cmd --permanent --add-port=8001/udp
sudo firewall-cmd --reload

إذا كان خادمك خلف مجموعة أمان مزود سحابي (AWS، GCP، Azure، إلخ)، يجب أيضاً السماح بحركة مرور UDP الواردة على نفس المنفذ في وحدة تحكم السحابة.


📐 ضبط buffer UDP

ينتج مدققو Solana الـ shreds بمعدل عالٍ جداً. buffer استقبال UDP الافتراضي في Linux عادةً 256 كيلوبايت، وهو صغير جداً وسيتسبب في إسقاط الحزم تحت الحمل. اضبط buffer الاستقبال إلى 25 ميغابايت على الأقل.

⚡ تطبيق فوري

bash
# Linux
sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.rmem_default=26214400
# macOS
sudo sysctl -w kern.ipc.maxsockbuf=33554432

💾 الاستمرارية عبر عمليات إعادة التشغيل

bash
echo 'net.core.rmem_max=26214400' | sudo tee -a /etc/sysctl.conf
echo 'net.core.rmem_default=26214400' | sudo tee -a /etc/sysctl.conf

ثم تحقق:

bash
sysctl net.core.rmem_max net.core.rmem_default

يجب أن ترى كلتا القيمتين معينتين على 26214400.

تجاوز ضبط buffer هو السبب الأكثر شيوعاً لفقدان shreds. إذا أبلغ مستمعك عن فجوات في البيانات، تحقق من إعدادات buffer أولاً.


✅ التحقق من إعدادك

بمجرد تشغيل مستمع SDK وبثك نشط في لوحة تحكم ShredStream.com، يجب أن ترى مخرجات خلال ثوانٍ.

قائمة التحقق إذا لم تصل الـ shreds:

  1. حالة لوحة التحكم — تأكد أن بثك يعرض نشط وأن عنوان IP ومنفذ الاتصال يتطابقان مع خادمك.
  2. Firewall — تحقق أن منفذ UDP مفتوح. اختبر من جهاز آخر باستخدام nc -u <your-ip> 8001.
  3. IP العام — تأكد أنك أدخلت عنوان IPv4 العام لخادمك، وليس عنواناً خاصاً أو داخلياً.
  4. حجم Buffer — شغّل sysctl net.core.rmem_max للتأكد أن buffer مُعيَّن على 26214400 على الأقل.
  5. ربط المستمع — تأكد أن المستمع يرتبط بـ 0.0.0.0 (جميع الواجهات)، وليس 127.0.0.1 (المحلي فقط).

إذا تحققت من كل شيء ولا تزال لا تستقبل بيانات، راجع استكشاف الأخطاء وإصلاحها أو تواصل معنا على Discord.

إعداد الشبكة — Documentations | ShredStream.com