Skip to main content
Метод RPC getBlockHeight позволяет легко запросить у узла Solana текущую высоту блока. Высота блока — это количество блоков, обработанных с момента создания исходного блока (слот 0). Этот метод позволяет быстро определить, насколько продвинулась цепочка, или получить последнюю высоту блока для заданного уровня подтверждения.

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

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

Параметры

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

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

  • Уровень подтверждения имеет значение: возвращаемая высота блока может различаться в зависимости от указанного уровня commitment. finalized возвращает наиболее стабильную высоту, а processed — более актуальную, но потенциально временную.
  • minContextSlot для согласованности: используйте minContextSlot, если нужно гарантировать, что высота блока запрашивается из состояния не старше определенного отслеживаемого слота.
  • Не номер слота: помните, что высота блока отличается от номера слота. Слот — это период времени, и блок создается не в каждом слоте. Такие слоты называют пропущенными. Высота блока — это количество фактически созданных блоков.
  • Базовая проверка состояния цепочки: несмотря на простоту, getBlockHeight можно использовать для базовой проверки состояния или синхронизации цепочки в вашем приложении или системе мониторинга.

Ответ

Поле result в ответе JSON-RPC будет содержать одно число:
  • blockHeight (число): текущая высота блока (u64) узла в соответствии с указанным уровнем подтверждения.
Пример ответа JSON:
Это значение представляет количество блоков в самой длинной цепочке от исходного блока (слот 0) до текущей вершины цепочки с точки зрения опрашиваемого узла.

Пример: получение текущей высоты блока

Получим текущую высоту блока через RPC Helius Devnet. Примечание: В приведенных ниже примерах замените YOUR_API_KEY фактическим ключом API Helius.