Direct Shreds - UDP Forwarding (Raw Shreds)
UDP Forwarding ส่ง Shreds ดิบผ่าน UDP ไปยังที่อยู่ IPv4 สาธารณะและพอร์ตเพียงชุดเดียวที่คุณกำหนดค่าไว้ UDP Forwarding Standard และ UDP Forwarding Premium ต่างกันตรงวิธีที่ Shreds มาถึงคุณจากภูมิภาคที่คุณเลือกไว้ โดยใน Standard นั้น ERPC จะส่งต่อ Shreds ออกจากโหนดในภูมิภาคนั้น ส่วนใน Premium เครือข่าย mesh จะเป็นผู้ส่งต่อ
UDP Forwarding Standard
UDP Forwarding Standard ส่งต่อ Shreds ดิบผ่าน UDP ไปยังที่อยู่ IPv4 สาธารณะและพอร์ตที่กำหนดค่าไว้สำหรับการสมัครใช้งานของคุณ ให้เลือกภูมิภาคที่พร้อมใช้งานหนึ่งแห่งระหว่างการกำหนดค่าเริ่มต้น แล้วบันทึกที่อยู่ IPv4 สาธารณะที่ถูกต้องและไม่เว้นว่างพร้อมพอร์ตเป็นปลายทาง คุณสามารถอัปเดตปลายทางได้ภายหลัง ERPC ใช้การกำหนดค่าการส่งต่อตามรอบรีเฟรช 30 วินาที และไม่จำเป็นต้องเปิดใช้งานด้วย heartbeat คุณยังเปลี่ยนภูมิภาคได้ภายหลังในแดชบอร์ดโดยไม่จำกัดจำนวนครั้ง การเปลี่ยนภูมิภาคจะทำให้ IP ต้นทางเปลี่ยนไป ดังนั้นไฟร์วอลล์ฝั่งรับต้องอนุญาต IP ต้นทางใหม่ การส่งข้อมูลจะหยุดชะงักชั่วขณะระหว่างที่การสมัครใช้งานย้ายไปยังภูมิภาคใหม่ หากภูมิภาคใหม่ไม่มีความจุในขณะนี้ การเปลี่ยนแปลงดังกล่าวจะไม่เกิดขึ้น และทั้งภูมิภาคและปลายทางจะคงเดิม
- ERPC ส่งต่อ Shreds ดิบผ่าน UDP จากโหนดในภูมิภาคที่คุณเลือกไว้ไปยังปลายทางที่กำหนดค่าไว้ Shreds จึงมาถึงคุณจาก IP ต้นทางเพียงรายการเดียว
UDP Forwarding Premium
UDP Forwarding Premium ส่ง Shreds ดิบผ่าน UDP จากเครือข่าย mesh ไปยังที่อยู่ IPv4 สาธารณะและพอร์ตที่กำหนดค่าไว้สำหรับการสมัครใช้งานของคุณ เครือข่าย mesh จะส่งต่อสำเนาที่มาถึงเครือข่ายก่อนของ Shred แต่ละตัว โดย IP ต้นทางทุกรายการที่แสดงในแดชบอร์ดอาจเป็นผู้ส่งได้ ทั้งนี้ Shreds ทาง Premium มักมาถึงเร็วกว่าทาง Standard 1–3 ms เมื่อวันที่ 30 ตุลาคม 2026 ตัวรับของ ERPC ที่แฟรงก์เฟิร์ตได้รับ Standard และ Premium ไปพร้อมกันในการวัด 1 ครั้งนาน 120 วินาที แล้วนำ Shred แต่ละตัวที่มาถึงทั้งทาง Standard และ Premium มาเทียบเวลาที่มาถึงครั้งแรกในแต่ละทาง
กรอกที่อยู่ IPv4 สาธารณะและพอร์ตของโฮสต์รับข้อมูลของคุณเอง แล้วเลือกภูมิภาคหนึ่งจาก 7 ภูมิภาคที่พร้อมใช้งาน หลังจากบันทึกปลายทางแล้ว สถานะจะแสดงเป็น “กำลังนำไปใช้” และการส่งข้อมูลจะเริ่มขึ้นเมื่อนำการตั้งค่าไปใช้เสร็จแล้ว
ในไฟร์วอลล์ฝั่งรับ ให้อนุญาต IP ต้นทางทุกรายการที่แสดงในแดชบอร์ด โดยใช้กฎ
/32 หนึ่งกฎต่อหนึ่ง IPการเปลี่ยนภูมิภาคจะทำให้ชุด IP ต้นทางที่ไฟร์วอลล์ของคุณต้องอนุญาตเปลี่ยนไป การส่งข้อมูลจะหยุดจนกว่าจะนำภูมิภาคใหม่ไปใช้เสร็จ และ IP ต้นทางใหม่จะแสดงในแดชบอร์ดหลังจากนั้น หากภูมิภาคที่เลือกยังรับการเปลี่ยนแปลงไม่ได้ในขณะนี้ การเปลี่ยนแปลงนั้นจะไม่ถูกบันทึก และภูมิภาคกับปลายทางที่บันทึกไว้จะคงเดิม ขณะที่การเปลี่ยนแปลงก่อนหน้ายังนำไปใช้ไม่เสร็จ หรือทันทีหลังจากที่มีการรับการเปลี่ยนแปลง ระบบจะไม่รับการเปลี่ยนแปลงเพิ่มเติม
แม้คุณจะไม่ได้เปลี่ยนภูมิภาค แต่ IP ต้นทางก็อาจเปลี่ยนได้ หากการเปลี่ยนแปลงนั้นทำให้ต้องเพิ่มกฎในไฟร์วอลล์ เราจะแจ้งให้ทราบทางอีเมลหรือผ่านทีมสนับสนุน
สิ่งที่ควรรู้เกี่ยวกับ UDP
- UDP ไม่มีการสร้างการเชื่อมต่อ ไม่มีการส่งซ้ำ และไม่มีการจัดลำดับแพ็กเก็ต ตัวรับของคุณจึงควรจัดการแพ็กเก็ตโดยคำนึงถึงเรื่องนี้
หมายเหตุ: Shreds gRPC endpoint แบบใช้ร่วมกันทำงานบน 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 - หากยังไม่ได้ใช้ UDP ให้ลองรันในเครื่องหรือบนเซิร์ฟเวอร์ของคุณเองเพื่อดูล็อกและปรับแต่ง hook
เมื่อแพ็กเก็ต UDP ไม่มาถึง
ขั้นแรก ให้ดักจับทราฟฟิกที่อินเทอร์เฟซเครือข่ายของโฮสต์
UDP Forwarding Standard
การส่งต่อผ่าน UDP จะเริ่มทำงานโดยอัตโนมัติหลังจากตั้งค่าปลายทางแล้ว ไม่จำเป็นต้องเปิดใช้งานด้วย heartbeat และการที่ heartbeat ตอบกลับเป็น
UNIMPLEMENTED ไม่ได้หมายความว่าการส่งต่อถูกปิดใช้งานให้แทนที่ตัวยึดตำแหน่งด้วย IP ต้นทางของ ERPC ที่แสดงสำหรับสตรีมของคุณ และพอร์ตปลายทางที่คุณตั้งค่าไว้
Linux (
tcpdump):bash
Windows (
Pktmon, เรียกใช้ในฐานะผู้ดูแลระบบ):powershell
UDP Forwarding Premium
ให้แทนที่ตัวยึดตำแหน่งของ IP ต้นทางด้วย IP ต้นทางที่แสดงในแดชบอร์ด และแทนที่
<DESTINATION_PORT> ด้วยพอร์ตปลายทางที่คุณตั้งค่าไว้Linux (
tcpdump):bash
ต้องคงวงเล็บไว้ เพราะถ้าไม่มีวงเล็บ ตัวกรอง
udp dst port จะมีผลเฉพาะกับ IP ต้นทางรายการแรก และการดักจับจะเก็บทราฟฟิกทุกโปรโตคอลและทุกพอร์ตจาก IP ต้นทางทุกรายการที่ถัดจากรายการแรก ให้ใช้เงื่อนไข src host หนึ่งรายการต่อ IP ต้นทางหนึ่งรายการ และหากมี IP ต้นทางเพียงรายการเดียว ให้ลบส่วน or และวงเล็บออกWindows (
Pktmon, เรียกใช้ในฐานะผู้ดูแลระบบ):powershell
ให้เพิ่มบรรทัด
pktmon filter add หนึ่งบรรทัดต่อ IP ต้นทางหนึ่งรายการ และตั้งชื่อตัวกรองเป็นลำดับเลขตามตัวอย่าง เพราะตัวกรองเดียวที่ระบุหลาย IP จะจับทราฟฟิกระหว่าง IP เหล่านั้นแทน หากมี IP ต้นทางเพียงรายการเดียว ให้คงไว้เฉพาะบรรทัดตัวกรองแรกตรวจสอบไฟร์วอลล์และตัวรับ
- หากผลการดักจับยังคงเป็นศูนย์ ให้ตรวจสอบทั้งไฟร์วอลล์ของระบบปฏิบัติการและไฟร์วอลล์ภายนอกระบบปฏิบัติการ ในกรณีของ Hetzner ทราฟฟิกอาจถูกกรองที่ Cloud Firewall หรือที่ไฟร์วอลล์ Robot บนพอร์ตของสวิตช์ ส่วนบน AWS ให้ตรวจสอบ Security Group และ Network ACL ของซับเน็ต
- เพิ่มกฎอนุญาตตามแผนที่คุณใช้:
- UDP Forwarding Standard: อนุญาต UDP ขาเข้าจาก
<ERPC_SOURCE_IP>/32ไปยังพอร์ตปลายทาง<DESTINATION_PORT>และอย่าจำกัดพอร์ตต้นทาง เพราะ ERPC ใช้พอร์ตต้นทาง UDP แบบไดนามิก - UDP Forwarding Premium: อนุญาต UDP ขาเข้าจาก
<SOURCE_IP_n>/32แต่ละรายการไปยังพอร์ตปลายทาง<DESTINATION_PORT>โดยใช้หนึ่งกฎต่อ IP ต้นทางแต่ละรายการที่แสดงในแดชบอร์ด และอย่าจำกัดพอร์ตต้นทาง
- UDP Forwarding Standard: อนุญาต 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 ทั้งหมดอยู่ใน repository ของ Solana Stream SDK:
https://github.com/ValidatorsDAO/solana-stream






