¿Cómo sé que se ha confirmado una transacción?

¡Estoy ejecutando my bitcoindcon -zmqpubhashtxopcional, y recibo una notificación una vez que una nueva transacción se ha transmitido a la cadena pública! También puedo analizarlo por getrawtransactiony decoderawtransaction. Pero no pude validar si se confirma una transacción.

Además, también existe un nombre opcional como -zmqpubhashblock, también puedo analizarlo getblocky leer todas sus transacciones, compararlo todo con mis datos de MySQL, si existe con el mismo txid, actualizaré mi columna (confirmaciones a más uno) , pero es un poco ineficaz.

Digamos, después de que corrí getblock <hash>, y luego dame una gran cantidad de transacciones. y tengo que comprobar cada algo como:

UPDATE t_unspent_tx
SET confirmations = confirmations + 1
WHERE addr in (addresses)    

Por cierto, ¿puedo confiar en el hash de bloque de la notificación? ¿Puede que no sea el más largo de la cadena?

PD , no quiero verificar la confirmación de blockchain.info o algún otro sitio.

Respuestas (1)

Si tiene txindex=1, puede llamar getrawtransaction <txid> 1para recibir un objeto tx decodificado, que incluirá el número de confirmaciones y el blockhash.

¡Oh! Definitivamente estoy seguro de que no hay confirmationsdespués de decodificar el hex, que se las arregla getrawtransaction.
Parece funcionar en chainquery . ¿Qué versión de Bitcoin estás ejecutando?
Estoy usando la V0.16.1versión. El enlace que proporcionó debe ser procesado.
También parece estar en la fuente . No estoy seguro de por qué no aparecerá en su nodo local. ¿Estás seguro de que estás usando getrawtransaction, y no decoderawtransaction?
¡Oh! getrawtransaction solo me devuelve un hash, y tengo que usarlo decoderawtransactionpara analizarlo.
getrawtransactiontiene un modo detallado, como se describe en mi respuesta, use eso en su lugar