getBlocks позволяет получить список номеров слотов подтверждённых блоков между указанным начальным слотом и необязательным конечным слотом. Это полезно, если нужно узнать, какие блоки были подтверждены в определённом диапазоне, не загружая полное содержимое каждого блока.
Распространённые сценарии использования
- Определение подтверждённых блоков в диапазоне: Быстро получите список всех слотов блоков, которые были успешно подтверждены между двумя точками реестра.
- Перебор блоков: Используйте полученный список слотов, чтобы при необходимости запросить подробную информацию о каждом блоке с помощью
getBlock. - Базовый аудит блоков: Проверьте наличие блоков в определённом диапазоне.
Параметры запроса
МетодgetBlocks принимает следующие параметры:
start_slot(u64, обязательный): Первый слот рассматриваемого диапазона (включительно).end_slot(u64, необязательный): Последний слот рассматриваемого диапазона (включительно).- Если параметр не указан, запрос вернёт блоки от
start_slotдо последнего подтверждённого слота. - Диапазон между
start_slotиend_slot(или последним слотом, еслиend_slotне указан) не должен превышать 500 000 слотов.
- Если параметр не указан, запрос вернёт блоки от
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 слотов.
getBlocks для получения списка слотов подтверждённых блоков в сети Solana.
Связанные методы
getBlock
Получите подробную информацию об определённом блоке
getBlocksWithLimit
Получите заданное количество блоков, начиная с определённого слота