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

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

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

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

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

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

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

Примеры

1. Получение ограниченного количества блоков из начального слота

В этом примере извлекается список из максимум 5 слотов подтверждённых блоков, начиная со слота 280000000.

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

В этом примере извлекается до 3 блоков, начиная со слота 290000000, с уровнем подтверждения confirmed.

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

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

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

getBlocks

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

getBlock

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