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.
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étodogetBlocks acepta los siguientes parámetros:
start_slot(u64, obligatorio): El primer slot que se considerará en el rango (incluido).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_slothasta el último slot confirmado. - El rango entre
start_sloteend_slot(o el último slot si se omiteend_slot) no debe superar los 500,000 slots.
- Si no se proporciona, la consulta devolverá los bloques desde
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 camporesult 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 slots250000000 e 250000010.
2. Obtener bloques desde un slot inicial hasta el último slot confirmado
Este ejemplo obtiene los slots de bloques confirmados desde260000000 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 compromisofinalized.
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_slotpodrí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,
confirmedefinalizeddevuelven los mismos bloques confirmados permanentemente; usa preferentementefinalizeden código nuevo. Los resultados de distintos nodos aún pueden variar brevemente debido al retraso de propagación. - Complemento de
getBlock:getBlockssuele usarse como primer paso para identificar los slots de bloques relevantes antes de usargetBlockpara obtener todos los detalles de cada bloque de esa lista. - Alternativa de paginación: Como
getBlockstiene un límite de rango, si necesitas examinar una parte muy grande de la cadena, tendrás que hacer varias llamadas agetBlocksy dividir el rango total deseado en segmentos de 500,000 slots o menos.
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