¿Cómo puedo obtener la fecha y hora de cuando bitcoind recibió un bloque por última vez?

¿Hay un comando para obtener la última DateTimevez que bitcoindse recibió un bloque?

Esta pregunta acaba de volver a la portada. Intenté modificarlo para que quedara lo más claro posible y agregué algunas etiquetas más. Siéntase libre de editar o mejorar más la publicación, o revertir mis cambios si ya no le pregunta qué le interesaba. Si ya se ha respondido a su satisfacción, sería útil que aceptara una respuesta, para que ya no aparezca como "sin respuesta".

Respuestas (4)

No, no lo hay. getblockcountsolo puede obtener el número de bloques en la mejor cadena, pero no el último bloque recibido.

Es posible que deba escribir un nuevo rpc para obtener el último bloque recibido.

Primero, agregue una nueva estructura de datos en main.cpp y registre los bloques recibidos en ProcessBlock().

Segundo, escriba un rpc para imprimir esa estructura de datos.

Creo que la gente mira los archivos de registro de bitcoind para ver los tiempos recibidos. ¿Posiblemente un grep en el archivo de registro podría ser lo que necesita?

Lo que probablemente quieras hacer es configurar un -blocknotify=script cuando inicies tu daemon. Por ejemplo, podría repetir el hash del bloque con el %sformateador y repetir la hora en que se recibió, dirigiendo la salida a un archivo:

./bitcoind -daemon -server -blocknotify="echo %s; date"

Si te refieres al número de bloques en toda la cadena, getblockcountte da eso.

Los comandos getinfoy getblockchaininfoambos contienen "bloques" en su respuesta. Este último también incluye "encabezados", que deberían mostrarle un número más alto que los "bloques" cuando bitcoind aún no se ha puesto al día pero se ha enterado de un bloque más nuevo.