ERPC 發布《How to be faster on Solana?》——一份以「網路距離的物理學」視覺化呈現 Solana 速度決定因素的報告,並附帶即時數據

ERPC 發布《How to be faster on Solana?》——一份以「網路距離的物理學」視覺化呈現 Solana 速度決定因素的報告,並附帶即時數據

ERPC 發布《How to be faster on Solana?》——一份以「網路距離的物理學」視覺化呈現 Solana 速度決定因素的報告,並附帶即時數據
營運 ERPC 的 ELSOUL LABO B.V.(總部:荷蘭阿姆斯特丹;CEO:Fumitake Kawasaki)與 Validators DAO,很高興宣布發布《How to be faster on Solana?》,這是一份報告頁面,以一條從上到下、連非專業開發者也能一目了然的脈絡,闡述如何在 Solana 上變得更快。
近年來,愈來愈多開發者與團隊投入區塊鏈上的高頻交易(HFT)與即時金融基礎設施,尤其是在 Solana 上。然而,在那些最基本問題背後的知識——為什麼有些人比較快、以及如何變得更快——卻一直零散分布於各篇技術部落格文章與片段式的說明之中,能讓人迅速掌握全貌的資源寥寥可數。本報告把 ERPC 長期以來發表的技術文章核心,重新整理成一條連貫的「物理學脈絡」。
本報告分享的,是即使在參與者遍布全球的去中心化網路上,也能更有效率、更高速地運用網路的實務理解。我們相信,有系統地分享「速度差異在哪裡產生、又為何產生」,超越任何單一供應商的利益,將有助於包含 Solana 在內的整個區塊鏈生態系的效率與健全成長。
How to be faster on Solana?(報告):https://erpc.global/zh-tw/how-to-be-faster/ ERPC 官方網站:https://erpc.global/zh-tw ERPC Dashboard:https://dashboard.erpc.global/zh-tw

決定速度的不是你的程式碼或你的機器,而是那個看不見的第三層

「我跑的是同一套策略,卻只有我的 bot 成交得比較晚。」「價格更新得好好的,可是只有我的交易送不進去。」「我換了 RPC 供應商,卻什麼都沒變。」——在 Solana 上競速的開發者所道出的抱怨,驚人地相似。
光靠硬體與程式碼贏不下 slot——你要靠時機與位置才能贏
第一個被懷疑的對象,永遠是「也許是我的程式碼太慢」或「也許是我的規格不夠好」。優化你的程式碼與機器當然有幫助。但在許多你已經把兩者都徹底調校過的情況下,到最後仍然殘留、而且最容易被忽略的,是一個看不見的第三層:你與 Solana 之間的網路距離。
一旦你的執行路徑已經優化得當,指令層級的 CPU 調校還能再榨出來的,就活在奈秒到最多數微秒的世界裡。相對地,網路距離主宰著數百毫秒——一個約 1000 倍量級的槓桿,正沉睡在人們最容易忽略的那一層裡。在你已經把程式碼與機器都打磨完之後,剩下最大的提升空間就在那個第三層。

在 Solana 上,「最快的位置」每個 slot 都在全球各地移動

在 Solana 上,slot 大約每 400 毫秒推進一次,而每個 slot 都會指派一個 validator 作為它的「leader」,負責建構那一段區塊。leader 切換得很快(同一個 validator 可能連續持有好幾個 slot),而離那個 leader 最近的伺服器,會在該 slot 取得很大的優勢。
這正是它與傳統高頻交易在本質上不同之處。在股票或外匯市場,把你的伺服器擺在交易所那台唯一的撮合引擎旁邊——一個不會移動的固定點——就能讓你一直保持領先。而在 Solana 上,leader 隨著每個 slot 在全球各地移動。最快的座位每一次都在不同的地方。在某一處紮營一次就以為大功告成,在這裡根本行不通。
在報告中,一個由 ERPC 的 Leader Slot Information API(getLeaderSlots)即時數據驅動的地球儀,會原原本本地、即時呈現當前的 leader 以及它令人目不暇給的更替。「最快的位置不停地在移動」——這不是比喻,而是一個你可以即時觀察到的事實。
即時 leader 地球儀——在 Solana 上 leader 隨著每個 slot 在全球各地移動

距離就是延遲——從同一網路內約 0.1ms 到跨洲的 100–300ms

光在光纖中傳播的速度,以及路徑上 router hops 的數量,共同設下一個任何硬體都打不破的下限。距離大致以下列這些量級發揮作用:
  • 同一網路:約 0.1ms
  • 同一資料中心:約 0.3ms
  • 同一城市:約 1ms
  • 鄰國:約 5–10ms
  • 跨洲:約 100–300ms
一個 slot 不過約 400 毫秒。光是跨越一個大陸的 100–300 毫秒,就會獨自吃掉整整一個 slot 的時間窗。當 leader 就在你家門口,你就趕得進那個時間窗;當它在地球的另一端,你還沒送出去就已經錯過了。要對每個 slot 都很快,就意味著無論 leader 落在哪裡,你都得永遠「在附近」。
速度由你與 Solana 之間的距離決定——同一網路內約 0.1ms 的直連路徑,相對於繞遠路的路徑
請注意,報告中的這組對比——「同一網路內約 0.1ms」相對於「在繞遠路的路徑上,relay hops 的數量(hops=訊號經過的 router)會增加到約 7,延遲則拉大到約 70 倍」——是一組概略的數字,意在直觀地傳達近路與遠路之間的差距。那些幅度很大的實測擺動,會出現在 ERPC 的 Leader Slot Information API 的即時數據中:從某個節點到 leader 的實測延遲,會依 leader 所在位置(也就是哪個 slot)而大幅變化,而在近的 slot 與遠的 slot 之間,已觀察到數十倍量級的擺動。一個單一的「平均延遲」數字,往往只是一個快的 slot 與一個慢的 slot 輪流出現而已;平均值經常掩蓋了真實狀況。
而「城市名稱」本身並不等於網路路徑。即使是在同一座城市內,只要插入了外部轉接或額外的 hops,延遲就會單憑這點而累積起來。正因如此,你要靠實測到達時間(ping)來選擇最近的節點,而不是靠地圖上的距離。

一座城市還不夠——多區域,永遠在 leader 附近

Solana 的 validator 群聚最密集的城市是 Frankfurt。即便如此,在發布當下的一次實測快照中,群聚於 Frankfurt 的 validator 也只占整個網路約四分之一——無論是以 validator 數量計,還是以 stake 計皆然。剩下約四分之三的 slot,是由 Frankfurt 以外的某處所領導。
距離讓一個封包付出什麼代價,以及就連最擁擠的城市 Frankfurt 也只占網路約四分之一
換句話說,即使你把那台唯一最強的機器擺在最擁擠的城市,光憑這點也永遠無法讓你「永遠最快」。在好幾個區域同時待命(例如 Frankfurt/Amsterdam/New York/Tokyo/Singapore),無論哪個 leader 正在活躍,都能在它附近接收,並隨著 leader 移動而交棒——這才是對每個 slot 都很快的方法。

當你的交易送不進去,你就卡在垃圾車道裡

速度不只是你的伺服器擺在哪裡的問題。你透過哪一條車道遞送你的交易,同樣決定了成敗。
Stake 加權優先(SWQoS)——沒有 stake,你就得在擁擠的「垃圾車道」排隊
在接收交易的 TPU(Transaction Processing Unit)的容量中,leader 會把至多約 80% 配置給 stake 加權優先——也就是配置給那些有「committed 給某個 validator 的 SOL(stake)」作為後盾的連線(SWQoS/Stake-Weighted Quality of Service)。剩下約 20% 由其他所有連線共享。後者是一條塞滿垃圾交易的擁擠車道。請注意,這個約 80% 的配置,是作為 Solana 協定的一部分由 leader 端決定的,並非 ERPC 所設定。
把交易直接朝 leader 開火,感覺像是最快的做法。但沒有 stake 作為後盾,那就意味著要在擁擠的約 20% 車道裡排隊,而在高負載下,你的交易最終會永遠進不了區塊。本質上的答案,是透過一條有 stake 作為後盾的路徑來送出——也就是從一個透過 trusted-peer 關係連到 staked validator 的 RPC 送出。ERPC 營運著一個頂級的 staked validator,並連接到高品質的 RPC 線路,作為此事的後盾(Shinobi Performance Pool)。

硬體只有在全力運轉時才有意義

即使一台伺服器擺在了對的位置,如果那台機器本身不全力衝刺,它也無法善用自己所換來的「近」。虛擬化的 VPS 會共享一個 hypervisor,因此正當情況最擁擠的時候,最容易因為「吵鬧的鄰居」而出現抖動(jitter)與卡頓。專屬的 bare metal 沒有這個問題。Solana validator 必須滿足的時脈下限是 2.8GHz;ERPC 的 bare metal 則遠遠運行在這之上,達到 5.7GHz 等級的高時脈,同時把使用率維持在 30–40%——因為一顆被釘在 95% 的 CPU,會像塞車的路一樣產生抖動。
這個差異並不限於頂級的 bare metal。在報告中,我們用一個實際的基準測試(node_bench),把 ERPC 的 VPS(VPS++)與一台規格相當的主要雲端虛擬機(兩者皆為 AMD Turin/4 vCPU)並排比較。這不是一場表演;它是一個任何人都能用同樣方法重現的「測量」。ERPC 一貫強調,要透過測量、而非透過主觀主張或行銷文案,來展示交付的品質與速度。

最終答案:同一網路=零距離

這整條推理脈絡最終抵達的,是單一一個點:與 Solana 的基礎設施——RPC、validator,以及交易中所牽涉的即時路徑(例如 Jito 與 Shredstream)——處於「同一網路」上。在同一網路上是約 0.1ms,而封包根本完全不會跨越公共網際網路。「經由公共網際網路」是大多數人的預設做法,而這正是大多數人之所以慢的原因。零距離,是把位置、機器與 stake 串在一起的結論。

ERPC——物理學所要求的每一項優化,盡在同一個平台上

對於報告以物理學推導出的每一個答案,ERPC 都備有相應的手段:在同一網路上的 VPS 與 bare metal(零距離)、在多個區域同時待命(FRA/AMS/NY/TYO/SGP)(永遠最快)、基於實測 ping 的路由(找出真正路徑上最近的節點,而非地圖上最近的節點)、getLeaderSlots API(逐 slot 掌握 leader 的位置),以及用開源的 SLV 調校過的 5.7GHz 等級 bare metal(全力運轉)。
ERPC 之所以誕生,是因為一開始我們自己就需要它。在營運開源的 Epics DAO(一款 Solana 上的卡牌遊戲)時,我們即使想買這類基礎設施也買不到,於是別無選擇,只能自己打造。如今,你也能站在同一個基礎之上。
在 ERPC 上,你可以在單一個平台上組合 Solana RPC、WebSocket、Solana Geyser gRPC、Solana Shredstream、Direct UDP Stream(Raw Shreds)、VPS、bare-metal 伺服器、專屬 RPC、SWQoS、支援 Pyth 的 Price API,以及 Jet Analytics & Indexed RPC。

更快、更有效率地運用去中心化網路

速度當中,有一部分可以透過正確的基礎設施投資來改善。但本報告自始至終想傳達的是,理解「差異在哪裡產生、又為何產生」才是真正的優勢。一旦你弄清楚自己是在哪裡損失時間——位置、路徑、機器,還是 stake——你接下來就能選對資源,並專注於你的核心工作:策略、寫程式與開發。
即使是在去中心化網路上,網路也能被高效地運用。有系統地分享這個事實,理應有助於包含 Solana 在內的整個區塊鏈生態系的效率與成長,超越任何單一供應商的利益。

Solana 專用基礎設施的研發與持續改進

在 ERPC 背後,是 ELSOUL LABO 持續推進的 Solana 專用基礎設施研發。自 2022 年起,ELSOUL LABO 已連續五年獲得荷蘭政府研發支援計畫 WBSO 的認可。它持續在 Solana RPC 基礎設施、validator 營運、即時數據交付,以及 AI agent 輔助的營運與開發等領域進行研發,而這些成果也反映在包含 ERPC、SLV、SLV AI,以及 AS200261 Solana 專用資料中心在內的各項服務之上。本報告的發布,同樣是直接承續這項持續研發而來的一項成果。ERPC 今後也將繼續有系統地公開其成果。

使用與諮詢

如對本報告的內容有疑問、想就改善自己設置的速度進行諮詢、需要協助挑選資源或規劃遷移,或對基準測試有疑問,歡迎在 Validators DAO 官方 Discord 上建立一張支援工單。
How to be faster on Solana?(報告):https://erpc.global/zh-tw/how-to-be-faster/ ERPC Dashboard:https://dashboard.erpc.global/zh-tw ERPC 官方網站:https://erpc.global/zh-tw Validators DAO 官方 Discord:https://discord.gg/C7ZQSrCkYR
我們由衷感謝所有使用者一直以來對 ERPC 的愛用。