includeBam: falseを設定してHeliusプレコンファメーションのみを受け取ります。
Endpoints
preconfSubscribe is served from the Helius Gatekeeper endpoint:
wss://beta.helius-rpc.com/?api-key=<API_KEY>
beta hostname refers to the Gatekeeper rollout, not the maturity of Preconfirmations — it will become the standard endpoint as traffic migrates to Gatekeeper.
ストリームは連続していません。HeliusまたはBAMを実行するネットワークステークのシェアに応じてカバレッジがスケールするため、メッセージのないスロットが発生することを予測し、これらのギャップを優雅に処理します。詳細はCoverageをご覧ください。
Authorizations
string
必須
Your Helius API key, passed as the
api-key query parameter. Requires a Professional plan or higher.Body
array
オプションです。
paramsを省略すると、HeliusとBAMからのすべてのスケジュールされたトランザクションを受け取ります。ストリームを狭めるために、最初の要素としてフィルターオブジェクトを渡します—フィルタリングはサーバー側で行われるため、関心のあるトランザクションのみを受け取り、支払うだけです。-32602(無効なパラメータ)を返します。
アカウントフィルターは、トランザクションの静的なアカウントキー以上のものに一致します — Heliusはサーバー側でv0 アドレスルックアップ表を解決し、accountInclude、accountExclude、およびaccountRequiredもトランザクションがALTを通じてロードするアカウントに一致します。
地域コード
Heliusプレコンファメーションの場合、地域はHeliusがトランザクションを取り込んだ場所です。BAMプレコンファメーションの場合、それはプレコンファメーションを発行した地域のBAMエンドポイントであり、Heliusがそれを取り込んだ場所ではありません。BAMのシンガポールおよびダラスのエンドポイントは
sgpおよびdalにマップされます。
レスポンス
integer
購読ID(購読解除に必要)
通知
JSONの受理通知後、通知はバイナリのWebSocketフレームとして配信されます(JSONではありません)。HeliusとBAMプレコンファメーションは同じレイアウトを共有しています。各フレームは1つのスケジュールされたトランザクションを運ぶパックされたバイトレイアウトです。
ペイロードにソースフィールドはありません。Heliusプレコンファメーションも同じ値を持つことができるため、
tx_index = 0およびstatus = 2からBAMの起源を推測しないでください。
実行ステータスを持っているのはHeliusプレコンファメーションのみです。 Helius
プレコンファメーションはバリデーターが提供する場合に
0(失敗)や1(成功)を報告し、利用
できない場合にのみ2を報告します。BAMプレコンファメーションは常に
2(不明)を報告するため、statusだけでBAM由来の
トランザクションが成功したかどうかを判断することはできません。実行ステータスに依存する戦略を立てる場合は、
includeBam: falseを設定するか、オンチェーンで結果を確認してください。トランザクションのデコード
トランザクションのバイトは、バリデーターがシリアライズしたとおりに正確に転送され、トランザクションのバージョンに対する標準のワイヤーエンコーディングでエンコードされています。レガシーおよびv0のトランザクションはbincodeが生成するシグネチャ優先レイアウトを使用します。トランザクションv1(SIMD-0385)はメッセージ優先レイアウトで、シグネチャは末尾に置かれ、bincodeはv1ペイロードに対しては機能しません。
すべてのバージョンに対応するデコーダを使用してください。Rustでは、agave-transaction-viewはレガシー、v0、およびv1トランザクションをその場でパースし、推奨オプションです; wincodeは現在のSolana SDK VersionedTransactionでも機能します。JavaScriptでは、必ずライブラリバージョンがトランザクションv1をサポートしていることを確認してください。Rustの例はガイドをご覧ください。
重複通知
HeliusとBAMプレコンファメーションはソースごとに重複排除され、ソース全体ではありません。少量のトランザクションが両方の経路でHeliusに届くことがあるため、同じシグネチャを2回受け取ることができ、2つのコピーが異なるスロットを報告する可能性があります。クライアントでシグネチャによる重複排除を行い、トランザクションをトリガーとしてアクションを冪等にしてください。詳細はガイドをご覧ください。価格
プレコンファメーションはプロフェッショナルプラン以上が必要で、1メッセージにつき10クレジットかかります—1メッセージはストリームされたトランザクションごとです。詳細はクレジットをご覧ください。 請求はユニークなシグネチャごとではなく、メッセージごとに行われます。HeliusとBAMの両方から配信されたトランザクションは2回カウントされます。includeBam: falseを設定すれば、Heliusプレコンファメーションのみを受け取ることができます。
関連
プレコンファメーション概要
プレコンファメーションとは何か、およびバリデーターパイプラインのどこに位置するかを説明します。
preconfUnsubscribe
idで購読を停止します。