メインコンテンツへスキップ
getBlockHeight RPC メソッドは、Solana ノードの現在のブロック高さを問い合わせる簡単な方法です。ブロック高さは、ジェネシスブロック(スロット 0)から処理されたブロックの数を表します。 このメソッドは、チェーンがどれだけ進行したかを迅速に理解するため、または特定のコミットメントレベルでの最新のブロック高さを参照するために便利です。

一般的な使用例

  • チェーンの進行状況の監視: このメソッドを定期的に呼び出してチェーンの進行状況を確認します。
  • チェーン長のスナップショット取得: コミットメントに基づいて、ある時点までに処理されたブロックの総数を決定します。
  • 他のデータとのクロスリファレンス: ブロック高さを基準にして他のオンチェーンデータやイベントを分析します。

パラメータ

getBlockHeight は、オプションで構成オブジェクトを最初のパラメータとして取ることができ(デフォルトを使用するためにパラメータを指定しないで呼び出すことも可能):
  1. config (object, optional): 次のフィールドを持つ構成オブジェクト:
    • commitment (string, optional): クエリで使用するコミットメントレベルを指定します。デフォルトは finalized です。
      • finalized: ノードは、クラスターのスーパーマジョリティによって最大ロックアウトに達したと確認された最新のブロックをクエリします。
      • confirmed: ノードは、クラスターのスーパーマジョリティによって投票された最新のブロックをクエリします。
      • processed: ノードは、最新のブロックをクエリします。ブロックが完全でない場合があることに注意してください。
    • minContextSlot (number, optional): リクエストを評価できる最小スロットです。これにより、返されるブロック高さが minContextSlot 以上のスロットからのものであることが保証されます。
パラメータが提供されない場合、メソッドは通常 finalized コミットメントをデフォルトとして使用します。

開発者向けのヒント

  • コミットメントレベルが重要: 返されるブロック高さは、指定された commitment レベルに基づいて変わる可能性があります。finalized は最も安定した高さを提供し、processed はより現在のものの、一時的である可能性のある高さを提供します。
  • minContextSlot の一貫性のために: 特定のスロットを追跡している場合、その状態から少なくとも最新のブロック高さをクエリする必要がある場合は、minContextSlot を使用します。
  • スロット番号ではありません: ブロック高さはスロット番号とは異なります。スロットは時間の単位であり、すべてのスロットがブロックを生成するわけではありません(これらはスキップされたスロットと呼ばれます)。ブロック高さは生成された実際のブロックの数です。
  • 基本的なチェーンヘルスチェック: シンプルですが、getBlockHeight は、アプリケーションや監視システムの基本的なチェーンヘルスや同期チェックの一部として使用できます。

応答

JSON-RPC 応答の result フィールドは、単一の数値になります:
  • blockHeight (number): 指定されたコミットメントレベルに従ったノードの現在のブロック高さ (u64)。
応答 JSON の例:
この値は、ジェネシスブロック(スロット 0)からチェーンの現在の先端までの最も長いチェーン上のブロックの数を表します。

例: 現在のブロック高さを取得

Helius Devnet RPC から現在のブロック高さを取得してみましょう。 注: 下の例では、実際の Helius API キーを YOUR_API_KEY に置き換えてください。