ERPC 釋出 Solana SWQoS Durable Nonce Fanout 指南
ERPC 釋出 Solana SWQoS Durable Nonce Fanout 指南

由 ELSOUL LABO B.V.(總部:荷蘭阿姆斯特丹,CEO:Fumitake Kawasaki)和 Validators DAO 運營的 ERPC 釋出了一份新的實用操作指南,解釋如何充分利用 SWQoS(質押加權服務質量)來實現 Solana 交易提交的高成功率和低延遲。
本指南聚焦於以 ERPC SWQoS 端點為核心的交易提交架構,說明了如何安全地將同一筆交易扇出(fanout)到多個高效能 RPC 端點。提供了使用 web3.js 的具體實現示例,開發者可以直接在實際環境中應用。
背景:Solana 交易提交的結構性特徵
在 Solana 中,交易提交受到 slot 進展、領導者排程、網路路由和節點級別負載條件等持續變化因素的影響。因此,無法預先確定哪條提交路徑能最快到達領導者。
這一行為並非由特定 RPC 提供商或提交服務的質量引起,而是源於 Solana 執行模型本身的結構性特徵。因此,依賴單一 RPC 端點的設計在交易成功率和延遲方面往往面臨固有限制。
SWQoS 端點的角色與實際定位
ERPC 提供的 SWQoS 端點使交易能夠基於質押加權服務質量提交到領導者分配的優先通道。這些優先通道分配到的頻寬份額(約 80%)遠大於非優先通道(約 20%),並且在 Priority fee 評估之前的階段就已適用。
因此,SWQoS 端點是提交高價值交易的重要選擇。然而在實際運營中,即使使用 SWQoS,單一提交路徑也不總是最快的。在同一 slot 內,瞬態路由差異和不均勻的負載分佈可能使其他高效能端點率先處理交易。
單路徑設計的侷限性與 Fanout 的必要性
鑑於這些條件,預先預測單一最快路徑顯然不是有效的設計方法。相反,fanout 策略——同時向多個高效能提交路徑傳送同一筆交易並接受最先被處理的那個——是一種合理且穩健的解決方案。
以 SWQoS 為核心,同時與其他快速 RPC 端點組合,系統可以更好地應對逐 slot 的路由差異和負載波動。
Fanout 操作的根本挑戰
與此同時,透過多個提交路徑傳送同一筆交易引入了一個關鍵挑戰:如果沒有適當的控制,就無法保證交易只執行一次。不受控的 fanout 可能導致意外的重複執行或重試和重發邏輯的失效。
僅透過應用層邏輯來防止這些問題是困難的,需要協議級別的機制。
Durable Nonce 作為解決方案
Solana 提供了 Durable Nonce 作為官方機制來解決這一問題。透過使用 nonce 值替代 recentBlockhash,Durable Nonce 允許將同一簽名交易傳送到多個提交路徑,同時確保網路上只有單次執行有效。
因此,Durable Nonce 是安全實現基於 fanout 的交易提交的基礎技術元件。
本指南的定位
新發布的指南旨在從面向實現的角度(而非純理論角度)解釋使用 Durable Nonce 的交易提交。它全面說明了最大化 SWQoS 端點效果的提交設計,涵蓋從初始設定到日常運維工作流的所有內容。
指南涵蓋的關鍵主題
本指南整理並解釋了幾個在運維上至關重要的要點,包括:
- nonce 授權和 nonce 賬戶的設計
- 正確的指令排序,包括 nonceAdvance
- 關於原始交易不可重用性的運維約束
- 向多個 RPC 端點的並行提交
- 假設使用 Durable Nonce 的確認設計
- 後續交易提交的安全過渡模式
這些主題不僅面向概念驗證階段,也適用於穩定的生產部署。
ERPC 的實際提交架構
在 ERPC,交易提交架構以 SWQoS 為核心設計,同時組合跨不同地區和路由的多個高效能 RPC 端點。避免依賴單一地區或提交路徑是現實 Solana 運營的關鍵要素。
本指南可直接應用於 ERPC 多地區環境中的實際架構決策。
目標受眾
本指南面向以下開發者和團隊:
- 處理高頻或高價值交易的開發者
- 在現有 RPC 提交設定中遇到成功率或延遲挑戰的團隊
- 已在使用 SWQoS 端點或考慮採用的使用者
展望未來
ERPC 將繼續改進其交易提交基礎設施(包括 SWQoS),並逐步以指南和程式碼示例的形式釋出從實際部署中獲得的運維知識。
ERPC 致力於為開發者提供不僅快速,而且正確和運維穩定的交易提交平臺。
使用方式與諮詢
如需關於最優提交架構、地區選擇或從現有設計遷移的諮詢,可透過 Validators DAO 官方 Discord 獲得個別支援。
- Validators DAO 官方 Discord: https://discord.gg/C7ZQSrCkYR
- ERPC 官方網站: https://erpc.global/en


