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

# getFirstAvailableBlock 사용 방법

> getFirstAvailableBlock 사용 사례, 코드 예제, 요청 매개변수, 응답 구조 및 팁을 학습합니다.

[`getFirstAvailableBlock`](https://www.helius.dev/docs/api-reference/rpc/http/getfirstavailableblock) RPC 메서드는 쿼리된 노드에서 원장에 의해 아직 삭제되지 않은 가장 오래된 확인된 블록의 슬롯 번호를 반환합니다. 이는 특정 노드가 현재 저장하고 있는 역사적 데이터 범위를 이해하는 데 유용합니다.

## 일반 사용 사례

* **역사적 데이터 쿼리:** 특정 노드에서 역사적 블록 또는 트랜잭션 데이터를 쿼리할 수 있는 시작점을 결정합니다.
* **노드 동기화 확인:** 직접적인 동기화 측정 수단은 아니지만, 다른 노드에 비해 노드가 얼마나 많은 역사적 데이터를 유지하고 있는지에 대한 아이디어를 얻을 수 있습니다.
* **원장 분석:** 주어진 RPC 엔드포인트에서 사용할 수 있는 원장의 깊이를 이해합니다.

## 요청 매개변수

이 메서드는 매개변수를 필요로 하지 않습니다.

## 응답 구조

JSON-RPC 응답의 `result` 필드는 첫 번째 사용 가능한 블록의 슬롯 번호를 나타내는 `u64` (부호 없는 64비트 정수)입니다.

## 예제

### 1. 첫 번째 사용 가능한 블록 슬롯 가져오기

이 예제에서는 쿼리된 노드에서 사용 가능한 가장 오래된 블록의 슬롯을 가져옵니다.

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

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

  async function logFirstAvailableBlock() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const firstAvailableBlock = await connection.getFirstAvailableBlock();
      console.log(`First Available Block Slot: ${firstAvailableBlock}`);
    } catch (error) {
      console.error('Error fetching first available block:', error);
    }
  }

  logFirstAvailableBlock();
  ```
</CodeGroup>

## 개발자 팁

* **노드 특수성:** 첫 번째 사용 가능한 블록은 다른 RPC 노드마다 크게 다를 수 있습니다. 노드는 원장 데이터를 서로 다른 비율로 삭제하도록 구성될 수 있으므로, 한 노드는 다른 노드보다 훨씬 더 깊은 역사를 가질 수 있습니다.
* **고정되지 않음:** 공간을 절약하기 위해 오래된 슬롯이 결국 원장에서 삭제됨에 따라 `getFirstAvailableBlock`에 의해 반환되는 값은 시간이 지남에 따라 증가합니다.
* **확인된 블록:** 이 메서드는 확인된 블록을 참조합니다. 처리되었지만 아직 확인되지 않거나 최종화되지 않은 블록은 고려되지 않습니다.

이 가이드는 Solana 노드에서 사용 가능한 가장 오래된 블록 슬롯을 식별하기 위해 `getFirstAvailableBlock` RPC 메서드를 사용하는 방법을 설명합니다.
