Solana ณ ตอนนี้

ทำยังไงให้เร็วขึ้น บน Solana?

ถ้าคุณพัฒนาบน Solana คุณต้องเคยพูดประโยคใดประโยคหนึ่งนี้แน่

  1. กลยุทธ์เหมือนโต๊ะข้างๆ เป๊ะ — แต่บอทผมดันลงช้ากว่า

  2. ราคาขยับ ผมยิงคำสั่ง แต่ธุรกรรมดันไม่เข้า

  3. ผมไล่เปลี่ยน RPC มาหมดทุกเจ้าแล้ว — แต่ก็เหมือนเดิม

ทั้งที่จูนมาอย่างมืออาชีพแล้ว

โค้ดก็จูนแล้ว เครื่องก็อัปเกรดแล้ว ทั้งคู่ไม่ใช่คอขวด — คุณกำลังไล่ตาม leader ที่ย้ายตำแหน่งไม่หยุด จากระยะที่ไกลเกินไป

ฮาร์ดแวร์กับโค้ดอย่างเดียวคว้า slot ไม่ได้ ตัวตัดสินคือจังหวะเวลาและตำแหน่งที่ตั้ง

ความเร็วซื้อได้ แต่ความเข้าใจต่างหากคือแต้มต่อ

ดูว่าจะไปถึงก่อนได้ยังไง

เป้าที่เคลื่อนที่

ตำแหน่งที่เร็วที่สุด ไม่เคยอยู่นิ่ง

ทุก slot — ช่วง ~400 ms ที่ Solana ใช้สร้างหนึ่ง block — จะมี validator ตัวใหม่ผลัดขึ้นมาเป็น leader และใครอยู่ใกล้ที่สุดคือผู้ชนะ

ไม่เหมือนจุดตายตัวที่ตั้งเครื่องประจำที่ไว้ครั้งเดียวก็จบ บน Solana ที่นั่งที่เร็วที่สุด ไม่เคยซ้ำที่เดิม

~400 ms · leader ใหม่ทุก slot

ที่นั่งที่เร็วที่สุด ไล่ทีละ slot

leader วนไปรอบโลกทีละ slot คว้าได้ครั้งหนึ่ง พอ slot ถัดมามันก็ย้ายไปอยู่ที่อื่นแล้ว

ดูการเคลื่อนตำแหน่ง

Solana RPC, Geyser gRPC & Shredstream ขั้นสูง

Epoch —

0.00%— validators
SOL

— countries

Leader

Live block producer

Slot

ระยะทางคือความหน่วง

ข้ามทวีปทีเดียว คุณตามหลังไป 100–300 ms

แสงที่วิ่งในไฟเบอร์และเราเตอร์ที่ต่อพ่วงกันหลายทอด กำหนดขีดต่ำสุดที่ไม่มีฮาร์ดแวร์ใดเอาชนะได้ อยู่แร็คเดียวกันราว 0.1 ms ส่วนข้ามมหาสมุทรอยู่ที่ 100–300 ms — ขณะที่หนึ่ง slot มีเวลาแค่ราว 400 ms

พอ leader มาอยู่หน้าประตูบ้าน คุณก็ทันกรอบเวลา — แต่พอมันย้ายไปอยู่อีกซีกโลก คุณก็พลาดไปแล้ว การจะทันทุก slot แปลว่าต้องอยู่ใกล้ทุกที่ที่ leader ไปลง

ขีดต่ำสุดเวลาไป-กลับตามระยะ · เป็นฟิสิกส์ ไม่ใช่ผลเบนช์มาร์ก

ระยะทางเพิ่มเวลาให้แพ็กเก็ตเท่าไร

เครือข่ายเดียวกัน
0.1 ms
ดาต้าเซ็นเตอร์เดียวกัน
0.3 ms
เมืองเดียวกัน
1 ms
ประเทศเพื่อนบ้าน
5–10 ms
ข้ามทวีป
100–300 ms

อยู่คนละทวีปกินเวลาเป็นหลายร้อยเท่าของการรับส่งภายในแร็คเดียวกัน — และนานกว่าหนึ่ง slot เต็มๆ ด้วยซ้ำ ความใกล้ไม่ใช่ลูกเล่นปรับจูน แต่มันคืองบเวลาทั้งก้อน

ความครอบคลุม — ทำไมเมืองเดียวถึงไม่พอ

เมืองที่หนาแน่นที่สุดก็ยังกินแค่ราวหนึ่งในสี่ของเครือข่าย

Frankfurt คือจุดที่ผู้ให้บริการกระจุกตัวกันมากที่สุด — แต่ถึงจะคึกคักที่สุด ก็ยังครองแค่ ราวหนึ่งในสี่ ของเครือข่าย ทั้งด้านจำนวน validator และด้าน stake สำหรับ slot ส่วนใหญ่ leader ตัวจริงอยู่ที่อื่น

ครอบคลุมทุกที่คืออุดมคติ แต่งบประมาณบีบให้ต้องเลือก คำถามจึงไม่ใช่แค่ว่าใครใหญ่ที่สุด แต่อยู่ที่ว่าใครมีเครื่องเบียดกันน้อยที่สุด — แข่งกันน้อยสุด Amsterdam มี stake พอๆ กับ Frankfurt แต่ validator อัดกันน้อยกว่ามาก จึงมักเป็นที่นั่งที่โล่งกว่าและดีกว่า

validator ของ Solana กระจายอยู่ที่ไหนบ้าง

validatorstake

ความครอบคลุม — มีโหนดอยู่ข้าง leader ทุกตัวแล้ว

ไม่ว่า leader ไปลงที่ไหน ก็มี โหนดแรงๆ ที่ต่อตรงเข้า Solana รออยู่ตรงนั้นแล้ว

บทบาท leader วนรอบโลกทีละ slot — โหนดที่ชนะจึงเป็นตัวที่อยู่ใกล้มันที่สุดอยู่แล้ว โหนดในภูมิภาคเดียวกันจึงตัดการรับส่งข้อมูลข้ามระยะไกลที่เพิ่มดีเลย์ทิ้งไปได้เลย

เราจึงไม่พึ่งพาที่ใดที่หนึ่งเพียงแห่งเดียว ความเร็วที่นิ่งสม่ำเสมอแปลว่าต้องอยู่ใกล้ในทุก slot — และเพราะ leader ขยับข้ามภูมิภาคตลอด มันจึงต้องครอบคลุมหลายภูมิภาค เราวางโหนดเกรด validator ตรงจุดที่ stake ของ Solana กระจุกตัว บนโครงข่ายดีเลย์ต่ำชุดเดียว และเพิ่มภูมิภาคไม่หยุด — ทุกภูมิภาคใหม่คือ slot ที่เพิ่มขึ้น slot ที่คุณได้นั่งอยู่ข้าง leader อยู่แล้ว

ซอลต์เลกซิตีChicagoNew YorkดับลินLondonAmsterdamFrankfurtสตอกโฮล์มSingaporeTokyoซิดนีย์

Global Data Center Partner

ความเร็วถูกกำหนดโดยระยะทางถึง Solana

ภูมิภาคมีความสำคัญ แต่ชื่อเมืองเพียงอย่างเดียวไม่ใช่เส้นทางเครือข่าย แม้แต่ในเมืองเดียวกัน การวิ่งผ่านเครือข่ายภายนอกและจำนวน hop ที่มากขึ้นก็เพิ่มความหน่วงได้ ERPC เลือกศูนย์ข้อมูลที่อยู่ใกล้เซิร์ฟเวอร์ Solana แล้วลัดเส้นทางให้สั้นโดยไม่ต้องวิ่งผ่านเครือข่ายภายนอก พร้อม turbo boost ต่อเนื่อง

เส้นทางพรีเมียมของ ERPC

ไม่วิ่งผ่านเครือข่ายภายนอก

RTT ต่ำสุด

0.1ms

เลือกแค่ระดับเมือง

ผ่านเครือข่ายภายนอก / 7 hops

ช้ากว่า 70 เท่า

7ms
  • 01ศูนย์ข้อมูลเดียวกันเลือกภูมิภาคก่อน จากนั้นเลือกศูนย์ข้อมูลที่ใกล้ Solana ที่สุด
  • 02ไม่ผ่านเครือข่ายภายนอกหลีกเลี่ยงเส้นทาง AS ภายนอกเพื่อให้ RTT และ jitter แน่นกระชับ
  • 03เต็มกำลังERPC ตัดโปรไฟล์ประหยัดพลังงานออก และคงทรัพยากรไว้ใน turbo boost ต่อเนื่อง

ลำดับความสำคัญถ่วงด้วย stake (SWQoS)

ถ้าธุรกรรมไม่ผ่านซ้ำๆ แปลว่าคุณติดอยู่ในเลนสแปม

leader ของ Solana แบ่งแบนด์วิดท์ลำดับความสำคัญเป็นสองเลน การเชื่อมต่อที่มี stake หนุนหลัง — SOL ที่ผูกไว้กับ validator — ได้ไป 80% รายอื่นๆ ทั้งหมดต้องไปแย่งกันในอีก 20% ที่เหลือ — เลนที่อัดแน่นไปด้วยสแปม

ยิงตรงเข้าหา leader ดูเผินๆ เหมือนเป็นทางที่เร็ว — แต่ถ้าไม่มี stake นั่นคือเลน 20% ที่แออัด และพอโหลดหนักขึ้นมา ธุรกรรมของคุณ ก็ไม่มีวันได้เข้า block

คำตอบจริงๆ จึงคือ validator ที่มี stake เรารัน validator ระดับท็อปที่ต่อเข้ากับสาย RPC คุณภาพสูง — ฮาร์ดแวร์ที่วางไว้ติด Solana — เพื่อให้ธุรกรรมของคุณวิ่งผ่านเลนกว้าง

validator ระดับท็อปใน Shinobi Performance Pool ของเรา

leader ของ Solana แบ่งแบนด์วิดท์ลำดับความสำคัญยังไง

มี stake · 80% · โล่ง ✓
txถึง leader
เข้า block
ไม่มี stake · 20% · ติดขัด ✕

stake พาคุณวิ่งบนเลนกว้าง 80% เข้าหา validator — ก่อนจ่ายค่าธรรมเนียมใดๆ ด้วยซ้ำ ไม่มี stake ก็ถูกยัดอยู่ในเลนสแปม 20%

สัดส่วน 80 / 20 leader ของ Solana เป็นคนกำหนด ไม่ใช่เรา

เบนช์มาร์กที่วัดจริง

เครื่องคลาสเดียวกัน แต่ความเร็วคนละเรื่อง

AMD Turin, 4 vCPU, Amsterdam, Ubuntu 24.04 — เหมือนกันเป๊ะทั้งสองเครื่อง เครื่องหนึ่งคือคลาวด์รายใหญ่ อีกเครื่องของเรา สเปกชีตบอกว่าเท่ากัน แต่ผลเบนช์บอกคนละเรื่อง

ชิปตัวเดียวกัน ช่องว่างนี้มาจากการจูนของเรา — เครื่องที่ปรับจูนมาอย่างลงตัวและวางไว้ติด Solana

node_bench · รันเดียวกัน ภูมิภาคเดียวกัน

ERPC เทียบคลาวด์รายใหญ่ · สเปกเดียวกัน

พลังประมวลผล CPUsysbench · 4 threads · ยิ่งสูงยิ่งดี
1.9×
ERPC
7,850
Cloud
4,062

events/s

แบนด์วิดท์หน่วยความจำSTREAM Triad · 4 GiB · ยิ่งสูงยิ่งดี
3.2×
ERPC
151,986
Cloud
47,943

MB/s

Disk IOPSfio · 4K randread · QD32 · ยิ่งสูงยิ่งดี
16.6×
ERPC
50,675
Cloud
3,061

IOPS

ความหน่วงดิสก์ · p99fio · 4K randread · QD32 · ยิ่งต่ำยิ่งดี
25.7×
ERPC
668
Cloud
17,170

µs

ยกระดับทั้งสภาพแวดล้อมสู่เกรดสูงสุด

ERPC จูนทุกชั้นระหว่างคุณกับ slot — RPC, สตรีมมิ่ง, validator, ไล่ลงไปถึง bare metal ข้างใต้ — แล้ววางทุกอย่างไว้ใกล้ Solana ที่สุด เมื่อก่อนการประกอบสิ่งเหล่านี้เข้าด้วยกันเป็นหน้าที่ของคุณ ตอนนี้เพียงนำผลิตภัณฑ์ของเรามาต่อรวมกัน — สายที่เร็วที่สุดสู่ Solana