Skip to main content
El método RPC getEpochSchedule devuelve la información del calendario de épocas 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.

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.