---
title: "什麼是 Solana Geyser Plugin?給開發者的 2026 指南"
description: "了解 Solana Geyser Plugin 是什麼、它與 Yellowstone gRPC 的關係，以及何時該用串流而非 RPC。2026 年更新。"
---

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

<ImageBlock
  src="https://media.alchemy.com/1703182882-what-is-the-solana-geyser-plugin.jpg"
  alt="Solana Geyser Plugin 資料堆疊"
  width={1800}
  height={945}
  priority
/>

**摘要：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 何時該是你的團隊關心的重點？](#when-should-your-team-care-about-geyser)。

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

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

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

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

自那之後：

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

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

## Solana Geyser Plugin 實際上做了什麼

Geyser 外掛是 validator 啟動時載入的共享函式庫。validator 實作了 [`GeyserPlugin` trait](https://docs.solana.com/developing/plugins/geyser-plugins)，每當鏈上發生值得注意的事情，就會呼叫外掛。外掛接著決定如何處理這些資料：寫入資料庫、推送到佇列、透過 gRPC 串流傳送、丟棄，諸如此類。

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

### 可以串流哪些內容

Geyser 提供以下幾類 hook：

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

外掛可以訂閱任意子集。[Yellowstone gRPC](https://www.alchemy.com/solana-grpc) 以訂閱串流的形式提供相同的一組 hook，並支援伺服器端過濾（依帳戶、程式、擁有者、簽章或資料切片）。

## 你的團隊何時該關心 Geyser？

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

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

以下情況你可能*不*需要 Geyser：

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

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

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

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 160, title: "Layer", dataType: "object" },
      { key: "2", width: 280, title: "What it is", dataType: "object" },
      { key: "3", width: 200, title: "Who runs it", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p><strong>Validator</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>處理交易的 Solana 節點</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>Validator 運營者（或你的 provider）</p>",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        "1": { title: "<p><strong>Geyser plugin</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>validator 載入的函式庫，接收狀態變化的回呼</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>編譯進 validator 中</p>",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        "1": { title: "<p><strong>Yellowstone gRPC</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>建構在 Geyser 之上的標準化串流協定</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>由你的 provider 端點對外開放</p>",
          tooltip: "",
          icon: "",
        },
        id: 2,
      },
      {
        "1": { title: "<p><strong>Indexer / consumer</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>你的應用程式、資料庫、處理管線</p>",
          tooltip: "",
          icon: "",
        },
        "3": { title: "<p>你自己</p>", tooltip: "", icon: "" },
        id: 3,
      },
    ],
  }}
/>

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

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

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

[Alchemy](https://www.alchemy.com/solana) 替你運行 validator、Geyser 外掛，以及相容 Yellowstone 的 gRPC 層。若你正在評估各家 provider，以下幾點值得了解：

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

Alchemy 的 [Solana 堆疊](https://www.alchemy.com/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](https://www.alchemy.com/solana-grpc) 是（建構在 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 端點](https://www.alchemy.com/solana-grpc)。自架部署則保留給有法規或主權需求的團隊。

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

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

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

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

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

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

*準備好在 Solana 上開發了嗎？[使用 Alchemy 相容 Yellowstone 的 gRPC 串流](https://www.alchemy.com/solana-grpc)：可直接替換使用、多節點備援，每 TB $75 且無月費下限。*
