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

# Cómo usar getEpochInfo

> Conoce los casos de uso de getEpochInfo, ejemplos de código, parámetros de solicitud, estructura de respuesta y consejos.

El método RPC [`getEpochInfo`](https://www.helius.dev/docs/api-reference/rpc/http/getepochinfo) devuelve información sobre la época actual. Esto puede ser útil para comprender el estado actual de la red, cuánto ha avanzado la red en la época actual y cuándo podría comenzar la próxima época. Para comprender mejor cómo funcionan en conjunto las [épocas, los slots y los bloques](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) en Solana, consulta nuestro artículo detallado.

## Casos de uso comunes

* **Monitoreo del progreso de la época:** Haz un seguimiento del índice del slot actual dentro de la época y del total de slots de la época para estimar el tiempo restante.
* **Análisis del estado de la red:** Obtén el número de la época actual, la altura del bloque y la cantidad de transacciones procesadas en la época actual.
* **Comprobaciones de sincronización:** Verifica si un nodo está razonablemente sincronizado con la red comparando la información de su época.

## Parámetros de solicitud

El método `getEpochInfo` puede recibir opcionalmente un objeto de configuración con los siguientes parámetros:

* **`commitment`** (string, opcional): Especifica el [nivel de compromiso](https://www.helius.dev/blog/solana-commitment-levels) que se usará al consultar el libro mayor.
  * `finalized`: El nodo consultará el bloque más reciente que la supermayoría del clúster haya confirmado como bloque que alcanzó el bloqueo máximo.
  * `confirmed`: El nodo consultará el bloque más reciente por el que haya votado una supermayoría del clúster.
  * `processed`: El nodo consultará su bloque más reciente. Ten en cuenta que el bloque podría no estar completo.
  * Si no se proporciona, el nivel de compromiso predeterminado es `finalized`.
* **`minContextSlot`** (number, opcional): El slot mínimo en el que se puede evaluar la solicitud. Puedes usarlo para garantizar que la respuesta provenga de un estado suficientemente reciente.

## Estructura de la respuesta

El campo `result` de la respuesta JSON-RPC será un objeto que contiene los siguientes campos:

* **`absoluteSlot`** (u64): El número absoluto del slot actual.
* **`blockHeight`** (u64): La altura del bloque actual.
* **`epoch`** (u64): El número de la época actual.
* **`slotIndex`** (u64): El slot actual en relación con el inicio de la época actual.
* **`slotsInEpoch`** (u64): La cantidad total de slots en la época actual.
* **`transactionCount`** (u64 | null): La cantidad total de transacciones procesadas en la época actual. Puede ser `null` si los datos no están disponibles.

## Ejemplos

### 1. Obtén información sobre la época actual (sin parámetros)

Este ejemplo obtiene información sobre la época actual mediante el nivel de compromiso predeterminado.

<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. Obtén información sobre la época actual con el nivel de compromiso 'confirmed'

Este ejemplo obtiene información de la época mediante el nivel de compromiso `confirmed`.

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

## Consejos para desarrolladores

* **Niveles de compromiso:** La elección de `commitment` puede afectar la inmediatez y la finalidad de los datos. `processed` es el más rápido, pero el menos seguro, mientras que `finalized` es el más seguro, aunque puede tener un ligero retraso. Obtén más información sobre los [niveles de compromiso](https://www.helius.dev/blog/solana-commitment-levels).
* **Disponibilidad de `transactionCount`:** El campo `transactionCount` podría ser `null` si el nodo no tiene esta información disponible de inmediato o si no se registra para el nivel de compromiso específico.
* **Duración de la época:** La cantidad de `slotsInEpoch` puede variar. Puedes usar `getEpochSchedule` para obtener más detalles sobre el calendario de épocas.

Esta guía proporciona la información necesaria para usar el método RPC `getEpochInfo` a fin de obtener detalles sobre la época actual en la red de Solana.

## Métodos relacionados

<CardGroup cols={2}>
  <Card title="getEpochSchedule" href="/docs/es/api-reference/rpc/http/getepochschedule">
    Obtén detalles sobre el calendario de épocas
  </Card>

  <Card title="getSlot" href="/docs/es/api-reference/rpc/http/getslot">
    Obtén el número del slot actual
  </Card>
</CardGroup>
