メインコンテンツへスキップ
このgetBlocks RPCメソッドを使用すると、指定した開始スロットとオプションの終了スロットの間の確認済みブロックスロット番号のリストを取得できます。これは、特定の範囲内でどのブロックが確認されたかを、各ブロックの完全な内容を取得せずに知る必要がある場合に便利です。
パフォーマンス向上のためバッチ処理を避けるアーカイブ方法のバッチ処理は待ち時間を大幅に増加させます。10以上のリクエストを超えるバッチは許可されていません。

一般的な使用例

  • 範囲内の確認済みブロックの識別: 原簿の2つのポイント間で正常に確認されたすべてのブロックスロットのリストをすばやく取得します。
  • ブロックの反復処理: 必要に応じてgetBlockを使用して各ブロックの詳細情報を取得するために、返されたスロットのリストを使用します。
  • 基本的なブロック監査: 特定の範囲内でのブロックの存在を確認します。

リクエストパラメータ

getBlocksメソッドは次のパラメータを取ります:
  1. start_slot (u64, 必須): 範囲の最初に考慮するスロット(包含)。
  2. end_slot (u64, オプション): 範囲の最後に考慮するスロット(包含)。
    • 指定されていない場合、クエリはstart_slotから最新の確認済みスロットまでのブロックを返します。
    • start_slotend_slot(またはend_slotが省略された場合は最新スロット)の間の範囲は500,000スロットを超えてはいけません
  3. commitment (文字列, オプション): クエリのコミットメントレベルを指定します。省略された場合、ノードのデフォルトコミットメントが使用されます。これは最後のパラメータとして設定オブジェクトの唯一のフィールドとして渡されます。

レスポンス構造

JSON-RPCレスポンスのresultフィールドは、u64整数の配列になります。配列内の各整数は、指定した範囲内の確認済みブロックスロット番号を表します。
  • 例: [5, 6, 7, 8, 9, 10]

1. 特定のスロット範囲内のブロックを取得する

この例では、スロット250000000250000010の間の確認済みブロックスロットのリストを取得します。

2. 開始スロットから最新の確認済みスロットまでのブロックを取得する

この例では、開始スロット260000000からノードによって確認された最新ブロックまでの確認済みブロックスロットを取得します(開始スロットからの500,000スロット範囲制限を尊重します)。

3. 特定のコミットメントレベルでのブロックを取得する

この例では、confirmedコミットメントレベルを使用してブロックを取得します。

開発者へのヒント

  • 範囲制限: 500,000スロットの範囲制限を覚えておいてください。より大きな範囲を要求するとエラーが発生します。
  • ノードデータの利用可能性: ノードはすべての過去のスロット情報を保持しているわけではありません。非常に古いstart_slot値は、ノードの設定と台帳保持によっては、空の配列やエラーを返すことがあります。
  • ブロックの確認: このメソッドは確認済みブロックを返します。選択したcommitmentレベルとクエリを実行するノードに応じて、特に非常に最近のスロットの場合、返されるブロックの集合にわずかな違いが生じることがあります。
  • getBlockへの補完: getBlocksは通常、関連するブロックスロットを識別するための最初のステップとして使用され、その後、リスト内の個々のブロックの詳細を取得するためにgetBlockが使用されます。
  • ページネーションの代替: getBlocksに範囲制限があるため、チェーンの非常に大きな部分をスキャンする必要がある場合は、500,000スロット以下のセグメントに分割して、複数回のgetBlocks呼び出しを行う必要があります。
このガイドは、Solanaネットワークで確認済みブロックスロットをリストするためのgetBlocks RPCメソッドの使用方法を明確に概説しています。

関連メソッド

getBlock

特定のブロックの詳細情報を取得します

getBlocksWithLimit

スロットから始まる固定数のブロックを取得します