---
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
/>

**TL;DR：Geyser、Yellowstone，以及何时该用流式传输**

- **Geyser：** 一个验证者侧插件，将账户更新、slot、交易、区块和 entry 推送给外部系统。无需轮询。
- **Yellowstone gRPC：** 目前大多数开发者使用的网络协议。它封装 Geyser，并通过网络对外暴露流。
- **需要流式传输的场景：** 你需要每一次账户写入、亚秒级确认，或者你在循环调用 `getProgramAccounts`（索引器、MEV、成交引擎、AMM 监控）。
- **使用 RPC 的场景：** 偶尔性读取（余额、单笔交易、当前 slot）。
- **Alchemy：** 提供验证者 + Geyser + 兼容 Yellowstone 的 gRPC。平均 5-15ms 送达延迟，多节点冗余，起价 $75/TB，无月度最低消费。

如果你只想读一节内容，请阅读[你的团队什么时候该关注 Geyser？](#when-should-your-team-care-about-geyser)。

Solana Geyser Plugin 是一个验证者侧接口，将实时状态变化（账户更新、slot 状态、交易、区块和 entry）从 Solana 验证者流式传输到数据库、消息队列或索引器等外部系统。

Geyser 是*验证者内部的机制*。目前大多数开发者接触的协议是 **[Yellowstone gRPC](https://www.alchemy.com/solana-grpc)**，它建立在 Geyser 之上，通过网络暴露这些流，使应用无需自己运行验证者即可消费它们。偶尔查询时使用 [Solana RPC](https://www.alchemy.com/solana)。当你需要实时获取每一次账户变化、交易或 slot，而不是在循环中调用 `getProgramAccounts` 时，使用兼容 Yellowstone 的 Geyser 流。

## Solana Geyser Plugin 自 2023 年以来发生了什么变化

Geyser 随 Solana 1.9 作为验证者内部的一个 plugin trait 推出。2023 年时，大多数团队会自己运行验证者，并直接编译进一个 PostgreSQL 或 Kafka 插件。这种模式现在已经不常见了。

此后：

- **Yellowstone gRPC**（最初由 [Triton One](https://github.com/rpcpool/yellowstone-grpc) 开发，现由社区维护）成为封装 Geyser、通过网络暴露流的标准协议。如今大多数所谓的 "Geyser 提供商" 实际上卖的是兼容 Yellowstone 的 gRPC。
- **托管提供商**（[Alchemy](https://www.alchemy.com/solana-grpc)、Helius、Triton 等）代你运行验证者和 Geyser 插件，并在 API key 之后暴露[流式端点](https://www.alchemy.com/solana-grpc)。
- **索引管道**如 Substreams、[Carbon](https://www.alchemy.com/dapps/carbon) 以及各种自建方案，消费 Yellowstone 流，而不是轮询 RPC。

如果你的博客或文档还在说"把 PostgreSQL 插件编译进你的验证者"，这种工作流仍然存在，但已不再是大多数团队采用的路径。想对比运行这些方案的各家提供商，可参考我们的[顶级 Solana RPC 提供商指南](https://www.alchemy.com/overviews/solana-rpc)。

## Solana Geyser Plugin 实际做了什么

Geyser 插件是验证者启动时加载的共享库。验证者实现了 [`GeyserPlugin` trait](https://docs.solana.com/developing/plugins/geyser-plugins)，每当链上发生值得关注的事情，就会调用插件。插件随后决定如何处理这些数据：写入数据库、推送到队列、通过 gRPC 流发送出去、丢弃它，等等。

验证者负责推送，插件负责响应。这就是整个模型。没有轮询、没有 RPC 调用、也没有速率限制。数据在验证者处理的那一刻就到达。

### 可以流式传输哪些内容

Geyser 为以下内容暴露了钩子：

1. **账户更新：** 每一次对每个账户的写入，包含 slot、写入版本和完整账户数据。
2. **slot 状态变化：** `processed`、`confirmed`、`rooted`。
3. **交易：** 完整的交易详情，包括日志和内部指令，在验证者确认交易时提供。
4. **区块：** 区块元数据，包括奖励、父 slot 和 entry 数量。
5. **entry：** 子区块单元（PoH entry），对延迟最敏感的消费者有用。

插件可以订阅任意子集。[Yellowstone gRPC](https://www.alchemy.com/solana-grpc) 将同一组钩子以订阅流的形式暴露出来，并支持服务端过滤（按账户、程序、owner、签名或数据切片）。

## 你的团队什么时候该关注 Geyser？

在以下**任一**情况成立时，使用基于 Geyser 的流：

- 你需要某个程序（例如 AMM、订单簿、借贷市场）的每一次账户写入。`getProgramAccounts` 既太慢又太贵。
- 你在构建索引器、成交引擎、MEV 机器人或实时分析管道。
- 你需要亚秒级延迟的交易确认事件。
- 你在分页拉取大型数据集，并因此消耗大量 RPC 额度。
- 你需要有序、无缺口的程序状态历史。

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

- 你只是偶尔读取（代币余额、单笔交易查询、当前 slot）。RPC 是合适的工具。
- 你的应用以用户驱动的查询为主，而非写入流消费。

## Geyser、Yellowstone、gRPC 和索引器如何协同工作

现代 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>The Solana node processing transactions</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>Validator operators (or your provider)</p>",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        "1": { title: "<p><strong>Geyser plugin</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>Validator-loaded library that receives state-change callbacks</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>Compiled into the validator</p>",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        "1": { title: "<p><strong>Yellowstone gRPC</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>Standardized streaming protocol on top of Geyser</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>Exposed by your provider's endpoint</p>",
          tooltip: "",
          icon: "",
        },
        id: 2,
      },
      {
        "1": { title: "<p><strong>Indexer / consumer</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>Your app, your database, your pipeline</p>",
          tooltip: "",
          icon: "",
        },
        "3": { title: "<p>You</p>", tooltip: "", icon: "" },
        id: 3,
      },
    ],
  }}
/>

大多数现代 Solana 应用从不直接接触验证者或 Geyser 插件。它们建立一条 [Yellowstone gRPC](https://www.alchemy.com/solana-grpc) 连接，订阅自己关心的数据切片（按程序、owner、签名等过滤），并将事件流式传输到自建的存储或处理层。[流式传输提供商](https://www.alchemy.com/solana-grpc)负责运行验证者、加载 Geyser 插件，并在该连接的另一端暴露 Yellowstone。

兼容 Yellowstone 的 gRPC 在 Rust、TypeScript、Go 以及任何能编译 `.proto` 的语言中都被广泛支持，因此在提供商之间迁移通常只需更换 URL 和 key。

## Alchemy 在现代 Solana 数据栈中的位置

[Alchemy](https://www.alchemy.com/solana) 为你运行验证者、Geyser 插件，以及兼容 Yellowstone 的 gRPC 层。如果你正在评估提供商，以下几点值得了解：

- **[兼容 Yellowstone 的 gRPC](https://www.alchemy.com/solana-grpc)：** 在 Rust、TypeScript、Go 中即插即用。迁移只需更换 URL。
- **平均 5-15ms 送达延迟：** 为延迟敏感型消费者提供首个 slot 数据保证。
- **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 是一个验证者侧接口，将实时状态变化（账户更新、slot 状态、交易、区块和 entry）从 Solana 验证者流式传输到外部系统。它采用推送模型：验证者在数据到达时通知插件，没有轮询或 RPC 开销。

### Geyser 和 Yellowstone 有什么区别？

Geyser 是验证者内部的插件接口。[Yellowstone](https://www.alchemy.com/solana-grpc) 是（构建在 gRPC 之上的）网络协议，将 Geyser 流暴露给远程客户端。如今大多数开发者接触的是 Yellowstone，而非直接接触 Geyser。他们连接到由流式传输提供商运营的 Yellowstone gRPC 端点，而不是把 Geyser 插件编译进自己的验证者。

### 我应该什么时候使用 Geyser/Yellowstone 而不是 RPC？

当你需要实时获取每一次账户写入、每一笔交易或每一个 slot 时，使用流式传输。这在索引器、MEV 机器人、成交引擎、AMM/订单簿监控以及实时分析中很常见。偶尔读取（余额、单笔交易、单个账户）时使用 RPC。如果你发现自己在循环中调用 `getProgramAccounts`，那就是切换到流式传输的信号。

### 使用 Geyser 需要自己运行验证者吗？

不需要。2023 年时这很常见；到 2026 年，大多数团队使用由提供商代为处理验证者和 Geyser 插件的[托管式、兼容 Yellowstone 的 gRPC 端点](https://www.alchemy.com/solana-grpc)。自托管仅适用于有监管或主权要求的团队。

### 通过 Geyser/Yellowstone 订阅可以流式传输哪些内容？

账户更新、slot 状态变化（`processed`/`confirmed`/`rooted`）、包含日志和内部指令的交易、区块元数据，以及 PoH entry。[Yellowstone gRPC](https://www.alchemy.com/solana-grpc) 支持按账户、程序、owner、签名或数据切片进行服务端过滤，因此流中只会携带你的应用需要的内容。

### 如何在 Yellowstone 提供商之间迁移？

Yellowstone 是一个标准化协议，因此大多数迁移只需更换 URL 和 API key。请先确认新提供商支持你所使用的流和过滤器，在预发布环境测试，再逐步切换流量。不同提供商的"重连并回填"行为有所不同，切换生产环境负载前请务必确认。

### Geyser/Yellowstone 流式传输的费用是多少？

定价模式各不相同。按 TB 计费（[Alchemy](https://www.alchemy.com/solana-grpc)：起价 $75/TB，无月度最低消费）对于突发性负载来说最为可预测。有些提供商将 gRPC 打包进月度套餐并附带一定数据量，在流量稳定时可能更便宜，但一旦流量激增就会变得昂贵。在做出决定前，务必按照你实际的订阅过滤条件进行基准测试。

*准备好在 Solana 上构建了吗？[使用 Alchemy 兼容 Yellowstone 的 gRPC 进行流式传输](https://www.alchemy.com/solana-grpc)：即插即用、多节点冗余，且 $75/TB 无月度最低消费。*
