Direct Shreds - UDP ส่งต่อ (Raw Shreds)
ถ้าคุณมี...ERPC ชเรดส์ที่สละสิทธิ์แล้ว คุณสามารถเลื่อนชเรดดิบไป UDP แด่ผู้ฟังของคุณ นี่คือ Solanaชั้นสํารวจที่เร็วที่สุด -- ก่อน Geyser gRPC และไกลเกินกว่า RPC/WebSocket. เอส ดีเค รวม เอา เรื่อง ง่าย ๆ Rust ตัว อย่าง; สูบ ปั๊ม.
ทําไมนี่เป็นเส้นทางที่เร็วที่สุด
- อัตราการสั่นมาถึงก่อน: การตรวจสอบการเยื้องที่ดินก่อน Geyser gRPC or RPC/WebSocketสภาวะฉุกเฉินที่ร้ายแรงมาก เห็นเหตุการณ์ตั้งแต่เริ่มต้น
- UDP เก็บค่าน้อยที่สุด: ไม่มีการตั้งค่าการเชื่อมต่อ, การเรียงลําดับใหม่, หรือการเรียงลําดับ; ให้ตรงกับรูปแบบสายระหว่างตัวตรวจ
- แลกเปลี่ยน: ข้อมูลก่อนการวางจําหน่ายสามารถขาด/ออกของลําดับ/ ไม่สําเร็จ -- จัดการกับข้อมูลดังกล่าวเป็นส่วนหนึ่งของการต่อรองความเร็ว
หมายเหตุ: ฌานที่ใช้ร่วมกัน gRPC จุด จบ ของ ที ซี พี จึง ช้า กว่า UDP อาเจียน
ลองกับ Solana เครือข่าย SDK
- รหัสตัวอย่าง (
shreds-udp-rs, Rustปั๊ม ความสนุกสนานเป็นแค่ตัวอย่างทั่วไป https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs - ผู้ ใช้ ที่ อุทิศ ตัว แล้ว:
ip:portเพื่อดูการตรวจสอบ - ไม่เปิด UDP ยัง? เรียกใช้มันในท้องถิ่นหรือบนเซิร์ฟเวอร์ของคุณเอง เพื่อสํารวจปูมบันทึกและตะขอปรับแต่ง
เมื่อแพ็กเก็ต UDP ไม่มาถึง
การส่งต่อ UDP จะเริ่มโดยอัตโนมัติหลังจากตั้งค่าปลายทางแล้ว ไม่ต้องเปิดใช้งานด้วย heartbeat และการตอบกลับ heartbeat เป็น
UNIMPLEMENTED ไม่ได้หมายความว่าการส่งต่อถูกปิดใช้งานขั้นแรก ให้จับทราฟฟิกที่อินเทอร์เฟซเครือข่ายของโฮสต์ แทนที่ placeholder ด้วย IP ต้นทางของ ERPC ที่แสดงสำหรับ stream ของคุณและพอร์ตปลายทางที่ตั้งค่าไว้
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 Firewall ที่พอร์ตของสวิตช์ ส่วน AWS ให้ตรวจสอบ Security Group และ Network ACL ของ subnet
- อนุญาต UDP ขาเข้าจาก
<ERPC_SOURCE_IP>/32ไปยังพอร์ตปลายทาง<DESTINATION_PORT>อย่าจำกัดพอร์ตต้นทาง เพราะ ERPC ใช้พอร์ตต้นทาง UDP แบบไดนามิก - หากเห็นแพ็กเก็ตในการจับทราฟฟิกแต่แอปพลิเคชันไม่ได้รับ ให้ bind ตัวรับกับ
0.0.0.0:<DESTINATION_PORT>แทน localhost แล้วตรวจสอบไฟร์วอลล์ภายในเครื่องและการตั้งค่า socket/process
หากยังไม่มีแพ็กเก็ตหลังจากอัปเดตกฎแล้ว ให้ส่งระยะเวลาการจับแพ็กเก็ต จำนวนแพ็กเก็ต IP ต้นทาง IP ปลายทาง และพอร์ตปลายทางให้ Support
เอกสารอย่างเป็นทางการของผู้ให้บริการ: Hetzner Cloud Firewall, Hetzner Robot Firewall, AWS Security Groups, AWS Network ACLs และ Microsoft Pktmon
ทรัพยากร
- ถอดรหัสและโปรแกรมพร้อมใช้ Solana รีโปของสายข้อมูล SDK: https://github.com/ValidatorsDAO/solana-stream






