当前位置: 首页 > 工具软件 > Bitcoin.org > 使用案例 >

linux bitcoind环境搭建,bitcoin_book_2nd

程钧
2023-12-01

检查并解码交易

命令: getrawtransaction, decoderawtransaction

在 [cup_of_coffee] 的案例中, Alice从Bob’s Cafe购买了一杯咖啡。她的交易ID (txid)为+0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2+。让我们使用API,通过交易ID来检索和查看这笔交易:

$ bitcoin-cli getrawtransaction 0627052b6f28912f2703066a912ea577f2ce4da4caa5a↵

5fbd8a57286c345c2f2

0100000001186f9f998a5aa6f048e51dd8419a14d8a0f1a8a2836dd734d2804fe65fa35779000↵

000008b483045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4↵

ae24cb02204b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e3813014↵

10484ecc0d46f1918b30928fa0e4ed99f16a0fb4fde0735e7ade8416ab9fe423cc54123363767↵

89d172787ec3457eee41c04f4938de5cc17b4a10fa336a8d752adfffffffff0260e3160000000↵

0001976a914ab68025513c3dbd2f7b92a94e0581f5d50f654e788acd0ef8000000000001976a9↵

147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac00000000

Tip

在交易确认之前,交易ID不是可信的。区块链中没有交易的哈希值并不意味着交易未处理。这被称为“交易可锻性(transaction malleability)”,因为在区块中确认之前,交易的哈希可以被修改。确认后,txid 是不可变的和可信的。

getrawtransaction 命令以十六进制返回一个序列化的交易。将它作为 decoderawtransaction 命令的参数可以解码:

$ bitcoin-cli decoderawtransaction 0100000001186f9f998a5aa6f048e51dd8419a14d8↵

a0f1a8a2836dd734d2804fe65fa35779000000008b483045022100884d142d86652a3f47ba474↵

6ec719bbfbd040a570b1deccbb6498c75c4ae24cb02204b9f039ff08df09cbe9f6addac960298↵

cad530a863ea8f53982c09db8f6e381301410484ecc0d46f1918b30928fa0e4ed99f16a0fb4fd↵

e0735e7ade8416ab9fe423cc5412336376789d172787ec3457eee41c04f4938de5cc17b4a10fa↵

336a8d752adfffffffff0260e31600000000001976a914ab68025513c3dbd2f7b92a94e0581f5↵

d50f654e788acd0ef8000000000001976a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a8↵

88ac00000000

{

"txid": "0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2",

"size": 258,

"version": 1,

"locktime": 0,

"vin": [

{

"txid": "7957a35fe64f80d234d76d83a2...8149a41d81de548f0a65a8a999f6f18",

"vout": 0,

"scriptSig": {

"asm":"3045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1decc...",

"hex":"483045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1de..."

},

"sequence": 4294967295

}

],

"vout": [

{

"value": 0.01500000,

"n": 0,

"scriptPubKey": {

"asm": "OP_DUP OP_HASH160 ab68...5f654e7 OP_EQUALVERIFY OP_CHECKSIG",

"hex": "76a914ab68025513c3dbd2f7b92a94e0581f5d50f654e788ac",

"reqSigs": 1,

"type": "pubkeyhash",

"addresses": [

"1GdK9UzpHBzqzX2A9JFP3Di4weBwqgmoQA"

]

}

},

{

"value": 0.08450000,

"n": 1,

"scriptPubKey": {

"asm": "OP_DUP OP_HASH160 7f9b1a...025a8 OP_EQUALVERIFY OP_CHECKSIG",

"hex": "76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac",

"reqSigs": 1,

"type": "pubkeyhash",

"addresses": [

"1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK"

]

}

}

]

}

解码后的交易展示了此交易的所有组成部分,包括交易的输入和输出。我们看到将15mBitcoin转到新地址的交易使用了一个输入并产生了两个输出。此交易的输入是以前确认的交易的输出(vin中的 txid ,以 7957a35fe 开头 )。两个输出对应于15mBitcoin的款项,和返回给发送者的零钱。

我们可以通过使用 getrawtransaction 检查此交易中引用的前一个交易的 txid 来进一步探索区块链。我们可以追踪一笔比特币在不同所有者地址之间传递的交易链。

 类似资料: