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

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

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

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

Метод getEpochInfo может принимать необязательный объект конфигурации со следующими параметрами:
  • commitment (строка, необязательно): Задает уровень подтверждения, используемый при запросе к реестру.
    • finalized: Узел запросит самый последний блок, который квалифицированное большинство кластера подтвердило как достигший максимального периода блокировки.
    • confirmed: Узел запросит самый последний блок, за который проголосовало квалифицированное большинство кластера.
    • processed: Узел запросит свой самый последний блок. Обратите внимание, что блок может быть неполным.
    • Если параметр не указан, по умолчанию используется уровень подтверждения finalized.
  • minContextSlot (число, необязательно): Минимальный слот, на котором может быть обработан запрос. Этот параметр позволяет убедиться, что ответ получен из достаточно актуального состояния.

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

Поле result ответа JSON-RPC будет содержать объект со следующими полями:
  • absoluteSlot (u64): Текущий абсолютный номер слота.
  • blockHeight (u64): Текущая высота блока.
  • epoch (u64): Номер текущей эпохи.
  • slotIndex (u64): Текущий слот относительно начала текущей эпохи.
  • slotsInEpoch (u64): Общее количество слотов в текущей эпохе.
  • transactionCount (u64 | null): Общее количество транзакций, обработанных в текущей эпохе. Может иметь значение null, если данные недоступны.

Примеры

1. Получение информации о текущей эпохе (без параметров)

В этом примере запрашивается информация о текущей эпохе с уровнем подтверждения по умолчанию.

2. Получение информации о текущей эпохе с уровнем подтверждения ‘confirmed’

В этом примере запрашивается информация об эпохе с уровнем подтверждения confirmed.

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

  • Уровни подтверждения: Выбор commitment может влиять на актуальность и окончательность данных. processed — самый быстрый, но наименее безопасный вариант, а finalized — самый безопасный, но может немного отставать. Подробнее см. в материале об уровнях подтверждения.
  • Доступность transactionCount: Поле transactionCount может иметь значение null, если у узла нет оперативного доступа к этой информации или она не отслеживается для указанного уровня подтверждения.
  • Длительность эпохи: Количество slotsInEpoch может различаться. Чтобы получить дополнительные сведения о расписании эпох, используйте getEpochSchedule.
В этом руководстве приведена необходимая информация об использовании метода RPC getEpochInfo для получения сведений о текущей эпохе в сети Solana.

Связанные методы

getEpochSchedule

Получение сведений о расписании эпох

getSlot

Получение номера текущего слота