Skip to main content
Метод RPC getEpochSchedule возвращает информацию о расписании эпох из исходной конфигурации кластера. Эти данные определяют структуру эпох, включая их продолжительность и способ определения расписания лидеров относительно начала эпохи. Понимание расписания эпох важно для приложений, которым необходимо синхронизироваться с сетевыми событиями, прогнозировать границы эпох или учитывать механизм ротации лидеров.

Распространенные сценарии использования

  • Прогнозирование границ эпох: Определите количество слотов в эпохе, чтобы оценить, когда завершится текущая эпоха и начнется следующая.
  • Расчет расписания лидеров: Используйте leaderScheduleSlotOffset, чтобы узнать, насколько заранее формируется расписание лидеров для предстоящей эпохи.
  • Анализ инициализации сети: Изучите warmup, firstNormalEpoch и firstNormalSlot, чтобы понять начальную фазу постепенного увеличения продолжительности эпох кластера, если она предусмотрена.
  • Создание инструментов мониторинга сети: Используйте эту информацию для точного отображения времени и хода эпох.

Параметры запроса

Этот метод не принимает параметров.

Структура ответа

Поле result ответа JSON-RPC будет содержать объект со следующими полями:
  • slotsPerEpoch (u64): Максимальное количество слотов в каждой эпохе (после периода разогрева, если он предусмотрен).
  • leaderScheduleSlotOffset (u64): Количество слотов до начала эпохи, за которое формируется расписание лидеров для этой эпохи.
  • warmup (boolean): Логическое значение, указывающее, предусмотрен ли в кластере период разогрева, в течение которого эпохи начинаются с меньшей продолжительности и постепенно увеличиваются.
  • firstNormalEpoch (u64): Номер первой эпохи с полной продолжительностью slotsPerEpoch. Это поле актуально, если warmup имеет значение true.
  • firstNormalSlot (u64): Индекс первого слота в firstNormalEpoch. Это поле актуально, если warmup имеет значение true.

Примеры

1. Получение расписания эпох для кластера

В этом примере запрашивается расписание эпох.

Рекомендации разработчикам

  • Статическая информация: Расписание эпох определяется исходной конфигурацией кластера и обычно не меняется, если только не выполняется значительное обновление сети или не запускается новый кластер с другими параметрами.
  • Mainnet и Testnet/Devnet: Расписание эпох, особенно slotsPerEpoch и параметры разогрева, может существенно различаться между Mainnet Beta, Testnet и Devnet. Всегда отправляйте запрос конкретному интересующему вас кластеру.
  • Период разогрева: Если warmup имеет значение true, эпохи до firstNormalEpoch будут содержать меньше слотов, чем slotsPerEpoch. Точная формула для расчета продолжительности эпох в период разогрева — 2^N * MINIMUM_SLOTS_PER_EPOCH, где N — номер эпохи (начиная с 0) до достижения firstNormalEpoch. Значение MINIMUM_SLOTS_PER_EPOCH обычно равно 32.
В этом руководстве приведена информация, необходимая для использования метода RPC getEpochSchedule, чтобы понять базовые временные параметры и структуру эпох в кластере Solana.