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

# getEpochInfo 사용 방법

> getEpochInfo 사용 사례, 코드 예제, 요청 매개변수, 응답 구조 및 팁을 배웁니다.

[`getEpochInfo`](https://www.helius.dev/docs/api-reference/rpc/http/getepochinfo) RPC 메서드는 현재 epoch에 대한 정보를 반환합니다. 이는 네트워크의 현재 상태, 현재 epoch에서 네트워크가 얼마나 진행되었는지, 다음 epoch이 언제 시작될지를 이해하는 데 유용할 수 있습니다. 솔라나에서 [epochs, slots 및 blocks](https://www.helius.dev/blog/solana-slots-blocks-and-epochs)이 함께 작동하는 방식을 더 잘 이해하려면 우리의 자세한 기사를 참조하세요.

## 일반적인 사용 사례

* **Epoch 진행 상황 모니터링:** 현재 epoch 내의 슬롯 인덱스와 총 슬롯 수를 추적하여 남은 시간을 추정합니다.
* **네트워크 상태 분석:** 현재 epoch 번호, 블록 높이 및 현재 epoch에서 처리된 거래 수를 얻습니다.
* **동기화 확인:** 노드가 네트워크와 합리적으로 동기화되었는지 epoch 정보를 비교하여 확인합니다.

## 요청 매개변수

`getEpochInfo` 메서드는 다음 매개변수가 있는 구성 객체를 선택적으로 받을 수 있습니다:

* **`commitment`** (string, optional): 원장을 쿼리할 때 사용할 [commitment 수준](https://www.helius.dev/blog/solana-commitment-levels)을 지정합니다.
  * `finalized`: 노드는 최고 잠금을 달성한 클러스터의 슈퍼다수에 의해 확인된 가장 최근의 블록을 쿼리합니다.
  * `confirmed`: 노드는 클러스터의 슈퍼다수에 의해 투표된 가장 최근의 블록을 쿼리합니다.
  * `processed`: 노드는 가장 최근의 블록을 쿼리합니다. 블록이 완전하지 않을 수 있습니다.
  * 제공되지 않으면 기본 commitment는 `finalized`입니다.
* **`minContextSlot`** (number, optional): 요청이 평가될 수 있는 최소 슬롯입니다. 이를 사용하여 응답이 최근 상태의 것임을 보장할 수 있습니다.

## 응답 구조

JSON-RPC 응답의 `result` 필드는 다음 필드를 포함하는 객체입니다:

* **`absoluteSlot`** (u64): 현재 절대 슬롯 번호입니다.
* **`blockHeight`** (u64): 현재 블록 높이입니다.
* **`epoch`** (u64): 현재 epoch 번호입니다.
* **`slotIndex`** (u64): 현재 epoch의 시작에 상대적인 현재 슬롯입니다.
* **`slotsInEpoch`** (u64): 현재 epoch의 총 슬롯 수입니다.
* **`transactionCount`** (u64 | null): 현재 epoch에서 처리된 총 거래 수입니다. 데이터가 사용할 수 없는 경우 `null`일 수 있습니다.

## 예제

### 1. 현재 Epoch 정보 가져오기 (매개변수 없음)

이 예제는 기본 commitment를 사용하여 현재 epoch에 대한 정보를 가져옵니다.

<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": "getEpochInfo"
    }'
  ```

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

  async function getCurrentEpochInfo() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const epochInfo = await connection.getEpochInfo();
      console.log(JSON.stringify(epochInfo, null, 2));
    } catch (error) {
      console.error('Error fetching epoch information:', error);
    }
  }

  getCurrentEpochInfo();
  ```
</CodeGroup>

### 2. 'confirmed' Commitment로 현재 Epoch 정보 가져오기

이 예제는 `confirmed` commitment를 사용하여 epoch 정보를 가져옵니다.

<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": "getEpochInfo",
      "params": [
        {
          "commitment": "confirmed"
        }
      ]
    }'
  ```

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

  async function getConfirmedEpochInfo() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const epochInfo = await connection.getEpochInfo('confirmed'); // Or connection.getEpochInfo({ commitment: 'confirmed' });
      console.log(JSON.stringify(epochInfo, null, 2));
    } catch (error) {
      console.error('Error fetching confirmed epoch information:', error);
    }
  }

  getConfirmedEpochInfo();
  ```
</CodeGroup>

## 개발자 팁

* **Commitment 수준:** `commitment`의 선택은 데이터의 신속성과 최종성에 영향을 줄 수 있습니다. `processed`는 가장 빠르지만 가장 안전하지 않으며, `finalized`는 가장 안전하지만 약간 지연될 수 있습니다. 자세한 내용은 [commitment 수준](https://www.helius.dev/blog/solana-commitment-levels)에 대해 알아보세요.
* **`transactionCount` 가용성:** 노드에 이 정보가 쉽게 제공되지 않거나 특정 commitment 수준에서 추적되지 않는 경우 `transactionCount` 필드는 `null`일 수 있습니다.
* **Epoch 길이:** `slotsInEpoch`의 수는 다양할 수 있습니다. `getEpochSchedule`를 사용하여 epoch 일정에 대한 더 많은 정보를 얻을 수 있습니다.

이 가이드는 Solana 네트워크에서 현재 epoch에 대한 세부 정보를 검색하기 위해 `getEpochInfo` RPC 메서드를 사용하는 데 필요한 정보를 제공합니다.

## 관련 메서드

<CardGroup cols={2}>
  <Card title="getEpochSchedule" href="/docs/ko/api-reference/rpc/http/getepochschedule">
    epoch 일정에 대한 세부 정보 가져오기
  </Card>

  <Card title="getSlot" href="/docs/ko/api-reference/rpc/http/getslot">
    현재 슬롯 번호 가져오기
  </Card>
</CardGroup>
