メインコンテンツへスキップ
getBlocksWithLimit RPCメソッドは、指定されたスロットから開始して、指定された制限までの確認済みのブロックスロット番号のリストを取得できます。これは、台帳の特定のポイントから特定の数の後続の確認済みブロックを必要とする場合に役立ちます。
パフォーマンス向上のためのバッチ処理の回避アーカイブメソッドのバッチ処理は待機時間を大幅に増加させます。10件を超えるリクエストのバッチは許可されていません。

一般的な使用例

  • 固定数の後続ブロックの取得: 特定の開始スロットの後で確認されたブロックスロットを定義された数だけ取得します。
  • ページネーションされたブロックの探索: ブロックチェーンのセグメントを分析するときにブロックをチャンクで取得します。
  • 最近のブロックの監視: 既知の最近のスロットから最後のNブロックを取得します。

リクエストパラメータ

getBlocksWithLimitメソッドは以下のパラメータを取ります:
  1. start_slot (u64, 必須): 考慮する最初のスロット(含む)。
  2. limit (u64, 必須): 返す最大ブロックスロット数。クエリされるスロットの合計数(start_slotからそれ以降のlimitブロックまで)は500,000スロットを超えてはなりません
  3. commitment (string, 任意): クエリのコミットメントレベルを指定します。省略された場合、ノードのデフォルトコミットメントが使用されます。これは、構成オブジェクトの唯一のフィールドとして最後のパラメータで渡されます。

レスポンス構造

JSON-RPCレスポンスのresultフィールドは、u64整数の配列となります。配列内の各整数は、start_slotから指定されたlimitまでの確認済みブロックスロット番号を表します。
  • 例: start_slotが5でlimitが3の場合、可能な結果は[5, 6, 7]です。

1. 開始スロットからの限定数のブロックを取得

この例では、スロット280000000から開始して最大5つの確認済みブロックスロットのリストを取得します。

2. 特定のコミットメントレベルでの限定ブロックの取得

この例では、コミットメントレベルconfirmedを使用してスロット290000000から開始して最大3つのブロックを取得します。

開発者のヒント

  • 範囲の明確化: limitパラメータは返すブロックスロットの最大数を決定します。500,000スロットの制約は、概念的にスキャンされる範囲(つまり、start_slotからstart_slot + limit - 1まで)に適用されます。この概念的な範囲が500,000スロットを超えないようにし、さらに実際のブロックが見つかりその範囲内で返される場合でも、少ないブロックになります。
  • ノードデータの可用性: ノードはすべての履歴スロットの情報を保持していない可能性があります。非常に古いstart_slotは、指定されたlimitより少ないブロックを返すか、ノードの台帳保持に応じて空の配列を返すことがあります。
  • ブロックの確認: このメソッドは確認済みブロックを返します。選択したcommitmentレベルとクエリするノードによって、非常に最近のスロットで特に、ブロックの正確なセットがわずかに異なる場合があります。
  • ユースケースの特定: getBlocksWithLimitは、開始点がわかっていて一定数の後続ブロックが必要な場合に最適です。既知のスロット範囲内のすべてのブロックが必要な場合、getBlocksはより適切かもしれません。
このガイドは、Solanaネットワーク上で特定の数の確認済みブロックスロットを一覧表示するためにgetBlocksWithLimit RPCメソッドを使用する方法を明確に概説します。

関連メソッド

getBlocks

スロット範囲内のすべてのブロックを取得します

getBlock

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