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

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

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

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

Метод getBlocks принимает следующие параметры:
  1. start_slot (u64, обязательный): Первый слот рассматриваемого диапазона (включительно).
  2. end_slot (u64, необязательный): Последний слот рассматриваемого диапазона (включительно).
    • Если параметр не указан, запрос вернёт блоки от start_slot до последнего подтверждённого слота.
    • Диапазон между start_slot и end_slot (или последним слотом, если end_slot не указан) не должен превышать 500 000 слотов.
  3. commitment (string, необязательный): Задаёт уровень подтверждения для запроса. Если параметр не указан, используется уровень подтверждения узла по умолчанию. Он передаётся как единственное поле объекта конфигурации в последнем параметре.

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

Поле result ответа JSON-RPC содержит массив целых чисел u64. Каждое целое число в массиве представляет номер слота подтверждённого блока в указанном диапазоне.
  • Пример: [5, 6, 7, 8, 9, 10]

Примеры

1. Получение блоков в указанном диапазоне слотов

В этом примере запрашивается список слотов подтверждённых блоков между слотами 250000000 и 250000010.

2. Получение блоков от начального до последнего подтверждённого слота

В этом примере запрашиваются слоты подтверждённых блоков, начиная с 260000000 и заканчивая последним блоком, подтверждённым узлом (с учётом ограничения диапазона в 500 000 слотов от начального слота).

3. Получение блоков с указанным уровнем подтверждения

В этом примере блоки запрашиваются с уровнем подтверждения confirmed.

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

  • Ограничение диапазона: Помните об ограничении диапазона в 500 000 слотов. Запрос большего диапазона приведёт к ошибке.
  • Доступность данных на узле: Узлы могут хранить информацию не обо всех исторических слотах. При очень старых значениях start_slot могут возвращаться пустые массивы или ошибки в зависимости от конфигурации узла и срока хранения реестра.
  • Подтверждение блоков: Этот метод возвращает подтверждённые блоки. Точный набор блоков может немного различаться в зависимости от выбранного уровня commitment и опрашиваемого узла, особенно для совсем недавних слотов.
  • Дополнение к getBlock: getBlocks часто используется как первый шаг для определения нужных слотов блоков перед получением полной информации об отдельных блоках из этого списка с помощью getBlock.
  • Альтернатива пагинации: Поскольку у getBlocks есть ограничение диапазона, для сканирования очень большого участка цепочки потребуется выполнить несколько вызовов getBlocks, разбив нужный общий диапазон на сегменты не более 500 000 слотов.
В этом руководстве представлен понятный обзор использования метода RPC getBlocks для получения списка слотов подтверждённых блоков в сети Solana.

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

getBlock

Получите подробную информацию об определённом блоке

getBlocksWithLimit

Получите заданное количество блоков, начиная с определённого слота