> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Solana Yellowstone gRPC: リアルタイムデータストリーミング

> 開発者向けに高度なフィルタリングと超低レイテンシーの配信を提供するgRPCプロトコルを使用した高性能なSolanaブロックチェーンのリアルタイムデータストリーミング。

<Note>
  **Heliusの管理されたgRPCサービスをお探しですか？** このページでは、オープンな**Yellowstone gRPC**プロトコルをリファレンスとしてドキュメント化しています。24時間の履歴リプレイ、マルチノードフェイルオーバー、完全に管理された環境を含むプロダクション使用については、HeliusのYellowstone互換gRPC提供である[LaserStream](/ja/laserstream)をご参照ください。
</Note>

## Yellowstone gRPCとは？

Yellowstone gRPCは、Solanaのリーダーに直接アクセスして生成されるシャードを受信することで、**超低レイテンシーのストリーミング**を提供します。これにより、最小限の遅延でアプリケーションにリアルタイムデータを配信します。

<CardGroup cols={2}>
  <Card title="高性能" icon="bolt">
    最大のスループットと最小限の帯域幅使用量のための効率的なシリアル化を備えたバイナリプロトコル
  </Card>

  <Card title="リアルタイムストリーミング" icon="wave-pulse">
    即時のサブスクリプション作成とキャンセルを可能にする双方向ストリーミング
  </Card>

  <Card title="高度なフィルタリング" icon="filter">
    アカウント、トランザクション、プログラムのフィルタを使用して受信するデータを正確に制御
  </Card>

  <Card title="複数のデータタイプ" icon="database">
    アカウント、トランザクション、スロット、ブロック、およびエントリーを単一のストリームで購読
  </Card>
</CardGroup>

## ストリームタイプ

<Tabs>
  <Tab title="アカウント">
    **リアルタイムでアカウントの変化を監視**

    バランスの更新、データの変更、所有権の変更、アカウントの作成/削除のイベントを正確なフィルタリングオプションと共に追跡します。

    <Card title="アカウント監視ガイド" icon="user" href="/ja/grpc/account-monitoring">
      フィルタリング例と共にアカウントの更新をストリームする方法を学ぶ
    </Card>
  </Tab>

  <Tab title="トランザクション">
    **トランザクションデータと実行結果をストリーム**

    トランザクションの署名、実行ステータス、プログラムの相互作用、トークン残高の変化をその場で受信します。

    <Card title="トランザクション監視ガイド" icon="receipt" href="/ja/grpc/transaction-monitoring">
      プログラムフィルタリングと実行詳細を使用してトランザクションを監視
    </Card>
  </Tab>

  <Tab title="スロット＆ブロック">
    **ネットワークの合意形成とブロック生成を追跡**

    スロットの更新、ブロックの作成、および異なるコミットメントレベルにおけるネットワークの状態変化を監視します。

    <Card title="スロット＆ブロック監視ガイド" icon="cube" href="/ja/grpc/slot-and-block-monitoring">
      トランザクション詳細を伴うスロットとブロックをストリーム
    </Card>
  </Tab>

  <Tab title="エントリー">
    **低レベルのブロックチェーンエントリー監視**

    トランザクションバッチとその結果を含む基本的な実行ユニットにアクセスします。

    <Card title="エントリー監視ガイド" icon="code" href="/ja/grpc/entry-monitoring">
      トランザクションバッチを伴うブロックエントリーをストリーム
    </Card>
  </Tab>
</Tabs>

## Yellowstone gRPCへのアクセス方法

ニーズに合ったオプションを選択してください:

### LaserStream

[LaserStream](/ja/laserstream/)は、マルチテナントで高可用性のgRPCサービスで、自動フェイルオーバーと[24時間の履歴リプレイ機能](/ja/laserstream/historical-replay)を備えています。ほとんどのプロダクションアプリケーションに理想的です。

<Tip>
  [Heliusダッシュボード](https://dashboard.helius.dev/laserstream)からLaserStreamを始めましょう。メインネットはビジネスまたはプロフェッショナルプランが必要です。Devnetはデベロッパーとそれ以上で利用可能です。詳細は[プランと価格](/ja/billing/plans)をご覧ください。
</Tip>

### 専用ノード

[専用ノード](/ja/dedicated-nodes/)は、リソース隔離が保証された専用gRPCエンドポイントを提供します。特殊な要求や高度なオペレーターに最適です。

### gRPCオプションを比較

決めかねていますか？[gRPC比較ガイド](/ja/laserstream/laserstream-vs-dedicated-nodes)を読んで、LaserStreamまたは専用ノードがあなたのユースケースに最適かどうかを判断してください。

## クイックスタート

ストリーミングを始める準備はできましたか？

包括的なセットアップガイドを読んで始めるか、ダッシュボードから始めましょう:

<CardGroup>
  <Card title="Yellowstone gRPCクイックスタート" icon="rocket" href="/ja/grpc/quickstart">
    インストール、認証、および最初のストリームの設定をカバー
  </Card>

  <Card title="始める" icon="rocket" href="https://dashboard.helius.dev/laserstream">
    HeliusダッシュボードからLaserStreamを有効にしてストリーミングを開始
  </Card>
</CardGroup>

## サブスクリプションリクエストの構造

すべてのgRPCサブスクリプションには、適切に構造化されたリクエストが必要です。次に構築方法を示します:

### コアパラメータ

<ParamField path="commitment" type="string" required>
  **データの一貫性のためのコミットメントレベル**

  * `processed` - ノードによって処理されたトランザクション
  * `confirmed` - クラスターによって確認されたトランザクション
  * `finalized` - クラスターによって最終化されたトランザクション
</ParamField>

<ParamField path="ping" type="boolean" optional>
  **接続を維持**

  15秒ごとにポンメッセージを受け取るために`true`に設定し、ロードバランサーやプロキシによる接続タイムアウトを防ぎます。
</ParamField>

<ParamField path="accounts_data_slice" type="array" optional>
  **データ転送を最適化**

  アカウントデータから特定のバイト範囲をリクエスト:

  ```json theme={"system"}
  [
    { "offset": 0, "length": 100 },
    { "offset": 200, "length": 50 }
  ]
  ```
</ParamField>

### フィルタ構成

<Accordion title="アカウントフィルタ">
  <ParamField path="account" type="array<string>">
    監視するアカウントの公開鍵の配列（論理OR）
  </ParamField>

  <ParamField path="owner" type="array<string>">
    監視する所有者の公開鍵の配列（論理OR）
  </ParamField>

  <ParamField path="filters" type="array<object>">
    DataSizeおよびMemcmpフィルタ（論理AND）:

    ```json theme={"system"}
    [
      { "dataSize": 165 },
      { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } }
    ]
    ```
  </ParamField>

  <Info>
    複数のフィルタタイプが使用される場合、論理ANDとして機能します。配列内の値は論理ORとして機能します。
  </Info>
</Accordion>

<Accordion title="トランザクションフィルタ">
  <ParamField path="vote" type="boolean">
    投票トランザクションを含める/除外する
  </ParamField>

  <ParamField path="failed" type="boolean">
    失敗したトランザクションを含める/除外する
  </ParamField>

  <ParamField path="signature" type="string">
    特定のトランザクション署名を監視
  </ParamField>

  <ParamField path="account_include" type="array<string>">
    これらのアカウントのいずれかを含むトランザクションを含める（論理OR）
  </ParamField>

  <ParamField path="account_exclude" type="array<string>">
    これらのアカウントを含むトランザクションを除外する
  </ParamField>

  <ParamField path="account_required" type="array<string>">
    これらすべてのアカウントを含むトランザクションを含める（論理AND）
  </ParamField>
</Accordion>

<Accordion title="ブロックフィルタ">
  <ParamField path="account_include" type="array<string>">
    ブロック内のトランザクションとアカウントをフィルタ
  </ParamField>

  <ParamField path="include_transactions" type="boolean">
    ブロック内のすべてのトランザクションを含める
  </ParamField>

  <ParamField path="include_accounts" type="boolean">
    ブロック内のすべてのアカウント更新を含める
  </ParamField>

  <ParamField path="include_entries" type="boolean">
    ブロック内のすべてのエントリーを含める
  </ParamField>
</Accordion>

<Accordion title="スロットフィルタ">
  <ParamField path="filter_by_commitment" type="boolean" default="false">
    `true`の場合、指定されたコミットメントレベルのスロット更新のみを受信します。`false`の場合、すべてのコミットメントレベルの更新を受信します。
  </ParamField>
</Accordion>

***

## 例: 基本的なトランザクション監視

開始するための完全な例です:

```typescript theme={"system"}
import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc";

const client = new Client("your-grpc-endpoint", "your-api-token", {
  "grpc.max_receive_message_length": 64 * 1024 * 1024
});

const stream = await client.subscribe();

// Handle incoming data
stream.on("data", (data) => {
  if (data.transaction) {
    console.log(`Transaction: ${data.transaction.signature}`);
    console.log(`Success: ${!data.transaction.meta?.err}`);
  }
});

// Subscribe to transactions with complete request structure
const subscribeRequest: SubscribeRequest = {
  transactions: {
    client: {
      accountInclude: [
        "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", // Token Program
        "11111111111111111111111111111111"               // System Program
      ],
      accountExclude: [],
      accountRequired: [],
      vote: false,
      failed: false
    }
  },
  commitment: CommitmentLevel.CONFIRMED,
  ping: { id: 1 }
};

stream.write(subscribeRequest);
```

<Note>
  これは基本的な例です。プロダクション使用では、適切なエラー処理、再接続ロジック、データ処理を実装してください。完全な実装については、詳細なガイドをご参照ください。
</Note>

***

## 開始の準備はできましたか？

<CardGroup cols={2}>
  <Card title="完全設定ガイド" icon="rocket" href="/ja/grpc/quickstart">
    インストール、認証、最初のストリームの実装
  </Card>

  <Card title="ストリームポンプAMMデータ" icon="chart-line" href="/ja/grpc/stream-pump-amm-data">
    実際の例: Pump AMMトランザクションを監視
  </Card>
</CardGroup>

## 高度なリソース

* **[Yellowstone gRPCソースリポジトリ](https://github.com/rpcpool/yellowstone-grpc)** - 完全なプロトコル定義と例
* **[Discordコミュニティ](https://discord.com/invite/6GXdee3gBj)** - 開発者やHeliusチームからのサポートを得る
* **[LaserStreamドキュメント](/ja/laserstream/)** - 追加機能を備えた拡張gRPCサービス
