Quiero entender la estructura de datos de Bitcoin. Así que trato de entender una transacción sin procesar en formato json. Cuando revisé la documentación de la API de blockchain.info , veo que la estructura de entrada está definida para transacciones como esta:
"prev_out":
{
"hash":"a3e2bcc9a5f776112497a32b05f4b9e5b2405ed9",
"value":"100000000",
"tx_index":"12554260",
"n":"2"
},
"script":"76a914641ad5051edd97029a003fe9efb29359fcee409d88ac"
Pero cuando consulto una transacción de blockchain.info , parece diferente:
"prev_out":
{
"spent":true,
"tx_index":8845778,
"type":0,
"addr":"1CfD77hupeUvFwBPxZ2fA8iyWmVwQY22oh",
"value":10212000000,
"n":1,
"script":"76a9147fe34b97aeff4ab754770be5c8f12e2e95332fd488ac"
}
¿Existe algún documento que explique claramente estos campos de datos?
Mis maravillas actuales:
Debe saber que los diferentes analizadores de transacciones a menudo incluyen sus propios campos que no se incluyen directamente en la transacción sin procesar. Por ejemplo, la "dirección" no se encontraría en la transacción sin procesar, pero se puede inferir mirándola. No estoy seguro de a qué se refieren los campos 'tipo' y 'n'. Es posible que desee echar un vistazo a estos enlaces:
No estoy seguro acerca de sus preguntas 1, 3, será específico para la API. No estoy seguro de a qué se refiere en la pregunta 2. Para la pregunta 4, depende del tipo de transacción (no segwit o segwit) y el tipo de firma (sighash_all, sighash_none, sighash_single).
He estado usando esto durante mucho tiempo y siempre me saltaba los campos. Ahora que lo menciona, aquí hay una respuesta parcial:
1.) No sé.
2.) El hash de la transacción aparece al final de la lista; también aparece en el enlace que proporcionó.
3.) Otra buena pregunta. No sé.
4.) Los campos que se firman provienen de la transacción anterior donde, básicamente, se firma toda la estructura de datos con la excepción de que el campo "scriptSig" se llena con el script "pubkey".
Hay tres grandes fuentes de documentación sobre estructuras de transacciones:
1.) Guía para desarrolladores de Bitcoin.org
2.) "Dominar Bitcoin" por Andreas Antonopoulos
3.) Bitcoins de la manera difícil: usando el protocolo de Bitcoin sin procesar
Espero que esto haya sido beneficioso.
Supongo que "gastado" te dice si es un UTXO o no.
DjangoBlockchain