> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Как использовать getBlocksWithLimit

> Узнайте о сценариях использования getBlocksWithLimit, примерах кода, параметрах запроса, структуре ответа и рекомендациях.

Метод RPC [`getBlocksWithLimit`](https://www.helius.dev/docs/api-reference/rpc/http/getblockswithlimit) позволяет получить список номеров слотов подтверждённых блоков, начиная с указанного слота и вплоть до заданного предела. Это полезно, когда нужно получить определённое количество последующих подтверждённых [блоков](https://www.helius.dev/blog/solana-slots-blocks-and-epochs), начиная с конкретной точки в реестре.

<Warning>
  **Не используйте пакетные запросы, чтобы повысить производительность**

  Пакетная обработка архивных методов значительно увеличивает задержку. Пакеты более чем из 10 запросов не допускаются.
</Warning>

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

* **Получение фиксированного количества последующих блоков:** Получите заданное количество слотов блоков, подтверждённых после определённого начального слота.
* **Постраничный просмотр блоков:** Получайте блоки частями при анализе сегмента блокчейна.
* **Мониторинг последних блоков:** Получите последние 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`.

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlocksWithLimit",
      "params": [
        280000000, 
        5 
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getBlocksWithLimitExample(startSlot, limit) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blocks = await connection.getBlocksWithLimit(startSlot, limit);
      console.log(`Up to ${limit} confirmed blocks starting from slot ${startSlot}:`, blocks);
    } catch (error) {
      console.error('Error fetching blocks with limit:', error);
    }
  }

  // Example usage:
  const startSlot = 280000000;
  const limit = 5;
  getBlocksWithLimitExample(startSlot, limit);
  ```
</CodeGroup>

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

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

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlocksWithLimit",
      "params": [
        290000000,
        3,
        { "commitment": "confirmed" }
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getBlocksWithLimitAndCommitment(startSlot, limit) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blocks = await connection.getBlocksWithLimit(startSlot, limit, { commitment: 'confirmed' });
      console.log(`Up to ${limit} confirmed blocks (with 'confirmed' commitment) starting from slot ${startSlot}:`, blocks);
    } catch (error) {
      console.error('Error fetching blocks with limit and commitment:', error);
    }
  }

  // Example usage:
  const commitStartSlot = 290000000;
  const commitLimit = 3;
  getBlocksWithLimitAndCommitment(commitStartSlot, commitLimit);
  ```
</CodeGroup>

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

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

В этом руководстве представлен понятный обзор использования метода RPC `getBlocksWithLimit` для получения заданного количества слотов подтверждённых блоков в сети Solana.

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

<CardGroup cols={2}>
  <Card title="getBlocks" href="/docs/ru/api-reference/rpc/http/getblocks">
    Получите все блоки в диапазоне слотов
  </Card>

  <Card title="getBlock" href="/docs/ru/api-reference/rpc/http/getblock">
    Получите подробную информацию об определённом блоке
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.