Skip to main content
データを決して見逃しません:LaserStream の履歴リプレイを使用すると、切断から復旧し、過去 48 時間のブロックチェーンアクティビティから欠落したデータをバックフィルできます。

ヒストリカルリプレイとは?

ヒストリカルリプレイは、LaserStreamの機能で、最近のブロックチェーンデータをリプレイする際に、開始ポイントを設定できます。これは、切断を処理し、リアルタイムアプリでデータの連続性を確保するのに役立ちます。

リプレイ可能な期間

どのコミットメントレベルでサブスクライブしているかにかかわらず、最大約 48 時間分の履歴(Solana の現在のスロット時間である約 250ms では約 691,200 スロット。正確なスロット数はネットワークのスロット時間の変化に応じて変動します)をリプレイできます。この期間内の fromSlot を渡すと、LaserStream はその位置から現在までのデータをストリーミングします。 古いリプレイは確定データを返します。 LaserStreamは約過去20分のスロットをメモリに保持しています。それより古いものは、確定されたブロックのみを保持するヒストリカルストアから提供されます。したがって、20分以上前の開始ポイントをリプレイする場合、データは確定済みのチェーンを反映しており、分岐やスロット内のアカウント更新はその範囲では表示されません。最新の20分以内のスロットでは、フォークやスロット内のアカウント更新を含む真のコミットメントセマンティクスを持ちます。
時間枠の制限:履歴リプレイの対象は過去約 48 時間のみです。過去の任意の時点からデータをリプレイすることはできません。

Handle Disconnections

短時間の切断中に失われたデータを復旧します(最大 48 時間)

Bootstrap Applications

過去 48 時間の最新コンテキストを使用してアプリケーションを起動します

Analyze Recent Events

最近のトランザクションとアカウントの変更を確認します

Test with Recent Data

テストと開発に実際の最新データを使用します

リプレイの可用性を確認する

SubscribeReplayInfo を呼び出して、リプレイ可能な最も古いスロットを確認します。 保存したスロットがリプレイ期間外にある場合、欠落した履歴を別途復旧するか、より新しいスロットから再開できます。選択した fromSlot を使用して、新しいサブスクリプションを開始してください。可用性はリクエスト間で変わる可能性があります。

仕組み

1

Specify Starting Point

fromSlot パラメータを使用して、リプレイの開始位置を設定します(過去約 48 時間以内、現在のネットワーク速度では約 691,200 スロットである必要があります)
2

Stream Historical Data

LaserStream は、指定したスロット以降のすべてのイベントを配信します
3

Catch Up to Real-Time

現在のスロットに追いつくまで履歴データをストリーミングします
4

Continue Live Streaming

リアルタイムのデータストリーミングへシームレスに移行します
自動再接続:LaserStream SDK は、再接続とリプレイを自動的に処理します。追加のコードは必要ありません。
リプレイでは matchMints トランザクションフィルターフラグが適用されるため、ミントでフィルタリングされたリプレイでは、ライブストリームで配信されるものと同じトランザクションセットが返されます。

クイックスタート

Helius Dashboard から LaserStream を開始できます。Mainnet には Business または Professional プランが必要です。Devnet は Developer 以上のプランで利用できます。詳しくは、プランと料金をご覧ください。

設定オプション

number
必須
u64 として指定する、リプレイを開始するスロット番号です。どのコミットメントレベルでも、リプレイ期間内(現在のスロットから過去約 48 時間、現在のネットワーク速度では約 691,200 スロット)である必要があります。例:currentSlot - 1000重要:期間より古いスロットを渡すと、LaserStream は Operation was attempted past the valid range でリクエストを拒否します。

ユースケース

短時間(48 時間未満)の切断後にアプリケーションが再接続するとき、履歴リプレイを使用すればデータの欠落を防げます。getCurrentSlot は Helius RPC を呼び出します。以下では lastProcessedSlot をメモリに保持していますが、アプリケーションに適した方法(Redis、Postgres、ファイルなど)で永続化してください。
直近数分間の最新コンテキストを使用してアプリケーションを起動します。
最新の履歴データをテストに使用します(過去 48 時間に限定)。

次のステップ

LaserStream gRPC

gRPC ストリーミングの機能と特長について詳しく説明します

Get Started

Helius Dashboard から LaserStream を有効にして、ストリーミングを開始します。

SDK Documentation

SDK の完全なドキュメントを確認します

Contact Support

実装に関するサポートを受けます