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

# Как использовать getEpochSchedule

> Изучите сценарии использования getEpochSchedule, примеры кода, параметры запроса, структуру ответа и рекомендации.

Метод RPC [`getEpochSchedule`](https://www.helius.dev/docs/api-reference/rpc/http/getepochschedule) возвращает информацию о расписании [эпох](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) из исходной конфигурации кластера. Эти данные определяют структуру эпох, включая их продолжительность и способ определения расписания лидеров относительно начала эпохи.

Понимание расписания эпох важно для приложений, которым необходимо синхронизироваться с сетевыми событиями, прогнозировать границы эпох или учитывать механизм ротации лидеров.

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

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

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

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

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

Поле `result` ответа JSON-RPC будет содержать объект со следующими полями:

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

## Примеры

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

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

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

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

* **Статическая информация:** Расписание эпох определяется исходной конфигурацией кластера и обычно не меняется, если только не выполняется значительное обновление сети или не запускается новый кластер с другими параметрами.
* **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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.