Skip to main content

概要

前処理済みトランザクションは、processedコミットメントレベルに到達する前に提供されるプレ実行Solanaトランザクションです。Heliusは、主にバリデーターに到着した時点で直接デコードされたシュレッドと、スケジュールされたトランザクション(プレコンファメーション)シグナルによって補完された複数のプレ実行ソースを集約し、単一の重複排除されたストリームとして配信します。生のシュレッドパケットを受け取る必要もデシュレッドするインフラを操作する必要もありません。 プレコンファメーションシグナルからソースされたトランザクションは、このフィード上では専用のプレコンファメーション製品よりも遅く到着しますが、これはそれらへの最も早いアクセスを維持します。 前処理済みトランザクションを消費する主な方法は、preprocessedSubscribe WebSocketメソッド(パブリックベータ)です — すべての有料プランで利用可能で、メッセージごとに0.1クレジットです。以前のgRPCデリバリーはこれに代わって廃止されます。

preprocessedSubscribe (WSS)

推奨される前処理済みトランザクションのストリーミング方法:アカウントフィルタリング、コンパクトなバイナリペイロード、すべての有料プラン。

gRPC(レガシー)

以前のLaserStreamベースのデリバリー。廃止予定 — 新しい統合にはWebSocketメソッドを使用してください。

前処理済みトランザクションのライフサイクルにおける位置

Solanaのアーキテクチャでは、トランザクションは完全に処理される前にいくつかのステージを経ます:
  1. シュレッド受信 → バリデーターがトランザクションシュレッド(データフラグメント)を受信。← **生シュレッズ(UDP)**がここで配信されます。
  2. シュレッドデコード → シュレッドが生のトランザクションにデコードされます。← 前処理済みトランザクションは主にここで配信されます。
  3. トランザクション実行 → ランタイムによってトランザクションが実行されます。
  4. メタデータ生成 → プレ/ポスト残高、ログ、エラー情報が計算されます。
  5. コミットメント → トランザクションが処理済み/確認済み/完了状態に到達。← **LaserStream gRPCおよびLaserStream WebSocket**がここで配信されます。
ポスト実行サブスクリプションはステージ5でデータを配信します — 完全な実行とメタデータ生成の後です。前処理済みトランザクションは、シュレッドデコード後、実行が完了する前にステージ2タイミングで配信されます。さらに早いシグナルについては、プレコンファメーションはシュレッドになる前にスケジュールされたトランザクションをストリーミングします。 トレードオフ: トランザクションデータを早く受け取れますが、残高変動、ログ、エラー情報などの実行メタデータは含まれていません。
これはトランザクションのみのストリームです。 アカウントおよびプログラム状態の更新は、ランタイムがトランザクションを実行するまで存在しません。リアルタイムのアカウントまたはプログラム更新が必要な場合 — トークン残高、ボンディングカーブ状態、プログラムアカウント — LaserStream gRPCprocessedコミットメントを使用してください。

どんなデータが利用可能か?

前処理済みトランザクションには完全な署名済みトランザクションが含まれていますが、実行メタデータは欠けています:

利用可能なデータ

  • トランザクション署名 - 一意のトランザクション識別子
  • アカウントキー - トランザクションが参照するすべてのアカウント
  • 命令 - 完全な命令データとプログラムコール
  • 最近のブロックハッシュ - トランザクションの有効期限参照
  • 署名 - すべてのトランザクション署名
  • スロット番号 - トランザクションが観測されたスロット

欠けているデータ

  • トランザクションメタデータ - トークン残高変動、プレ/ポスト残高、トランザクションステータス
  • トランザクションエラー - トランザクションが失敗したかどうかは判定できません
  • 内部命令 - クロスプログラム呼び出し(CPI)は含まれていません
  • ログメッセージ - プログラムログは実行中に生成されます
  • 消費された計算ユニット - 実行メトリックは利用できません
前処理済みトランザクションは「提案」を受け取ることに例えられますが、「結果」は受け取りません。送信者が何をしようとしていたのかは確認できますが、実際に何が起こったのかは確認できません。

デリバリー保証

デリバリーはベストエフォートであり、保証されず、履歴の再生はありません。ストリーミングされたトランザクションはプレ実行シグナルであり、コミットメントレベルではありません — 失敗する可能性、ドロップされる可能性、異なるフォークに着陸する可能性があります。署名で重複を排除し、実行結果が重要な場合は処理済みまたは確認済みストリームに対して調整してください。 保証されたデリバリーと完全なデータが必要な重要なアプリケーションには、LaserStream gRPCを使用してください。

前処理済みトランザクションを使用するタイミング

シュレッドデコーダーを操作せずにデコードされたプレ実行トランザクションを求めるレイテンシーセンシティブなアプリケーション:
  • propAMMs
  • スナイパー
  • コピー取引
  • 清算ボット
  • 裁定取引
マイクロ秒単位で重要な場合でライン速度でデシュレッディングできる場合は、生シュレッズ(UDP)を使用してください。最も早いシグナルが必要な場合は、プレコンファメーションを使用してください。

価格設定

preprocessedSubscribeすべての有料プランで利用可能であり、メッセージごとに0.1クレジットで課金されます — 配信されたトランザクションごとに1メッセージ。レガシーのgRPCデリバリーはプロフェッショナルプランの加入者に対して、非圧縮ストリームデータ0.1MBあたり2クレジットで利用できます。詳細についてはクレジットを参照してください。

FAQ

いいえ、フィルターは最初のpreprocessedSubscribeによって固定されています。ギャップを避けるために、新しいフィルターで2番目の接続を開き、そのサブスクリプション確認を待ってからサービスを新しいフィルターに切り替えることをお勧めします。
10の同時接続の制限はHeliusプロジェクトごとに適用されます。同じプロジェクトに対して2つ目のAPIキーを作成すると、同じ10接続制限を共有します。

次のステップ

preprocessedSubscribeでサブスクライブ

エンドポイント、アカウントフィルタリング、バイナリペイロードレイアウト、そしてコード例。

プレコンファーメーション

シュレッドになる前にストリーミングされるスケジュールトランザクション — 最も早いトランザクションシグナル。

生シュレッズ(UDP)

UDP経由での未処理シュレッドパケット。あなたがデシュレッディングを実装します。

Helius Sender

見たものに基づいて最速でトランザクションが着陸します。