Saltar al contenido principal
El método RPC getBlocks te permite obtener una lista de números de slots de bloques confirmados entre un slot inicial específico y un slot final opcional. Esto resulta útil cuando necesitas saber qué bloques se confirmaron en un rango específico sin obtener el contenido completo de cada bloque.
Evita el procesamiento por lotes para mejorar el rendimientoEl procesamiento por lotes de métodos de archivo aumenta considerablemente la latencia. No se permiten lotes de más de 10 solicitudes.

Casos de uso comunes

  • Identificar bloques confirmados en un rango: Obtén rápidamente una lista de todos los slots de bloques que se confirmaron correctamente entre dos puntos del libro mayor.
  • Recorrer bloques: Usa la lista de slots devuelta para obtener después información detallada de cada bloque mediante getBlock, si es necesario.
  • Auditoría básica de bloques: Verifica la presencia de bloques dentro de un rango determinado.

Parámetros de solicitud

El método getBlocks acepta los siguientes parámetros:
  1. start_slot (u64, obligatorio): El primer slot que se considerará en el rango (incluido).
  2. end_slot (u64, opcional): El último slot que se considerará en el rango (incluido).
    • Si no se proporciona, la consulta devolverá los bloques desde start_slot hasta el último slot confirmado.
    • El rango entre start_slot e end_slot (o el último slot si se omite end_slot) 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 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 dentro del rango especificado.
  • Ejemplo: [5, 6, 7, 8, 9, 10]

Ejemplos

1. Obtener bloques dentro de un rango específico de slots

Este ejemplo obtiene la lista de slots de bloques confirmados entre los slots 250000000 e 250000010.

2. Obtener bloques desde un slot inicial hasta el último slot confirmado

Este ejemplo obtiene los slots de bloques confirmados desde 260000000 hasta el último bloque confirmado por el nodo (respetando el límite de rango de 500,000 slots desde el slot inicial).

3. Obtener bloques con un nivel de compromiso específico

Este ejemplo obtiene bloques con el nivel de compromiso finalized.

Consejos para desarrolladores

  • Límite del rango: Recuerda el límite de rango de 500,000 slots. Solicitar un rango mayor generará un error.
  • Disponibilidad de datos del nodo: Es posible que los nodos no conserven información de todos los slots históricos. Los valores muy antiguos de start_slot podrían devolver arreglos vacíos o errores, según la configuración del nodo y la retención del libro mayor.
  • Compromiso del bloque: Con Alpenglow, confirmed e finalized devuelven los mismos bloques confirmados permanentemente; usa preferentemente finalized en código nuevo. Los resultados de distintos nodos aún pueden variar brevemente debido al retraso de propagación.
  • Complemento de getBlock: getBlocks suele usarse como primer paso para identificar los slots de bloques relevantes antes de usar getBlock para obtener todos los detalles de cada bloque de esa lista.
  • Alternativa de paginación: Como getBlocks tiene un límite de rango, si necesitas examinar una parte muy grande de la cadena, tendrás que hacer varias llamadas a getBlocks y dividir el rango total deseado en segmentos de 500,000 slots o menos.
Esta guía ofrece una descripción clara de cómo usar el método RPC getBlocks para enumerar slots de bloques confirmados permanentemente en la red Solana.

Métodos relacionados

getBlock

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

getBlocksWithLimit

Obtén una cantidad fija de bloques a partir de un slot