cryptography - 将比特币交易哈希转换为原始十六进制码
问题描述
我有一个像这样的比特币交易哈希列表:a4ad67ea73c88b635e003700290239e6beab7dc5c9b31f58cd34084418b7316d
我想将此哈希转换为原始格式(十六进制)。例如,区块链 API 将此交易哈希转换为以下内容(https://blockchain.info/rawtx/a4ad67ea73c88b635e003700290239e6beab7dc5c9b31f58cd34084418b7316d?format=hex):
01000000000101b6e447e3730b6c22a4312c51e98a013b8e1514ebe592a75767349b659dd1eb4b0000000000ffffffff020000000000000000536a4c50000d2ab10002ce909734abc6014d89e07b7d1d5aa1d324eb6af71e2860a470d612483853e078120e105d3ea910720edbb89fc9025e3b4d8e0701e44510686281d5484fbb48444129251371047bf8ad5b5fb9010000000000160014841996f8ff255c875c4f8875a7bd036bf64209210246304302203c5ef41b9f17525714ab840dbd1716c2baae14e14db84a18716f97b5d1c3aa3c021f6be45f733d3ce5094b470385d997e797ffab976610c015833b395197be586601210380a033803cdcfae4dda162741774cbf38af31ebdd11e9bba414590d7fe36835400000000
获取原始事务字节的一种方法是查询 API,但由于我的数据集很大,这非常耗时。因此,我想知道是否有更简单的方法来进行这种转换。我正在使用 Python。
在此先感谢您的帮助。
解决方案
由于您拥有区块链的本地副本,因此您可以从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
请记住,在比特币交易中,哈希显示的是小端而不是大端。
推荐阅读
- java - Kubernetes Java Spring 微服务 - 为每个容器/服务副本生成唯一标识符
- javascript - 重置 HTML 正文后引导模式不会关闭
- java - 如何以编程方式从 JKS 文件中检索证书的序列号?
- twitter-bootstrap-3 - aria-expanded="false" 在加载时不起作用
- python - 同时循环测试和训练集
- android - 直接打开标准拨号器,无需使用意图选择器
- c# - pipeline.Fit() 函数在 .Net Web 应用程序中不起作用
- php-curl - Coinimp http api 撤回
- c++ - 检查多图C++中是否已经存在值
- javascript - window.XXX = require(YYY) VS const {XXX} = require(YYY):使用哪个?