> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# getBlockHeight の使用方法

> getBlockHeight の使用例、コードサンプル、リクエストパラメータ、応答構造、およびヒントを学びます。

[`getBlockHeight`](https://www.helius.dev/docs/api-reference/rpc/http/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 の例:**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": 275123456, // Example block height
  "id": 1
}
```

この値は、ジェネシスブロック（スロット 0）からチェーンの現在の先端までの最も長いチェーン上のブロックの数を表します。

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

Helius Devnet RPC から現在のブロック高さを取得してみましょう。

**注:** 下の例では、実際の Helius API キーを `YOUR_API_KEY` に置き換えてください。

<CodeGroup>
  ```bash curl theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY -X POST -H "Content-Type: application/json" -d \
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBlockHeight",
    "params": [] 
  }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getCurrentBlockHeight() {
    const rpcUrl = 'https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY'; // Replace YOUR_API_KEY
    const connection = new Connection(rpcUrl, 'confirmed');

    try {
      const blockHeight = await connection.getBlockHeight();
      console.log(`Current Block Height: ${blockHeight}`);

    } catch (error) {
      console.error('Error fetching block height:', error);
    }
  }

  getCurrentBlockHeight();
  ```

  ```typescript Kit theme={"system"}
  import { createSolanaRpc } from "@solana/kit";

  const rpc_url = "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY";
  const rpc = createSolanaRpc(rpc_url);

  let blockHeight = await rpc.getBlockHeight().send();

  console.log("block height:", blockHeight);
  ```

  ```rust Rust theme={"system"}
  use anyhow::Result;
  use solana_client::nonblocking::rpc_client::RpcClient;
  use solana_sdk::commitment_config::CommitmentConfig;

  #[tokio::main]
  async fn main() -> Result<()> {
      let client = RpcClient::new_with_commitment(
          String::from("https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY"),
          CommitmentConfig::confirmed(),
      );

      let block_height = client.get_block_height().await?;

      println!("Block height: {:#?}", block_height);

      Ok(())
  }
  ```
</CodeGroup>
