El método RPC getBlockTime proporciona el tiempo estimado de producción de un bloque específico, identificado por su número de slot. El tiempo se devuelve como una marca de tiempo Unix (segundos desde la época Unix).
Este método es útil cuando necesitas correlacionar la producción de bloques con el tiempo real.
Evita el procesamiento por lotes para obtener un mejor rendimientoProcesar métodos de archivo por lotes aumenta significativamente la latencia. No se permiten lotes de más de 10 solicitudes.
Casos de uso comunes
- Asignar marcas de tiempo a eventos: Determina cuándo se produjo un bloque específico para asignar marcas de tiempo a eventos en cadena.
- Analizar intervalos de producción de bloques: Calcula la diferencia de tiempo entre bloques (aunque para un análisis más detallado, podrías combinar otros métodos).
- Correlacionar datos fuera de la cadena: Alinea eventos o datos fuera de la cadena con la actividad en cadena mediante la comparación de los tiempos de producción de los bloques.
Parámetros de solicitud
El método getBlockTime acepta un solo parámetro:
slot (u64, obligatorio): El número de slot del bloque cuyo tiempo estimado de producción se desea obtener.
Estructura de la respuesta
El campo result de la respuesta JSON-RPC será uno de los siguientes:
timestamp (i64): El tiempo estimado de producción como una marca de tiempo Unix (segundos desde la época Unix).
null: Si la marca de tiempo no está disponible para el bloque especificado (por ejemplo, si el bloque es muy antiguo y los datos se eliminaron, o si el bloque se omitió y no tiene una marca de tiempo asociada).
Ejemplos
1. Obtén el tiempo estimado de un bloque específico
Este ejemplo obtiene el tiempo estimado de producción de un slot específico. Recuerda reemplazar SLOT_NUMBER_TO_QUERY por un slot real, reciente y confirmado de la red que estás utilizando (por ejemplo, Mainnet Beta o Devnet).
Consejos para desarrolladores
- Disponibilidad de las marcas de tiempo: Es posible que las marcas de tiempo no estén disponibles para todos los bloques, especialmente para los muy antiguos o los slots que se omitieron. En esos casos, el método devuelve
null.
- Estimación: El tiempo es una estimación. Se deriva del promedio de las marcas de tiempo de los votos de los validadores, ponderado por stake. Aunque suele ser preciso, no es una marca de tiempo garantizada y criptográficamente segura para cada bloque del mismo modo que un hash de bloque.
- Dependencia del nodo: La disponibilidad y la precisión pueden variar ligeramente según el nodo RPC consultado, especialmente en el caso de bloques muy recientes (que aún no se han finalizado).
Esta guía explica cómo usar getBlockTime para obtener la marca de tiempo estimada de producción de cualquier bloque determinado en la red Solana.