---
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:** バリデータ側のプラグインで、アカウント更新、スロット、トランザクション、ブロック、エントリを外部システムにプッシュする。ポーリングは不要。
- **Yellowstone gRPC:** 現在多くのビルダーが使用しているネットワークプロトコル。Geyserをラップし、ストリームをネットワーク経由で公開する。
- **ストリーミングを使うべき場合:** すべてのアカウント書き込みが必要な場合、サブ秒単位の確認が必要な場合、あるいは`getProgramAccounts`をループで呼んでいる場合（インデクサ、MEV、フィルエンジン、AMMモニタなど）。
- **RPCを使うべき場合:** 単発の読み取り（残高、単一のトランザクション、現在のスロットなど）。
- **Alchemy:** バリデータ + Geyser + Yellowstone互換gRPCを運用。平均配信遅延5〜15ms、マルチノード冗長構成、月額最低料金なしで$75/TBから。

1つのセクションしか読まないなら、[When should your team care about Geyser?](#when-should-your-team-care-about-geyser)を読んでほしい。

Solana Geyser Pluginは、バリデータ側のインターフェースで、リアルタイムの状態変化（アカウント更新、スロットステータス、トランザクション、ブロック、エントリ）をSolanaバリデータからデータベース、メッセージキュー、インデクサなどの外部システムにストリーミングする。

Geyserはバリデータ内部の*仕組み*だ。現在多くのビルダーが実際にやり取りするプロトコルである**[Yellowstone gRPC](https://www.alchemy.com/solana-grpc)**は、Geyserの上に位置し、それらのストリームをネットワーク経由で公開するため、アプリは自前でバリデータを動かさなくても消費できる。単発のクエリには[Solana RPC](https://www.alchemy.com/solana)を使う。すべてのアカウント変更、トランザクション、スロットをリアルタイムで、`getProgramAccounts`をループで呼び出すことなく必要とする場合は、Yellowstone互換のGeyserストリームを使う。

## Solana Geyser Pluginの2023年以降の変化

Geyserは、バリデータ内のプラグイントレイトとしてSolana 1.9で導入された。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キーの背後に[ストリーミングエンドポイント](https://www.alchemy.com/solana-grpc)を公開している。
- Substreams、[Carbon](https://www.alchemy.com/dapps/carbon)、その他各種の独自スタックといった**インデクシングパイプライン**は、RPCをポーリングする代わりにYellowstoneストリームを消費する。

ブログやドキュメントにまだ「PostgreSQLプラグインをバリデータにコンパイルする」と書かれているなら、そのワークフローは存在するものの、もはやほとんどのチームが取る道ではない。これらのスタックを運用しているプロバイダーの比較については、[top Solana RPC providers guide](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. **アカウント更新:** すべてのアカウントへのすべての書き込みを、スロット、書き込みバージョン、完全なアカウントデータとともに。
2. **スロットステータスの変化:** `processed`、`confirmed`、`rooted`。
3. **トランザクション:** ログや内部命令を含む完全なトランザクション詳細を、バリデータが確認した時点で。
4. **ブロック:** 報酬、親スロット、エントリ数を含むブロックメタデータ。
5. **エントリ:** サブブロック単位（PoHエントリ）。最もレイテンシに敏感なコンシューマーに有用。

プラグインは任意のサブセットを購読できる。[Yellowstone gRPC](https://www.alchemy.com/solana-grpc)は同じ一連のフックを、サーバー側フィルタリング（アカウント、プログラム、オーナー、署名、データスライスによる）付きのサブスクリプションストリームとして公開する。

## Geyserを気にすべきなのはどんなチームか

以下の**いずれか**が当てはまる場合は、Geyserベースのストリームを使う:

- あるプログラム（AMM、オーダーブック、レンディングマーケットなど）のすべてのアカウント書き込みが必要な場合。`getProgramAccounts`では遅すぎる上にコストがかかりすぎる。
- インデクサ、フィルエンジン、MEVボット、リアルタイム分析パイプラインを構築している場合。
- サブ秒レイテンシのトランザクション確認イベントが必要な場合。
- 大規模なデータセットをページネーションしていて、それにRPCクレジットを消費している場合。
- プログラムの状態について、順序が保証され欠落のない履歴が必要な場合。

以下の場合はおそらくGeyserは不要だ:

- 単発の読み取り（トークン残高、単一トランザクションの照会、現在のスロットなど）をしている場合。RPCが適切なツールだ。
- アプリがユーザー主導のクエリに対して読み取り中心であり、書き込みストリームの消費が中心ではない場合。

## Geyser、Yellowstone、gRPC、インデクサがどう組み合わさるか

現代のSolanaデータスタックは4層構造だ:

<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>バリデータオペレーター（もしくはあなたのプロバイダー）</p>",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        "1": { title: "<p><strong>Geyser plugin</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>状態変化のコールバックを受け取る、バリデータにロードされるライブラリ</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>バリデータにコンパイルされて組み込まれる</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>プロバイダーのエンドポイントによって公開される</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アプリのほとんどは、バリデータやGeyserプラグインに直接触れることはない。[Yellowstone gRPC](https://www.alchemy.com/solana-grpc)接続を開き、関心のあるスライス（プログラム、オーナー、署名などでフィルタリング）を購読し、構築した任意のストレージや処理層にイベントをストリーミングする。[ストリーミングプロバイダー](https://www.alchemy.com/solana-grpc)がバリデータを運用し、Geyserプラグインをロードし、その接続の反対側でYellowstoneを公開する。

Yellowstone互換gRPCはRust、TypeScript、Go、そして`.proto`をコンパイルできるあらゆる言語で広くサポートされているため、プロバイダー間の移行は通常URLとキーの入れ替えで済む。

## 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:** レイテンシに敏感なコンシューマー向けのファーストスロットデータ保証。
- **48時間分のブロックリプレイと6,000以上の履歴スロット:** 必要に応じて復元可能なので、短時間の切断や再起動でもデータを失わない。
- **マルチノード冗長構成:** すべてのサブスクリプションが複数のアップストリームノードにファンアウトされるため、単一の遅いノードや停止したノードがストリームに現れることはない。
- **リージョナルエンドポイント:** US East、US West、EU Central、Asia-Pacific。
- **ストリーミングした分だけ支払う:** 月額最低料金なしで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は、バリデータ側のインターフェースで、リアルタイムの状態変化（アカウント更新、スロットステータス、トランザクション、ブロック、エントリ）をSolanaバリデータから外部システムにストリーミングする。これはプッシュモデルであり、データが届くとバリデータがプラグインに通知する。ポーリングもRPCのオーバーヘッドもない。

### GeyserとYellowstoneの違いは何か?

Geyserはバリデータ内部のプラグインインターフェースだ。[Yellowstone](https://www.alchemy.com/solana-grpc)は（gRPCの上に構築された）ネットワークプロトコルで、Geyserストリームをリモートクライアントに公開する。今日ほとんどのビルダーはGeyserに直接触れるのではなく、Yellowstoneとやり取りしている。彼らは、自前のバリデータにGeyserプラグインをコンパイルするのではなく、ストリーミングプロバイダーが運用するYellowstone gRPCエンドポイントに接続する。

### RPCではなくGeyser/Yellowstoneを使うべきなのはいつか?

すべてのアカウント書き込み、すべてのトランザクション、すべてのスロットをリアルタイムで必要とする場合はストリーミングを使う。これはインデクサ、MEVボット、フィルエンジン、AMM/オーダーブックモニタ、リアルタイム分析でよくあるケースだ。単発の読み取り（残高、単一のトランザクション、単一のアカウントなど）にはRPCを使う。`getProgramAccounts`をループで呼び出していることに気づいたら、それがストリーミングに切り替えるべきサインだ。

### Geyserを使うために自前でバリデータを運用する必要はあるか?

いいえ。2023年時点ではそれが一般的だったが、2026年にはほとんどのチームが、バリデータとGeyserプラグインの運用を代行してくれるプロバイダーの[マネージドYellowstone互換gRPCエンドポイント](https://www.alchemy.com/solana-grpc)を使っている。セルフホスティングは、規制上あるいは主権上の要件があるチーク向けに残されている。

### Geyser/Yellowstoneのサブスクリプションで何をストリーミングできるか?

アカウント更新、スロットステータスの変化(`processed`/`confirmed`/`rooted`)、ログと内部命令を含むトランザクション、ブロックメタデータ、PoHエントリだ。[Yellowstone gRPC](https://www.alchemy.com/solana-grpc)は、アカウント、プログラム、オーナー、署名、データスライスによるサーバー側フィルタリングをサポートしているため、ストリームにはアプリが必要とするものだけが流れる。

### Yellowstoneプロバイダー間で移行するにはどうすればよいか?

Yellowstoneは標準化されたプロトコルなので、ほとんどの移行はURLとAPIキーの変更で済む。新しいプロバイダーが使用中のストリームとフィルタをサポートしているか確認し、ステージングでテストし、トラフィックを段階的に移行する。再接続時のバックフィル動作はプロバイダーによって異なるため、本番のワークロードを切り替える前に確認しておくこと。

### Geyser/Yellowstoneストリーミングのコストはどのくらいか?

価格モデルはプロバイダーによって異なる。TBあたりの価格設定（[Alchemy](https://www.alchemy.com/solana-grpc): 月額最低料金なしで$75/TBから）は、バースト性のあるワークロードに対して最も予測しやすい。プロバイダーによっては、データを含む月額プランにgRPCをバンドルしていることもあり、これは安定した量では安く済む場合もあるが、トラフィックが急増すると高くつくこともある。導入前には必ず、実際のサブスクリプションフィルタに対してベンチマークを取ること。

*Solana上で構築する準備はできているか? [Alchemy's Yellowstone-compatible gRPCでストリーミングする](https://www.alchemy.com/solana-grpc): ドロップイン互換、マルチノード冗長構成、そして月額最低料金なしで$75/TB。*
