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.
getEpochSchedule, чтобы понять базовые временные параметры и структуру эпох в кластере Solana.