> ## 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에서 현재 블록 높이를 가져옵니다.

**참고:** 아래의 예제에서 `YOUR_API_KEY`를 실제 Helius API 키로 교체하세요.

<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>
