¿Hay algún módulo de Python que decodifique datos de transacciones sin procesar?

Actualmente estoy haciendo llamadas RPC a bitcoin-cli dentro de python para obtener datos de bloques sin procesar:

bitcoin-cli getblock BLOCKHASH False

Ya he escrito una función que corta el encabezado del bloque y divide el bloque de transacciones en transacciones individuales, lo que da como resultado el mismo resultado que:

bitcoin-cli getrawblock TXID

Ahora estoy tratando de convertir estos datos en el mismo resultado que

bitcoin-cli getrawblock TXID 1

sin hacer otra llamada RPC a bitcoind. Preferiría usar módulos preexistentes si es posible.

Los paquetes de Python serían apreciados.

Respuestas (1)

Sí, Pybitcointools (o esta bifurcación que tiene BIP39, incrustación de archivos y mk_opreturn) puede hacer esto.

Instale cualquier versión de pybitcointools usando setup.py install, como de costumbre.

Luego, con una transacción hexadecimal sin procesar rawtx, simplemente use txo = deserialize(rawtx). rawtxpuede ser una transacción hexadecimal firmada o sin firmar. Lo devuelto txose deserializa como un dictobjeto. Úselo serialize(txo)para volver a rawtx.

Puede obtener TxID usando fetchtx(hex_txid, source="blockr")y enviar Txs firmados con pushtx(signed_hex_tx, source="bci").

¿Pybitcointools envía una llamada RPC a bitcoind para deserializar las transacciones sin procesar o realiza la conversión dentro del módulo?
@SLee Desde el módulo: no se requiere RPC