首页 > 解决方案 > 将比特币交易哈希转换为原始十六进制码

问题描述

我有一个像这样的比特币交易哈希列表:a4ad67ea73c88b635e003700290239e6beab7dc5c9b31f58cd34084418b7316d

我想将此哈希转换为原始格式(十六进制)。例如,区块链 API 将此交易哈希转换为以下内容(https://blockchain.info/rawtx/a4ad67ea73c88b635e003700290239e6beab7dc5c9b31f58cd34084418b7316d?format=hex):

01000000000101b6e447e3730b6c22a4312c51e98a013b8e1514ebe592a75767349b659dd1eb4b0000000000ffffffff020000000000000000536a4c50000d2ab10002ce909734abc6014d89e07b7d1d5aa1d324eb6af71e2860a470d612483853e078120e105d3ea910720edbb89fc9025e3b4d8e0701e44510686281d5484fbb48444129251371047bf8ad5b5fb9010000000000160014841996f8ff255c875c4f8875a7bd036bf64209210246304302203c5ef41b9f17525714ab840dbd1716c2baae14e14db84a18716f97b5d1c3aa3c021f6be45f733d3ce5094b470385d997e797ffab976610c015833b395197be586601210380a033803cdcfae4dda162741774cbf38af31ebdd11e9bba414590d7fe36835400000000

获取原始事务字节的一种方法是查询 API,但由于我的数据集很大,这非常耗时。因此,我想知道是否有更简单的方法来进行这种转换。我正在使用 Python。

在此先感谢您的帮助。

标签: cryptographyhexblockchainbitcoinpycrypto

解决方案


由于您拥有区块链的本地副本,因此您可以从python-bitcoinlibgetrawtransaction使用和使用。decoderawtransaction

from bitcoinlib.services.bitcoind import BitcoindClient
bdc = BitcoindClient.from_config('/usr/local/src/.bitcoinlib/config/bitcoin.conf') txid = 'a4ad67ea73c88b635e003700290239e6beab7dc5c9b31f58cd34084418b7316d'
rt = bdc.getrawtransaction(txid)
print("Raw: %s" % rt)

> Raw: 01000000000101b6e447e3730b6c22a4312c51e98a013b8e1514ebe592a75767349b659dd1eb4b0000000000ffffffff020000000000000000536a4c50000d2ab10002ce909734abc6014d89e07b7d1d5aa1d324eb6af71e2860a470d612483853e078120e105d3ea910720edbb89fc9025e3b4d8e0701e44510686281d5484fbb48444129251371047bf8ad5b5fb9010000000000160014841996f8ff255c875c4f8875a7bd036bf64209210246304302203c5ef41b9f17525714ab840dbd1716c2baae14e14db84a18716f97b5d1c3aa3c021f6be45f733d3ce5094b470385d997e797ffab976610c015833b395197be586601210380a033803cdcfae4dda162741774cbf38af31ebdd11e9bba414590d7fe36835400000000

请记住,在比特币交易中,哈希显示的是小端而不是大端。


推荐阅读