我有一个事务详细信息,我想提取事务哈希
我在查找此事务的事务哈希/ID时遇到问题。你们谁能具体说明我在哪方面出了问题。因为我真的看不见
<Tx version: 1
<prevTxIn : 86395c6a5481bd70866f1537caa06bc0533e483cf8358a11081ab4fdd82de601
prev_index: 0,
script_sig: b'483045022100adaa0921ef15771abc9aeb959fce194b0283852bc336614ffc6deeebc19e21ee0220364135571d7899f3f9709a3e07f419dc62a7cb53eca65a85a3a1129a91d7d01c01210246607e02ba8f5dca52f54d09fce649ba80c711558ccaa0457487462faaf2301f',
sequence: 4294967295
>
<TxOut: 2150152600
script_pub_key: b'76a914320a4a30144df4b885080e843e95bb4b3332a68f88ac'>
,<TxOut: 849837400
script_pub_key: b'76a9143810d46cafb8e59d957f9fc47b9a9d22dc14807a88ac'>
,
locktime: 0>
def get_hash(raw):
return codecs.encode(double_sha256(raw), "hex_codec")
从那笔交易中我得到了这个原始交易:
b'010000000101e62dd8fdb41a08118a35f83c483e53c06ba0ca37156f8670bd81546a5c3986000000006b483045022100adaa0921ef15771abc9aeb959fce194b0283852bc336614ffc6deeebc19e21ee0220364135571d7899f3f9709a3e07f419dc62a7cb53eca65a85a3a1129a91d7d01c01210246607e02ba8f5dca52f54d09fce649ba80c711558ccaa0457487462faaf2301fffffffff0298b92880000000001976a914320a4a30144df4b885080e843e95bb4b3332a68f88ac587da732000000001976a9143810d46cafb8e59d957f9fc47b9a9d22dc14807a88ac00000000'>
当我真的得到了\u散列(原始): 我得到:
ID:b'f799bc123ad2e961ed4347a83c933dc931b5d92cadf7c17c3a254b2378ebd036',
这是错误的,因为实际的交易在这里: https://btc.com/202bf3d8baf05d63ab0e00f3874071a54846e02ea74e87efc6bccb89a491bd71#in_0
ID为202bf3d8baf05d63ab0e00f3874071a54846e02ea74e87efc6bccb89a491bd71
请如果有人能帮我具体说明我的过程中哪一部分是我搞砸了,我真的会喜欢它! 提前谢谢
基本上,不能通过b'将十六进制字符串转换为二进制字符串。也就是说,您告诉double\u散列函数
'AB1023'
,它已经是一个二进制字符串了,而实际上不是。相反,您必须首先通过一些转换函数将十六进制字符串转换为二进制我喜欢使用binascii包
binascii.unhexlify(raw)
所以你的新功能看起来像:
希望这有帮助,或者你已经知道了
相关问题 更多 >
编程相关推荐