Skip to main content

概要

前処理済みトランザクションは、processed コミットメントレベルに達する前に配信されるSolanaトランザクションです。Heliusは、主にバリデーターに届いた際にデコードされるシュレッドとpreconfirmationシグナルを補完して、複数の前処理ソースを集約し、重複のない単一のストリームとして配信します。これにより、受信する未加工のシュレッドパケットやデシュレッドインフラストラクチャを操作する必要がありません。 プレコンファメーションシグナルからソースされたトランザクションは、このフィード上では専用のプレコンファメーション製品よりも遅く到着しますが、これはそれらへの最も早いアクセスを維持します。 事前処理されたトランザクションを消費する方法は、preprocessedSubscribe WebSocketメソッド(パブリックベータ)です。これは、すべての有料プランで使用可能で、メッセージごとに0.1クレジットです。

preprocessedSubscribe (WSS)

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

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

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

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

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

利用可能なデータ

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

欠けているデータ

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

デリバリー保証

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

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

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

価格設定

preprocessedSubscribeは、すべての有料プランで利用可能で、メッセージごとに0.1クレジットです。配信されたトランザクションごとに1つのメッセージがカウントされます。詳細はクレジットをご参照ください。

FAQ

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

次のステップ

preprocessedSubscribeで購読

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

Preconfirmations

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

Raw Shreds (UDP)

UDP経由の未処理シュレッドパケット。デシュレッドを実装します。

Helius Sender

最速のトランザクション着地で見たものに対処します。