跳至內容
0%

什麼是 Solana Geyser Plugin?給開發者的 2026 指南

Alchemy team headshot

作者 Alchemy

發布於 2026年5月20日閱讀時間 3 分鐘

Solana Geyser Plugin 資料堆疊

摘要:Geyser、Yellowstone,以及何時該用串流

  • Geyser: 一種 validator 端的外掛程式,會將帳戶更新、slot、交易、區塊與 entry 推送到外部系統。不需要輪詢。
  • Yellowstone gRPC: 目前大多數開發者使用的網路協定。它包裝了 Geyser,並將串流透過網路對外開放。
  • 何時使用串流: 當你需要取得每一筆帳戶寫入、次秒級的確認,或是正在迴圈呼叫 getProgramAccounts(indexer、MEV、fill engine、AMM 監控)。
  • 何時使用 RPC: 偶爾的讀取(餘額、單筆交易、目前 slot)。
  • Alchemy: 提供 validator + Geyser + 相容 Yellowstone 的 gRPC。平均 5-15ms 傳輸延遲、多節點備援,每 TB 從 $75 起,無月費下限。

如果你只想讀一個章節,請讀 Geyser 何時該是你的團隊關心的重點?

Solana Geyser Plugin 是一個 validator 端的介面,會將即時狀態變化(帳戶更新、slot 狀態、交易、區塊與 entry)從 Solana validator 串流輸出到資料庫、訊息佇列或 indexer 等外部系統。

Geyser 是 validator 內部的機制。目前大多數開發者實際互動的協定是 Yellowstone gRPC,它建構在 Geyser 之上,將這些串流透過網路對外開放,讓應用程式不需自行運行 validator 就能取用。偶爾查詢時請使用 Solana RPC。當你需要即時取得每一筆帳戶變化、交易或 slot,而不想在迴圈中呼叫 getProgramAccounts 時,請使用相容 Yellowstone 的 Geyser 串流。

自 2023 年以來 Solana Geyser Plugin 有哪些變化

Geyser 在 Solana 1.9 版時以 validator 內建外掛 trait 的形式問世。2023 年時,大多數團隊都是自行運行 validator,並將 PostgreSQL 或 Kafka 外掛直接編譯進去。這種模式現在已經很少見了。

自那之後:

  • Yellowstone gRPC(最初由 Triton One 開發,現由社群維護)成為包裝 Geyser 並將串流對外開放的標準協定。現今大多數所謂的「Geyser provider」實際上賣的是相容 Yellowstone 的 gRPC。
  • 託管服務商Alchemy、Helius、Triton 等)替你運行 validator 與 Geyser 外掛,並在 API key 之後開放 串流端點
  • 索引管線如 Substreams、Carbon 及各種自有堆疊,都改為消費 Yellowstone 串流而非輪詢 RPC。

如果你的部落格或文件仍寫著「把 PostgreSQL 外掛編譯進你的 validator」,這種做法依然存在,但已不再是大多數團隊採用的方式。若想比較各家提供這類堆疊的服務商,可參考我們的 Solana RPC provider 排行指南

Solana Geyser Plugin 實際上做了什麼

Geyser 外掛是 validator 啟動時載入的共享函式庫。validator 實作了 GeyserPlugin trait,每當鏈上發生值得注意的事情,就會呼叫外掛。外掛接著決定如何處理這些資料:寫入資料庫、推送到佇列、透過 gRPC 串流傳送、丟棄,諸如此類。

validator 主動推送;外掛被動反應。這就是整個模型。沒有輪詢、沒有 RPC 呼叫,也沒有速率限制。資料在 validator 處理完成的當下就會抵達。

可以串流哪些內容

Geyser 提供以下幾類 hook:

  1. 帳戶更新: 每一個帳戶的每一次寫入,包含 slot、write version 與完整帳戶資料。
  2. Slot 狀態變化: processedconfirmedrooted
  3. 交易: 完整的交易細節,包含 validator 確認時的日誌與內層指令。
  4. 區塊: 區塊 metadata,包含獎勵、parent slot 與 entry 數量。
  5. Entry: 子區塊單位(PoH entry),對延遲最敏感的消費者特別有用。

外掛可以訂閱任意子集。Yellowstone gRPC 以訂閱串流的形式提供相同的一組 hook,並支援伺服器端過濾(依帳戶、程式、擁有者、簽章或資料切片)。

你的團隊何時該關心 Geyser?

只要符合以下任一條件,就該使用 Geyser 支援的串流:

  • 你需要取得某個程式的每一筆帳戶寫入(例如 AMM、orderbook、借貸市場)。getProgramAccounts 太慢也太貴。
  • 你正在建構 indexer、fill engine、MEV bot,或即時分析管線。
  • 你需要次秒級延遲的交易確認事件。
  • 你正在分頁讀取大量資料集,並因此耗費大量 RPC 額度。
  • 你需要程式狀態的有序、無缺口歷史紀錄。

以下情況你可能需要 Geyser:

  • 你只是偶爾讀取資料(token 餘額、單筆交易查詢、目前 slot)。這時 RPC 是合適的工具。
  • 你的應用程式主要是回應使用者查詢的讀取密集型服務,而非消費寫入串流。

Geyser、Yellowstone、gRPC 與 indexer 如何搭配運作

現代的 Solana 資料堆疊分為四層:

Layer
What it is
Who runs it

Validator

處理交易的 Solana 節點

Validator 運營者(或你的 provider)

Geyser plugin

validator 載入的函式庫,接收狀態變化的回呼

編譯進 validator 中

Yellowstone gRPC

建構在 Geyser 之上的標準化串流協定

由你的 provider 端點對外開放

Indexer / consumer

你的應用程式、資料庫、處理管線

你自己

大多數現代 Solana 應用程式從不直接接觸 validator 或 Geyser 外掛。它們開啟一個 Yellowstone gRPC 連線,訂閱自己關心的部分(依程式、擁有者、簽章等過濾),並將事件串流到自建的儲存或處理層。串流服務商負責運行 validator、載入 Geyser 外掛,並在該連線的另一端開放 Yellowstone。

相容 Yellowstone 的 gRPC 在 Rust、TypeScript、Go 及任何能編譯 .proto 的語言中都獲得廣泛支援,因此在 provider 之間遷移通常只需更換 URL 與 key。

Alchemy 在現代 Solana 資料堆疊中的定位

Alchemy 替你運行 validator、Geyser 外掛,以及相容 Yellowstone 的 gRPC 層。若你正在評估各家 provider,以下幾點值得了解:

  • 相容 Yellowstone 的 gRPC 在 Rust、TypeScript、Go 之間可直接替換使用。遷移只需更換 URL。
  • 平均 5-15ms 傳輸延遲: 為延遲敏感的消費者提供 first-slot-data 保證。
  • 48 小時區塊回放與 6,000+ 個歷史 slot: 可隨需恢復,因此短暫斷線或重啟不會讓你損失資料。
  • 多節點備援: 每個訂閱都會分散到多個上游節點,因此單一速度緩慢或卡住的節點不會反映在你的串流中。
  • 區域端點: 美國東岸、美國西岸、歐洲中部、亞太地區。
  • 只為實際串流的用量付費: 每 TB $75,無月費下限。
  • 相容 Prometheus 的指標: 內建於 Alchemy 儀表板中的每個串流的遙測資料。

Alchemy 的 Solana 堆疊是與來自 DexterLab 及 Bware Labs 的頂尖 Solana 工程師從零開始共同打造,並為 Phantom、Solflare、Robinhood、OpenSea 及 Circle 提供支援。

常見問題

什麼是 Solana Geyser Plugin?

Geyser Plugin 是一種 validator 端的介面,會將即時狀態變化(帳戶更新、slot 狀態、交易、區塊與 entry)從 Solana validator 串流輸出到外部系統。它採用推送模型:validator 在資料抵達時通知外掛,不需輪詢或 RPC 額外開銷。

Geyser 和 Yellowstone 有什麼差別?

Geyser 是 validator 內部的外掛介面。Yellowstone 是(建構在 gRPC 之上的)網路協定,將 Geyser 串流開放給遠端客戶端使用。如今大多數開發者互動的對象是 Yellowstone,而非直接使用 Geyser。他們連上串流服務商運營的 Yellowstone gRPC 端點,而不是把 Geyser 外掛編譯進自己的 validator。

什麼時候該用 Geyser/Yellowstone 而非 RPC?

當你需要即時取得每一筆帳戶寫入、每一筆交易,或每一個 slot 時,就該使用串流。這在 indexer、MEV bot、fill engine、AMM/orderbook 監控與即時分析中很常見。偶爾讀取(餘額、單筆交易、單一帳戶)則使用 RPC。如果你發現自己在迴圈中呼叫 getProgramAccounts,那就是該改用串流的訊號。

我需要自己運行 validator 才能使用 Geyser 嗎?

不需要。2023 年時這是常見做法;到了 2026 年,大多數團隊改用由 provider 負責處理 validator 與 Geyser 外掛的託管相容 Yellowstone gRPC 端點。自架部署則保留給有法規或主權需求的團隊。

透過 Geyser/Yellowstone 訂閱可以串流哪些內容?

帳戶更新、slot 狀態變化(processed/confirmed/rooted)、包含日誌與內層指令的交易、區塊 metadata,以及 PoH entry。Yellowstone gRPC 支援依帳戶、程式、擁有者、簽章或資料切片進行伺服器端過濾,因此串流只會攜帶你的應用程式需要的內容。

如何在不同的 Yellowstone provider 之間遷移?

Yellowstone 是標準化協定,因此大多數遷移只需更換 URL 與 API key。請先確認新 provider 支援你正在使用的串流與過濾條件,在測試環境中驗證,再逐步導流。不同 provider 的「重新連線並補齊資料」行為各有差異,切換正式環境的流量前務必先確認清楚。

Geyser/Yellowstone 串流的費用如何計算?

各家的定價模式不盡相同。以 TB 計費的方式(Alchemy:每 TB 從 $75 起,無月費下限)對流量起伏較大的工作負載來說最容易預估。有些 provider 會把 gRPC 包進含有固定流量額度的月費方案,在流量穩定時可能較便宜,但一旦流量暴增就會變貴。在決定之前,務必依照你實際的訂閱過濾條件進行實測。

準備好在 Solana 上開發了嗎?使用 Alchemy 相容 Yellowstone 的 gRPC 串流:可直接替換使用、多節點備援,每 TB $75 且無月費下限。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。