> ## 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.

# Cómo usar getBlocksWithLimit

> Conoce los casos de uso, ejemplos de código, parámetros de solicitud, estructura de respuesta y consejos de getBlocksWithLimit.

El método RPC [`getBlocksWithLimit`](https://www.helius.dev/docs/api-reference/rpc/http/getblockswithlimit) te permite recuperar una lista de números de slots de bloques confirmados a partir de un slot específico y hasta un límite determinado. Esto resulta útil cuando necesitas un número específico de [bloques](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) confirmados posteriores a partir de un punto determinado del libro mayor.

<Warning>
  **Evita el procesamiento por lotes para mejorar el rendimiento**

  Procesar métodos de archivo por lotes aumenta considerablemente la latencia. No se permiten lotes de más de 10 solicitudes.
</Warning>

## Casos de uso comunes

* **Obtener un número fijo de bloques posteriores:** Obtén un número definido de slots de bloques confirmados después de un slot inicial específico.
* **Exploración paginada de bloques:** Recupera bloques por grupos cuando analices un segmento de la cadena de bloques.
* **Monitoreo de bloques recientes:** Obtén los últimos N bloques a partir de un slot reciente conocido.

## Parámetros de solicitud

El método `getBlocksWithLimit` acepta los siguientes parámetros:

1. **`start_slot`** (u64, obligatorio): El primer slot que se tendrá en cuenta (incluido).
2. **`limit`** (u64, obligatorio): El número máximo de slots de bloques que se devolverán. El número total de slots consultados (desde `start_slot` hasta `limit` bloques después de este) **no debe superar los 500,000 slots**.
3. **`commitment`** (string, opcional): Especifica el nivel de compromiso de la consulta. Si se omite, se utiliza el nivel de compromiso predeterminado del nodo. Se pasa como único campo de un objeto de configuración en el último parámetro.

## Estructura de la respuesta

El campo `result` de la respuesta JSON-RPC será un arreglo de enteros u64. Cada entero del arreglo representa el número de slot de un bloque confirmado, desde `start_slot` hasta el `limit` especificado.

* Ejemplo: Si `start_slot` es 5 e `limit` es 3, un resultado posible es `[5, 6, 7]`.

## Ejemplos

### 1. Obtener un número limitado de bloques a partir de un slot inicial

Este ejemplo obtiene una lista de hasta 5 slots de bloques confirmados a partir del slot `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. Obtener bloques con un límite y un nivel de compromiso específico

Este ejemplo obtiene hasta 3 bloques a partir del slot `290000000` mediante el nivel de compromiso `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>

## Consejos para desarrolladores

* **Aclaración sobre el rango:** El parámetro `limit` determina el número máximo de *slots* de bloques que se devolverán. La restricción de 500,000 slots se aplica al rango conceptual examinado (es decir, desde `start_slot` hasta `start_slot + limit - 1`). Asegúrate de que este rango conceptual no supere los 500,000 slots, incluso si se encuentran y devuelven menos bloques reales dentro de ese rango.
* **Disponibilidad de datos del nodo:** Es posible que los nodos no conserven información de todos los slots históricos. Un `start_slot` muy antiguo podría devolver menos bloques que el `limit` especificado, o un arreglo vacío, según la retención del libro mayor del nodo.
* **Confirmación de bloques:** Este método devuelve bloques *confirmados*. El conjunto exacto de bloques puede variar ligeramente según el nivel `commitment` elegido y el nodo que consultes, especialmente en el caso de slots muy recientes.
* **Especificidad del caso de uso:** `getBlocksWithLimit` es ideal cuando conoces el punto de partida y necesitas un número fijo de bloques posteriores. Si necesitas todos los bloques de un rango de slots conocido, `getBlocks` podría ser más adecuado.

Esta guía ofrece una descripción clara de cómo usar el método RPC `getBlocksWithLimit` para enumerar un número específico de slots de bloques confirmados en la red Solana.

## Métodos relacionados

<CardGroup cols={2}>
  <Card title="getBlocks" href="/docs/es/api-reference/rpc/http/getblocks">
    Obtén todos los bloques dentro de un rango de slots
  </Card>

  <Card title="getBlock" href="/docs/es/api-reference/rpc/http/getblock">
    Obtén información detallada de un bloque específico
  </Card>
</CardGroup>
