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

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

El método RPC [`getEpochSchedule`](https://www.helius.dev/docs/api-reference/rpc/http/getepochschedule) devuelve la información del calendario de [épocas](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) de la configuración de génesis del clúster. Estos datos definen cómo se estructuran las épocas, incluida su duración y cómo se determina el calendario de líderes con respecto al inicio de una época.

Comprender el calendario de épocas es fundamental para las aplicaciones que necesitan sincronizarse con eventos de la red, predecir los límites de las épocas o comprender el mecanismo de rotación de líderes.

## Casos de uso comunes

* **Predicción de los límites de las épocas:** Determina la cantidad de slots de una época para estimar cuándo terminará la época actual y comenzará la siguiente.
* **Cálculo del calendario de líderes:** Comprende `leaderScheduleSlotOffset` para saber con cuánta anticipación se generan los calendarios de líderes de una próxima época.
* **Análisis de la inicialización de la red:** Observa `warmup`, `firstNormalEpoch` e `firstNormalSlot` para comprender la fase inicial de aumento gradual de la duración de las épocas del clúster, si corresponde.
* **Creación de herramientas de monitoreo de red:** Usa esta información para mostrar con precisión los tiempos y el progreso de las épocas.

## Parámetros de la solicitud

Este método no recibe ningún parámetro.

## Estructura de la respuesta

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

* **`slotsPerEpoch`** (u64): La cantidad máxima de slots en cada época (después del período de calentamiento, si existe).
* **`leaderScheduleSlotOffset`** (u64): La cantidad de slots antes del inicio de una época en la que se genera el calendario de líderes de esa época.
* **`warmup`** (boolean): Un valor booleano que indica si el clúster tiene un período de calentamiento durante el cual las épocas comienzan siendo más cortas y aumentan gradualmente su duración.
* **`firstNormalEpoch`** (u64): El número de la primera época que tiene la duración completa de `slotsPerEpoch`. Esto es relevante si `warmup` es verdadero.
* **`firstNormalSlot`** (u64): El índice del primer slot de `firstNormalEpoch`. Esto es relevante si `warmup` es verdadero.

## Ejemplos

### 1. Obtén el calendario de épocas del clúster

Este ejemplo obtiene el calendario de épocas.

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

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

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

  getClusterEpochSchedule();
  ```
</CodeGroup>

## Consejos para desarrolladores

* **Información estática:** El calendario de épocas está determinado por la configuración de génesis del clúster y, por lo general, no cambia a menos que haya una actualización importante de la red o se lance un clúster nuevo con parámetros diferentes.
* **Mainnet frente a Testnet/Devnet:** El calendario de épocas, en particular `slotsPerEpoch` y los parámetros de calentamiento, puede diferir considerablemente entre Mainnet Beta, Testnet y Devnet. Consulta siempre el clúster específico que te interese.
* **Período de calentamiento:** Si `warmup` es `true`, las épocas anteriores a `firstNormalEpoch` tendrán menos slots que `slotsPerEpoch`. El cálculo exacto de la duración de las épocas de calentamiento es `2^N * MINIMUM_SLOTS_PER_EPOCH`, donde N es el número de época (a partir de 0), hasta alcanzar `firstNormalEpoch`. El valor de `MINIMUM_SLOTS_PER_EPOCH` suele ser 32.

Esta guía proporciona la información necesaria para usar el método RPC `getEpochSchedule` y comprender los tiempos y la estructura fundamentales de las épocas dentro de un clúster de Solana.
