Skip to main content
El método RPC getBlockProduction proporciona información sobre la producción de bloques en la época actual o en un rango de slots especificado. Puedes usarlo para recuperar datos de todos los validadores o de la identidad de un validador específico. Esto resulta útil para monitorear el rendimiento de los validadores y comprender los patrones de producción de bloques en la red.

Casos de uso comunes

  • Monitorear el rendimiento de los validadores: Haz un seguimiento del número de bloques producidos y los slots de líder de un validador específico.
  • Analizar el rendimiento de una época: Obtén un resumen de la producción de bloques de todos los validadores en la época actual o en una época anterior.
  • Identificar slots perdidos: Comprueba si los validadores pierden los slots de líder que tienen asignados.
  • Comprobar el estado de la red: Recopila datos sobre la eficiencia general de la producción de bloques.

Parámetros de la solicitud

El método getBlockProduction acepta un objeto de configuración opcional con los siguientes parámetros:
  1. commitment (cadena, opcional): Especifica el nivel de compromiso que se usará para la consulta. Si se omite, se usa el nivel de compromiso predeterminado del nodo.
  2. range (objeto, opcional): Define el rango de slots que se consultará.
    • firstSlot (u64): El primer slot para el que se obtendrá información sobre la producción de bloques (inclusive).
    • lastSlot (u64, opcional): El último slot para el que se obtendrá información sobre la producción de bloques (inclusive). Si se omite, se devolverá la producción de bloques de la época actual hasta el slot actual.
  3. identity (cadena, opcional): Una clave pública de la identidad de un validador codificada en base58. Si se proporciona, la respuesta solo incluirá información sobre la producción de bloques de este validador específico. Si se omite, se devuelve información de todos los validadores del rango especificado (o de la época actual).
Nota: Debes proporcionar al menos uno de los parámetros identity o range.firstSlot. Si no proporcionas identity, el parámetro range es obligatorio.

Estructura de la respuesta

El campo result de la respuesta JSON-RPC será un objeto que contiene:
  • context (objeto):
    • slot (u64): El slot en el que se recuperó la información.
  • value (objeto):
    • byIdentity (objeto): Un objeto cuyas claves son cadenas de identidad de validadores (claves públicas codificadas en base58) y cuyos valores son objetos que contienen:
      • leaderSlots (u64): El número de slots de líder asignados a este validador en el rango o la época consultados.
      • blocksProduced (u64): El número de bloques producidos por este validador en el rango o la época consultados.
    • range (objeto):
      • firstSlot (u64): El primer slot del rango consultado.
      • lastSlot (u64): El último slot del rango consultado.

Consejos para desarrolladores

  • Comprende los límites de las épocas: Cuando realices una consulta mediante identity sin un range, los datos devueltos corresponderán a la época actual hasta el último slot procesado por el nodo. Si necesitas datos de una época anterior completa para un validador específico, tendrás que determinar los valores firstSlot e lastSlot de esa época.
  • Disponibilidad de datos del nodo: El rango de datos históricos sobre la producción de bloques puede variar entre nodos RPC. Es posible que los rangos de slots muy antiguos no estén disponibles en todos los nodos.
  • Monitoreo del rendimiento: getBlockProduction es fundamental para crear paneles o alertas relacionados con el tiempo de actividad de los validadores y las tasas de éxito de producción de bloques.
  • Combinación con getLeaderSchedule: Para realizar un análisis más detallado, puedes correlacionar los datos de getBlockProduction con el resultado de getLeaderSchedule para ver qué slots de líder específicos se produjeron o se perdieron.
  • Identidad frente a todos los validadores: Una consulta sin identity puede devolver una gran cantidad de datos, en especial si no especificas range o si especificas un range amplio. Ten en cuenta el tamaño de las respuestas y los requisitos de procesamiento.

Ejemplos

1. Obtener la producción de bloques de la época actual (todos los validadores)

Este ejemplo obtiene datos sobre la producción de bloques de todos los validadores en la época actual.

2. Obtener la producción de bloques de un validador específico en la época actual

Este ejemplo obtiene la producción de bloques de la identidad de un validador específico en la época actual.

3. Obtener la producción de bloques de un rango de slots y un validador específicos

Este ejemplo obtiene datos sobre la producción de bloques de un validador específico dentro de un rango de slots definido.
Esta guía debería ayudarte a comprender bien cómo usar el método RPC getBlockProduction para analizar la producción de bloques en Solana.

Métodos relacionados

getLeaderSchedule

Obtén la programación completa de líderes para correlacionarla con los datos de producción

getVoteAccounts

Obtén información sobre todos los validadores con derecho a voto