Validators DAO 更新 Solana Stream SDK 的 TypeScript Yellowstone Geyser gRPC 用戶端,整合 NAPI-RS 提升高頻串流效能與穩定性

Validators DAO 更新 Solana Stream SDK 的 TypeScript Yellowstone Geyser gRPC 用戶端,整合 NAPI-RS 提升高頻串流效能與穩定性

Validators DAO 更新 Solana Stream SDK 的 TypeScript Yellowstone Geyser gRPC 用戶端,整合 NAPI-RS 提升高頻串流效能與穩定性
ELSOUL LABO B.V.(總部:荷蘭阿姆斯特丹,CEO:Fumitake Kawasaki)與 Validators DAO 宣布對開源 Solana 串流框架「Solana Stream SDK」的 TypeScript 用戶端進行重大版本更新,使 TypeScript Yellowstone Geyser gRPC 用戶端能夠利用 NAPI-RS(Rust 原生實作)。
透過此次更新,Solana Stream SDK 在保持 TypeScript 開發體驗的同時,提升了高頻串流工作負載的處理餘裕和穩定性。即使面對尖峰流量與持續湧入的事件,系統也以維持穩定、不易崩潰為設計目標。此外,起始程式碼已從簡單的連線範例重構為 Production-Ready(可用於正式環境)的基礎架構,專為實際營運和可擴充性而設計。

在 TypeScript 中處理即時串流的實際條件

Solana 串流用於即時回應能直接創造價值的領域,如交易、監控、分析和維運決策。同時,許多實際開發環境從根本上是基於 Web 的,TypeScript 因其開發速度、可維護性、團隊靈活性和交接便利性而成為理想選擇。
因此,重要的不僅是串流可以在 TypeScript 中處理,而是高頻串流可以在 TypeScript 中以實際且可持續的方式處理,並在長期運作下維持穩定。

為什麼 Node.js 單執行緒執行在尖峰負載下成為瓶頸

高頻串流涉及連續的接收、處理、過濾、解碼和下游邏輯執行,各項作業會同時進行。在這些條件下,單執行緒 Node.js 執行路徑在突發流量或短時間負載尖峰期間容易產生背壓。
實務上,這通常表現為延遲增加、處理積壓、事件遺失與頻繁重連。雖然 TypeScript 在開發速度和可維護性方面表現出色,但關鍵的維運挑戰在於是否能在串流尖峰條件下保持足夠的處理餘裕。此次更新直接應對了這一挑戰。

NAPI-RS 整合的先前範圍與擴充

此前,在 Solana Stream SDK 中,NAPI-RS 主要用於 Shreds gRPC TypeScript 用戶端。透過此次更新,NAPI-RS(Rust 原生)支援已擴充到廣泛使用的 Yellowstone Geyser gRPC TypeScript 用戶端。
這一擴充顯著增加了串流管道中能夠受益於低額外負擔原生執行的範圍,同時保留了基於 TypeScript 的介面。內部基準測試顯示,尖峰負載下的背壓容忍度明顯改善,處理餘裕最高提升至約 4 倍。關鍵成果不在於數字倍數本身,而在於運作模式的轉變——在尖峰條件下仍不易崩潰,因而可作為可靠的維運基準。
相較於 WebAssembly(WASM)等替代方案,NAPI 直接執行原生程式碼,可降低延遲並提高吞吐量。在 Solana Stream SDK 中,NAPI-RS 在不犧牲 TypeScript 開發體驗的情況下,發揮提升即時串流效能的核心作用。

在 TypeScript 中使用 Yellowstone Geyser gRPC 的意義

Geyser gRPC 是接收交易、帳戶更新與 slot 事件之低延遲串流的核心介面。延遲或資料遺失直接轉化為錯過的交易機會、延遲的監控和維運決策,以及增加的開發和維運成本。
讓這項核心介面能在 TypeScript 中實際承受尖峰負載,不僅僅是速度問題。它減少了開發和維運中的摩擦,使團隊能夠持續改進系統,無需更換技術堆疊或重寫核心邏輯。

將起始程式碼重新定義為 Production-Ready

此前,起始程式碼主要作為快速連線測試的入口。然而在實際營運中,斷連、重連、串流連續性、事件重複或遺失、訂閱過濾和尖峰負載控制等問題是不可避免的。
如果初始結構過於輕量,這些實際需求往往在後期以權宜方式新增,引入架構變形並增加長期維護成本。此次更新將起始程式碼重組為能夠從一開始就承受實際維運需求的基礎架構。

透過結構性重構明確擴充點

在 TypeScript 端,各項職責經過明確劃分,讓擴充點一目了然。進入點維持最精簡,只負責組裝與啟動,而處理邏輯則獨立置於處理器中。onTransaction 和 onAccount 等鉤子為自訂邏輯提供了明確的插入點。
這種結構允許交易邏輯、偵測邏輯、過濾策略和輸出目標都能在局部範圍內以可預測方式修改。訂閱定義也統一到 TypeScript 程式碼中,而非採用 JSON 設定,提高了可讀性和類型安全性。CommitmentLevel.PROCESSED 等易讀的寫法減少了程式碼與執行期間的行為之間的設定偏差。

將維運穩定性視為核心前提

在高頻串流中,僅有速度是不夠的;韌性同樣重要。此次更新繼續提供內建機制,如背壓控制(有界佇列、丟棄事件紀錄)、接收、處理與丟棄事件的指標、連線保活(ping/pong)、指數退避和基於 from_slot 的缺口補齊。
這些不是可選的增強功能,而是正式環境串流系統的基線要求。將起始程式碼視為 Production-Ready 意味著從一開始就嵌入這些假設,而非事後疊加。

目標使用者和使用情境

此次更新針對希望在正式環境中使用 TypeScript 執行即時 Solana 串流的開發者、使用 Yellowstone Geyser gRPC 建置低延遲偵測、交易與監控系統的團隊,以及在尖峰負載處理和重連行為方面面臨挑戰的開發者。目標是提升基於 TypeScript 的串流的維運可行性,同時不犧牲其固有優勢。

參考資料

Solana Stream SDK 的更新可在 GitHub 上取得。歡迎透過 GitHub 或 Validators DAO 官方 Discord 提供回饋。
ERPC 在多個地區提供 Solana 串流基礎設施。使用 Solana Stream SDK 起始程式碼,開發者可以直接在實際的 Geyser gRPC 環境中驗證行為。透過 ERPC 的免費試用,還可以在接近正式環境的條件下同時評估 SDK 和串流基礎設施。更多詳情請參閱 ERPC 官方網站。
Validators DAO 官方 Discord: https://discord.gg/C7ZQSrCkYR Solana Stream SDK(GitHub): https://github.com/ValidatorsDAO/solana-stream ERPC 官方網站: https://erpc.global/zh-tw/