Direct Shreds - UDP Forwarding Standard (Raw Shreds)
UDP Forwarding Standard आपकी सदस्यता के लिए कॉन्फ़िगर किए गए सार्वजनिक IPv4 पते और पोर्ट पर Raw Shreds को UDP के माध्यम से फ़ॉरवर्ड करता है। प्रारंभिक कॉन्फ़िगरेशन के दौरान एक उपलब्ध क्षेत्र चुनें, फिर गंतव्य के रूप में एक मान्य, गैर-रिक्त सार्वजनिक IPv4 पता और पोर्ट सहेजें। गंतव्य को आप बाद में अपडेट कर सकते हैं। ERPC फ़ॉरवर्डिंग कॉन्फ़िगरेशन को अपने 30 सेकंड के रिफ्रेश चक्र पर लागू करता है, और heartbeat से सक्रिय करने की आवश्यकता नहीं है। आप क्षेत्र को भी बाद में डैशबोर्ड में बदल सकते हैं, जितनी बार आवश्यकता हो। क्षेत्र बदलने पर स्रोत IP बदल जाता है, इसलिए आपके रिसीवर के फ़ायरवॉल को नए स्रोत IP की अनुमति देनी होगी। सदस्यता के नए क्षेत्र में जाने के दौरान डिलीवरी थोड़ी देर के लिए बाधित होती है। यदि नए क्षेत्र में इस समय क्षमता उपलब्ध नहीं है, तो यह परिवर्तन नहीं किया जाता, और न क्षेत्र बदलता है और न गंतव्य।
UDP फ़ॉरवर्डिंग कैसे काम करती है
- ERPC कॉन्फ़िगर किए गए गंतव्य पर Raw Shreds को UDP के माध्यम से फ़ॉरवर्ड करता है।
- 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 - अपने रिसीवर को उस गंतव्य
ip:portके साथ कॉन्फ़िगर करें, जो UDP Forwarding Standard के लिए सहेजा गया है। - अभी UDP का उपयोग नहीं कर रहे? लॉग देखने और हुक को अपनी ज़रूरत के अनुसार बदलने के लिए इस सैंपल को अपनी लोकल मशीन या अपने सर्वर पर चलाएँ।
UDP पैकेट नहीं पहुँच रहे हैं
गंतव्य कॉन्फ़िगर होने के बाद UDP फ़ॉरवर्डिंग अपने-आप शुरू हो जाती है। इसके लिए heartbeat से सक्रिय करने की आवश्यकता नहीं है; heartbeat पर
UNIMPLEMENTED उत्तर मिलने का मतलब यह नहीं है कि फ़ॉरवर्डिंग बंद है।सबसे पहले, होस्ट के नेटवर्क इंटरफ़ेस पर ट्रैफ़िक कैप्चर करें। प्लेसहोल्डर की जगह अपनी स्ट्रीम के लिए दिखाया गया ERPC स्रोत IP और अपना कॉन्फ़िगर किया हुआ गंतव्य पोर्ट डालें।
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- यदि कैप्चर में पैकेटों की संख्या शून्य ही बनी रहती है, तो OS का फ़ायरवॉल और OS के बाहर के फ़ायरवॉल, दोनों जाँचें। Hetzner, Cloud Firewall में या स्विच पोर्ट पर Robot Firewall में ट्रैफ़िक फ़िल्टर कर सकता है। AWS पर Security Group और सबनेट का Network ACL जाँचें।
<ERPC_SOURCE_IP>/32से गंतव्य पोर्ट<DESTINATION_PORT>पर आने वाले UDP ट्रैफ़िक की अनुमति दें। स्रोत पोर्ट पर कोई प्रतिबंध न लगाएँ, क्योंकि ERPC डायनेमिक UDP स्रोत पोर्ट का उपयोग करता है।- यदि पैकेट कैप्चर में दिखते हैं, लेकिन आपके एप्लिकेशन तक नहीं पहुँचते, तो रिसीवर को localhost के बजाय
0.0.0.0:<DESTINATION_PORT>पर बाइंड करें, फिर लोकल फ़ायरवॉल और सॉकेट/प्रोसेस सेटिंग्स जाँचें।
नियम अपडेट करने के बाद भी पैकेट न आएँ, तो सपोर्ट टीम को कैप्चर की अवधि, पैकेटों की संख्या, स्रोत 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






