Direct Shreds - UDP Forwarding Standard (Raw Shreds)
بالنسبة إلى UDP Forwarding Standard، اختر منطقة متاحة أثناء الإعداد الأولي واضبط عنوان IPv4 عامًا صالحًا وغير فارغ ومنفذًا كوجهة. تبقى المنطقة المحددة ثابتة بعد الإعداد، ويمكن تحديث الوجهة لاحقًا. بالنسبة إلى UDP Forwarding Standard، يُطبَّق إعداد التحويل في دورة تحديث تقارب 30 ثانية، ولا يلزم تفعيل heartbeat.
لماذا هذا هو المسار الأسرع
- تصل Shreds أولًا: تحطّ Shreds المتبادلة بين المدققين قبل Geyser gRPC أو RPC/WebSocket، لذا ترى التدفقات الحساسة لزمن الاستجابة الأحداث في أقرب وقت ممكن.
- يُبقي UDP الحمل الإضافي ضئيلًا: لا إعداد اتصال ولا إعادة إرسال ولا ترتيب؛ ويطابق تنسيق البيانات المتداولة على الشبكة بين المدققين.
- المقايضة: قد تكون البيانات السابقة للإنهاء النهائي مفقودة أو غير مرتبة أو فاشلة — تعامل مع ذلك كجزء من ثمن السرعة.
ملاحظة: نقطة نهاية Shreds gRPC المشتركة تعمل عبر TCP، لذا فهي أبطأ من UDP Shreds.
جرّبه مع Solana Stream SDK
- كود العيّنة (
shreds-udp-rs، بلغة Rust): كشف الرموز الجديدة مجرد مثال شائع — استبدله بالهدف الخاص بك. https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs - مستخدمو UDP Forwarding Standard: وجّه المستقبِل الخاص بك إلى
ip:portفي العيّنة لرؤية عمليات الكشف. - لم تنتقل إلى UDP بعد؟ شغّله محليًا أو على خادمك الخاص لاستكشاف السجلات وتخصيص الخطافات.
حزم UDP لا تصل
تبدأ إعادة توجيه UDP تلقائيًا بعد ضبط الوجهة. لا حاجة إلى تفعيل عبر heartbeat؛ فاستجابة heartbeat بـ
UNIMPLEMENTED لا تعني أن إعادة التوجيه معطّلة.أولًا، التقط حركة المرور عند واجهة شبكة المضيف. استبدل العناصر النائبة بعنوان IP المصدر الخاص بـ ERPC الظاهر لتدفقك وبمنفذ الوجهة الذي ضبطته.
Linux (
tcpdump):bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'Windows (
Pktmon، شغّله كمسؤول):powershell
pktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-timepktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time- إذا بقي الالتقاط عند الصفر، فتحقق من جدار حماية نظام التشغيل ومن الجدران النارية خارج نظام التشغيل معًا. قد يقوم Hetzner بتصفية حركة المرور في Cloud Firewall أو جدار حماية Robot عند منفذ السويتش. وعلى AWS، تحقق من Security Group ومن Network ACL الخاص بالشبكة الفرعية.
- اسمح بحركة UDP الواردة من
<ERPC_SOURCE_IP>/32إلى منفذ الوجهة<DESTINATION_PORT>. أبقِ منفذ المصدر دون قيود لأن ERPC يستخدم منافذ مصدر UDP ديناميكية. - إذا ظهرت الحزم في الالتقاط ولكن ليس في تطبيقك، فاربط المستقبِل بـ
0.0.0.0:<DESTINATION_PORT>بدلًا من localhost، ثم تحقق من جدار الحماية المحلي وإعدادات المقبس/العملية.
إذا لم تصل أي حزم بعد تحديث القواعد، فأرسل إلى الدعم مدة الالتقاط وعدد الحزم وعنوان IP المصدر وعنوان IP الوجهة ومنفذ الوجهة.
مراجع المزوّدين: Hetzner Cloud Firewall، Hetzner Robot Firewall، AWS Security Groups، AWS Network ACLs، وMicrosoft Pktmon.
الموارد
- جميع الأكواد ووثائق README موجودة في مستودع Solana Stream SDK: https://github.com/ValidatorsDAO/solana-stream






