Cryptography 将比特币交易哈希转换为原始十六进制代码

Cryptography 将比特币交易哈希转换为原始十六进制代码,cryptography,hex,blockchain,bitcoin,pycrypto,Cryptography,Hex,Blockchain,Bitcoin,Pycrypto,我有一个类似这样的比特币交易哈希列表:A4AD67EA73C88B635E003700290239E6BEAB7DC5C9B31F58CD3408418B7316D 我想把这个散列转换成原始格式(用十六进制代码)。例如,区块链API将此事务散列转换为以下(): 01000000000101B6E447E3730B6C22A4312C51E98A013B8E1514EBE592A75767349B659DD1EB4B000000000FFFF020000000000053C6A4C50000D2A

我有一个类似这样的比特币交易哈希列表:A4AD67EA73C88B635E003700290239E6BEAB7DC5C9B31F58CD3408418B7316D

我想把这个散列转换成原始格式(用十六进制代码)。例如,区块链API将此事务散列转换为以下():

01000000000101B6E447E3730B6C22A4312C51E98A013B8E1514EBE592A75767349B659DD1EB4B000000000FFFF020000000000053C6A4C50000D2AB10002CE909734ABC6014D89E07B7D7D1D5AA1DEB6AF71E2860A470D612483853E078120E105D3EA910720EDBB89FC9025E3B4D8E0701E4450686281D5484FBB44129251337F8045BAD5FB9010000041600441997B7B7B208705CF895CF82100048B7B7B8B108080404040404042BD08080404040404246304302203C5EF41B9F17525714AB840DBD1716C2BAAE14E14DB84A18716F97B5D1C3AA3C021F6BE45F733DE5094B470385D997E797FFAB976610C015833B395197BE58601210380A033803CDCFAE4DDA162741774CBF38AF31EBDD11E9BBA414590D7FE368354000000000

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


提前感谢您的帮助。

由于您有区块链的本地副本,您可以从中使用
getrawtransaction
decoderawtransaction


请记住,在比特币交易中,散列显示为小端而不是大端。

原始发送是BTC发送的
ecdsa
签名的hexdump。为了从发送散列转换为原始发送,您需要在链上查找它。你可以用Python来实现这一点,但这意味着在本地拥有区块链的完整副本。嗨,Woodstock,谢谢你的评论。我有区块链的完整副本,但不知道如何查找。你能帮忙吗?更新后的答案如下@akdThanks@Woodstock,我将尝试你的解决方案。但是,我在bitcoinlib/config文件夹中找不到bitcoin.conf。你能告诉我怎么找到它吗?我正在使用Mac OSX并运行比特币Cor。你是如何安装这个库的?使用Pip?只需执行
PIPShowModuleName
即可显示其位置,从而显示配置位置。如果将家用brew与pip一起使用,这将类似于/usr/local/blah/opt/Hi@Woodstock,我尝试了您的解决方案,但出现以下错误:
bitconlib.services.authproxy.JSONRPCException:-5:没有这样的mempool事务。使用-txindex或提供块散列来启用区块链事务查询。使用gettransaction进行钱包交易。
阅读邮件。。。“使用-txindex或提供块散列以启用区块链事务查询。”您需要在启用-txindex=1的情况下启动BTC守护进程才能使用此功能。建立索引需要时间。我所提供的答案是正确的。您只是遇到了实现方面的问题。
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