preconfSubscribeとは何ですか?
preconfSubscribe は、取引がシュレッドされる前のスケジュール取引段階で配信される Preconfirmations をストリームする Helius WebSocket メソッドです。これは Helius が提供する最も低遅延の取引信号です。アクセスには Professional plan or higher が必要です — Pricing を参照してください。
ストリームは連続的ではありません。Heliusに転送されるステークの共有に応じてカバレッジがスケールするため、メッセージのないスロットが存在します—これをうまく処理してください。カバレッジを参照してください。
preconfSubscribeは、wss://beta.helius-rpc.comから提供されます—スケジュールされたトランザクションのソースであるHelius Gatekeeperエンドポイント—ではなく、mainnet.helius-rpc.comです。クエリパラメーターとしてAPIキーで認証してください。
beta ホスト名は、Gatekeeper の導入を指します。
Preconfirmations の成熟度ではありません。Preconfirmations は最初に Gatekeeper エンドポイントで開始されます。Helius がトラフィックを Gatekeeper に移行するにつれて、標準エンドポイントになります。購読
preconfSubscribeメソッドを使用してJSON-RPCリクエストを送信します。サーバーは購読IDとともに応答し、スケジュールされたトランザクションごとに通知をストリームします。オプションのフィルターを最初のparams要素として渡すことで、マッチするトランザクションのみを受け取ることができます。paramsを省略すると、フルストリームを受け取ります。
購読応答
resultを保存します—これは購読解除に使用する購読IDです。この確認後、通知はバイナリフレームとしてストリームされます(以下参照)。
フィルタリング
デフォルトでは、preconfSubscribeはすべてのスケジュールされたトランザクションをストリームします。ストリームを絞り込むには、フィルターオブジェクトをparamsの最初の要素として渡します。フィルタリングはサーバー側で行われるため、必要なトランザクションのみを受け取り、支払いもその分のみに対して行われます。
paramsがない場合)はすべてのトランザクションにマッチします。
フィルタールール:
- すべての述語は合わせて評価され、順序は
regionInclude→accountExclude→accountRequired→accountIncludeです。 - アカウントはbase58でエンコードされた公開鍵です。無効な値の場合、JSON-RPC エラー
-32602(無効なパラメータ) が返されます。 - 各アカウントリストは 500 件に制限されます。
アドレスルックアップテーブル (ALT) 解決
アカウントフィルターは、トランザクションの静的なアカウントキー以上に一致します — Helius はサーバーサイドで v0 address lookup tables を解決するため、accountInclude、accountExclude、および accountRequired も ALT を通じてトランザクションがロードするアカウントと一致します。
これにより、ルックアップテーブルの背後にしか存在しない場合でも、トランザクションが触れる任意のアカウントでフィルタリングできるようになります — ALT マッピングを維持したり、テーブルを自分で解決したりする必要はありません。アカウントの公開鍵を渡すだけで、Helius がフィルター適用前に解決します。
ロケーションフィルタリング
特定の Helius 地域からの取引のみを受信するには、regionInclude を使用します。一つ以上の地域コードを渡します; 取引の発信地域がそれらのどれかと一致すると通過します。
regionInclude が設定されていると、地域情報を持たない取引は破棄されます。認識されない地域コードの場合、JSON-RPC エラー -32602 (無効なパラメータ) が返されます。通知ペイロード
通知は バイナリ の WebSocket フレームとして配信されます (JSON ではありません)。各フレームは単一のスケジュールされた取引を運ぶパックされたバイトレイアウトです:
フィールドを順に読み、次に残りのバイトを
bincode-デシリアライズして、命令、アカウント、および署名を読み取ります。
Preconfirmation は初期の信号であり、保証ではありません。取引はまだオンチェインに届いておらず、失敗したり破棄されたりする可能性があります。最終的とみなす前に標準のコミットメントチェックで到着を確認してください。
例
購読解除
通知の受信を停止するには、preconfSubscribe から返されるサブスクリプション ID を使用して preconfUnsubscribe を呼び出します。
価格
Preconfirmations には Professional plan or higher が必要で、10 クレジット/メッセージ かかります — ストリームされたトランザクションごとに 1 メッセージ — プランから請求されます。詳細は Credits を参照してください。Preconfirmations は新しい製品であり、価格は変更される可能性があります。
関連
Preconfirmations Overview
Preconfirmationとは何か、検証パイプラインのどこに位置するか。
transactionSubscribe
豊富なフィルタリングで確認済みコミットメントトランザクションをストリーミングする。
preconfSubscribe API reference
リクエストパラメーター、フィルターフィールド、およびバイナリ通知レイアウト。