Gibt es Python-Module, die rohe Transaktionsdaten decodieren?

Ich mache gerade RPC-Aufrufe an bitcoin-cli in Python, um rohe Blockdaten zu erhalten:

bitcoin-cli getblock BLOCKHASH False

Ich habe bereits eine Funktion geschrieben, die den Blockheader abschneidet und den Transaktionsblock in einzelne Transaktionen aufteilt, was zu demselben Ergebnis führt wie:

bitcoin-cli getrawblock TXID

Ich versuche jetzt, diese Daten in das gleiche Ergebnis wie umzuwandeln

bitcoin-cli getrawblock TXID 1

ohne einen weiteren RPC-Aufruf an Bitcoin durchzuführen. Würde es vorziehen, wenn möglich bereits vorhandene Module zu verwenden.

Python-Pakete wären willkommen.

Antworten (1)

Ja, Pybitcointools (oder dieser Fork mit BIP39, Dateieinbettung und mk_opreturn) können dies tun.

Installieren Sie beide Versionen von pybitcointools setup.py installwie gewohnt mit .

Verwenden Sie dann bei einer Raw-Hex-Transaktion rawtxeinfach txo = deserialize(rawtx). rawtxkann entweder eine signierte oder unsignierte Hex-Transaktion sein. Das Zurückgegebene txowird als dictObjekt deserialisiert. Verwenden Sie serialize(txo), um zu zurückzukehren rawtx.

Sie können TxIDs mit abrufen fetchtx(hex_txid, source="blockr")und signierte Txs mit senden pushtx(signed_hex_tx, source="bci").

Sendet Pybitcointools einen RPC-Aufruf an Bitcoin, um Rohtransaktionen zu deserialisieren, oder führt es die Konvertierung innerhalb des Moduls durch?
@SLee Aus dem Modul: kein RPC erforderlich