Saltar al contenido principal
El método RPC getBlocksWithLimit te permite recuperar una lista de números de slot de bloques confirmados, comenzando desde un slot específico y devolviendo hasta un límite determinado. Esto resulta útil cuando necesitas una cantidad específica de bloques confirmados posteriores a partir de cierto punto del libro mayor.
Evita el procesamiento por lotes para mejorar el rendimientoProcesar métodos de archivo por lotes aumenta considerablemente la latencia. No se permiten lotes de más de 10 solicitudes.

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 considerará (incluido).
  2. limit (u64, obligatorio): La cantidad máxima de slots de bloques que se devolverá. La cantidad total de slots consultados (desde start_slot hasta limit bloques después de este) no debe superar los 500,000 slots.
  3. commitment (cadena, opcional): Especifica el nivel de compromiso de la consulta. Si se omite, se usa el compromiso predeterminado del nodo. Se pasa como el ú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 valor especificado de limit.
  • Ejemplo: Si start_slot es 5 y 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.

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 con el nivel de compromiso finalized.

Consejos para desarrolladores

  • Aclaración sobre el rango: El parámetro limit determina la cantidad máxima de slots de bloques que se devolverá. 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 él.
  • Disponibilidad de datos del nodo: Es posible que los nodos no conserven información de todos los slots históricos. Un valor muy antiguo de start_slot podría devolver menos bloques que el valor especificado de limit, o un arreglo vacío, según la retención del libro mayor del nodo.
  • Compromiso del bloque: Con Alpenglow, confirmed y finalized devuelven los mismos bloques comprometidos permanentemente; prefiere finalized para código nuevo. Los distintos nodos aún pueden variar brevemente debido al retraso de propagación.
  • Especificidad del caso de uso: getBlocksWithLimit es ideal cuando conoces el punto de partida y necesitas una cantidad fija de bloques posteriores. Si necesitas todos los bloques de un rango conocido de slots, getBlocks podría ser más apropiado.
Esta guía ofrece una descripción clara de cómo usar el método RPC getBlocksWithLimit para enumerar una cantidad específica de slots de bloques comprometidos permanentemente en la red Solana.

Métodos relacionados

getBlocks

Obtén todos los bloques dentro de un rango de slots

getBlock

Obtén información detallada de un bloque específico