> ## 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.

# 配信保証

> LaserStreamの配信保証を理解する：1回だけの配信、メッセージの順序付け、スロット通知の動作、フォーク処理。

LaserStreamはGeyserノードとまったく同じ配信保証を提供します。このガイドでは、LaserStreamストリームのメッセージ配信の動作について何を期待できるかを説明します。

<Info>
  これらの保証は**標準サブスクリプション**（トランザクション、アカウント、スロット、ブロック）に適用されます。[事前処理されたトランザクション](/ja/shred-delivery/preprocessed-transactions)（シュレッド配信の一部）は、別のベストエフォート配信保証の下で動作します。
</Info>

## 1回だけの配信

LaserStreamは**1回だけの配信**を保証します。各メッセージはストリームに1度だけ配信され、重複したメッセージを受け取ったり、メッセージがスキップされることはありません。

LaserStreamは複数のSolanaノードに同時に接続し、ストリームに転送する前に受信データを重複排除することでこれを実現します。このマルチノードアーキテクチャにより、単一障害点が排除され、最大の稼働時間が確保され、配信の正確性が損なわれることはありません。

## 認識レベルによるメッセージ順序付け

配信の順序付けはメッセージの認識レベルに依存します。

### 確認済みと最終化済み

すべての**確認済み**および**最終化済み**メッセージは順序通りに配信されます。これらの認識レベルにより、オンチェーン状態の一貫した連続的なビューを提供します。

### 処理済み

すべての**処理済み**メッセージは、フォークがない限りスロットの昇順で送信されます。フォークが発生した場合、ネットワークが正史チェーンに再編成されるため、スロット順序が一時的に逸脱することがあります。フォークが解決されると、昇順が再開されます。

<Warning>
  処理済みの認識レベルでは、処理されたスロットが後にスキップされたりフォークされたりする可能性がわずかにあります。Geyserはフォークによって取り消された更新に対して明示的なロールバック通知を送信しません。アプリケーションが処理レベルのデータを消費する場合、いくつかの更新が最終的に放棄されたスロットに属している可能性があることを考慮する必要があります。確実性を必要とするアプリケーションには、**確認済み**または**最終化済み**の認識レベルを使用してください。
</Warning>

## スロット内の順序付け

単一スロット内では、LaserStreamはアカウントの更新とトランザクションを次の保証とともに配信します。

### アカウント更新がトランザクションより先

各トランザクションについて、それが引き起こすアカウント更新はトランザクション自体よりも**先に**配信されます。

```
<accounts updated by tx X> → <tx X> → <accounts updated by tx Y> → <tx Y>
```

### トランザクション間の順序付け

LaserStreamは[AgaveのGeyserプラグイン](https://docs.solanalabs.com/validator/geyser#ordering-guarantees)と同じ順序を維持します。異なるトランザクションからの更新が決定論的な順序で到着するかどうかは、その**書き込みロック**に依存します。

* **同じ書き込みロック**（例：同じRaydiumプールでの3つの取引）：常に決定的です。Agaveがこれらを同じアカウントに書き込むため逐次実行します。
* **異なる書き込みロック**（例：2つの無関係なトランザクション）：必ずしも決定的ではありません。Agaveはこれらを並行して実行でき、その更新がストリーム内で混ざる可能性があります。

**ブロック/トランザクションインデックス**をトランザクションデータから使用して、書き込みロックに関係なく、完全に決定論的な順序を再構築します。

### 書き込みバージョンの正規化

LaserStreamはそのマルチノードアーキテクチャ全体で書き込みバージョンを正規化します。生のGeyserやYellowstoneとは異なり、書き込みバージョンは各ノードでローカルで異なることがありますが、LaserStreamは、処理レベルのアカウント更新の順序付けに信頼できる一貫した書き込みバージョンを提供します。

<Note>
  **一時的な例外:** 512KBを超えるアカウントはパフォーマンス上の理由からGeyserプラグインで現在バッファリングされており、それらのアカウントに対する決定的な順序付けに影響を与える可能性があります。この制限はすぐに削除される予定です。
</Note>

## スロット通知

**処理済みスロット通知**は、そのスロットに対するすべてのメッセージが配信された後に到着します。つまり、処理済みスロット通知を受け取った場合、そのスロットに関連するすべてのトランザクションおよびアカウント更新データがすでにストリームに送信されていることを確認できます。スロット通知を、スロットデータをフラッシュまたはリリースするためのシグナルとして使用できます。

## 切断時のデータの継続性

LaserStreamは最近のスロットデータのバッファを維持し、過去**24時間**（約216,000スロット）のデータを[履歴再生](/ja/laserstream/historical-replay)できます。アプリケーションが切断した場合、再接続して最後に処理されたスロットからデータを逃すことなく再開できます。

[LaserStream SDKクライアント](/ja/laserstream/clients)を使用する場合、このリカバリは自動的に処理されます。クライアントはスロット番号によってストリーミング位置を追跡し、シームレスに再接続します。手動の再接続ロジックは不要です。

## 認識レベルの参照

| レベル       | 説明                                    | レイテンシー  | 順序付け                    | 戻すリスク                   |
| --------- | ------------------------------------- | ------- | ----------------------- | ----------------------- |
| **処理済み**  | ノードが知っている最新のブロックに含まれる；クラスタ全体の投票なし     | 約400ms  | 昇順スロット順（フォーク中に破れる可能性あり） | スロットがスキップまたはフォークされる可能性小 |
| **確認済み**  | ステークの過半数（≥66%）がブロックに投票（楽観的確認）         | 数秒      | 厳密に順序付け                 | 無視可能                    |
| **最終化済み** | 確認済みかつ31以上の追加確認済みブロックが上に構築（32票ロックアウト） | 約12-15秒 | 厳密に順序付け                 | 事実上不可逆                  |
