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

# Como Usar getBlocksWithLimit

> Aprenda sobre os casos de uso do getBlocksWithLimit, exemplos de código, parâmetros de solicitação, estrutura de resposta e dicas.

O método RPC [`getBlocksWithLimit`](https://www.helius.dev/docs/api-reference/rpc/http/getblockswithlimit) permite recuperar uma lista de números de slots de blocos confirmados, começando de um slot especificado e retornando até um determinado limite. Isso é útil quando você precisa de um número específico de [blocos](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) subsequentes confirmados a partir de um certo ponto no livro-razão.

<Warning>
  **Evite a Execução em Lote para Melhor Desempenho**

  A execução em lote de métodos de arquivamento aumenta significativamente a latência. Lotes com mais de 10 solicitações não são permitidos.
</Warning>

## Casos de Uso Comuns

* **Buscar um Número Fixo de Blocos Subsequentes:** Obtenha um número definido de slots de blocos que foram confirmados após um slot inicial específico.
* **Exploração de Blocos Paginada:** Recupere blocos em partes ao analisar um segmento do blockchain.
* **Monitoramento de Blocos Recentes:** Obtenha os últimos N blocos de um slot recente conhecido.

## Parâmetros de Solicitação

O método `getBlocksWithLimit` aceita os seguintes parâmetros:

1. **`start_slot`** (u64, obrigatório): O primeiro slot a considerar (inclusivo).
2. **`limit`** (u64, obrigatório): O número máximo de slots de blocos a retornar. O número total de slots consultados (de `start_slot` até `limit` blocos após ele) **não deve exceder 500.000 slots**.
3. **`commitment`** (string, opcional): Especifica o nível de compromisso para a consulta. Se omitido, o compromisso padrão do nó é usado. Isso é passado como o único campo em um objeto de configuração como o último parâmetro.

## Estrutura da Resposta

O campo `result` da resposta JSON-RPC será um array de inteiros u64. Cada inteiro no array representa um número de slot de bloco confirmado, começando de `start_slot` até o especificado `limit`.

* Exemplo: Se `start_slot` for 5 e `limit` for 3, um resultado possível é `[5, 6, 7]`.

## Exemplos

### 1. Obter um Número Limitado de Blocos a partir de um Slot Inicial

Este exemplo busca uma lista de até 5 slots de blocos confirmados começando do 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. Obter Blocos Com Limite e Um Nível de Compromisso Específico

Este exemplo busca até 3 blocos começando do slot `290000000` usando o nível de compromisso `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>

## Dicas para Desenvolvedores

* **Clareza de Intervalo:** O parâmetro `limit` dita o número máximo de *slots* de blocos a retornar. A restrição de 500.000 slots se aplica ao intervalo conceitual analisado (ou seja, de `start_slot` até `start_slot + limit - 1`). Garanta que esse intervalo conceitual não exceda 500.000 slots, mesmo se menos blocos reais forem encontrados e retornados dentro desse intervalo.
* **Disponibilidade de Dados do Nó:** Os nós podem não reter informação para todos os slots históricos. Um `start_slot` muito antigo pode retornar menos blocos do que o especificado `limit`, ou um array vazio, dependendo da retenção do livro-razão do nó.
* **Confirmação de Blocos:** Este método retorna blocos *confirmados*. O conjunto exato de blocos pode variar ligeiramente dependendo do nível `commitment` escolhido e qual nó você consulta, especialmente para slots muito recentes.
* **Especificidade do Caso de Uso:** `getBlocksWithLimit` é ideal quando você conhece o ponto de partida e precisa de um número fixo de blocos subsequentes. Se você precisa de todos os blocos em um intervalo de slots conhecido, `getBlocks` pode ser mais apropriado.

Este guia fornece uma visão clara de como usar o método RPC `getBlocksWithLimit` para listar um número específico de slots de blocos confirmados na rede Solana.

## Métodos Relacionados

<CardGroup cols={2}>
  <Card title="getBlocks" href="/docs/pt-BR/api-reference/rpc/http/getblocks">
    Obter todos os blocos dentro de um intervalo de slots
  </Card>

  <Card title="getBlock" href="/docs/pt-BR/api-reference/rpc/http/getblock">
    Obter informações detalhadas para um bloco específico
  </Card>
</CardGroup>
