Transactions
對於給定的餘額,我似乎有太多未使用的輸出。我錯過了什麼?
我在測試網上有一個地址。我從 1.3 btc 開始。然後我將 0.5 btc 發送到另一個地址。我的餘額現在是 0.8。好的,這是有道理的。
我希望現在有一個 UTXO,它與之前的交易相比變化了 0.8。但是當我執行 listunspent 時,我看到我有兩個 UTXO。平衡是正確的,但似乎我有兩個輸出。
[ { "txid": "321dab633022a33c3a49b4aab4b13d3c431771ae9402746dbb6dcc21be5fd603", "vout": 1, "address": "2N4wJG7gs1mVXeMkX2MCuyekZUCSzrW7CjT", "redeemScript": "0014221f8d76c5b85e979055e54ac97a0cada38bc4e9", "scriptPubKey": "a914803d96c7e19e4a568764f9912fa54499f814cd8e87", "amount": 0.79999834, "confirmations": 119, "spendable": true, "solvable": true, "safe": true } ]
當我使用 txid 和 vout 0 執行 gettxout 時,第一個事務 UTXO 為 0.5。
{ "bestblock": "0000000000000043a1abc3cf9c778d3adeb417488019a507da871db9df74ffad", "confirmations": 119, "value": 0.50000000, "scriptPubKey": { "asm": "OP_HASH160 a43f8a90f292b6be0b487556ac357709a5e86480 OP_EQUAL", "hex": "a914a43f8a90f292b6be0b487556ac357709a5e8648087", "reqSigs": 1, "type": "scripthash", "addresses": [ "2N8Dgvfmgs4fNCi7QatLZJR8ArvhPpMPW8P" ] }, "coinbase": false }
當我使用 vout 1 執行 gettxout 時,第二筆交易 UTXO 為 0.799 (0.8),這是餘額。
{ "bestblock": "0000000000000043a1abc3cf9c778d3adeb417488019a507da871db9df74ffad", "confirmations": 119, "value": 0.79999834, "scriptPubKey": { "asm": "OP_HASH160 803d96c7e19e4a568764f9912fa54499f814cd8e OP_EQUAL", "hex": "a914803d96c7e19e4a568764f9912fa54499f814cd8e87", "reqSigs": 1, "type": "scripthash", "addresses": [ "2N4wJG7gs1mVXeMkX2MCuyekZUCSzrW7CjT" ] }, "coinbase": false
}
並據此:如何檢查輸出是否已用完?
如果 gettxout 返回一些東西,那麼輸出是未使用的。
為什麼我有兩個未使用的輸出,第一個輸出的數量與我發送到另一個地址的數量相同?
根據對OP問題的評論
由於您製作了 wallet.dat 文件的副本(這是一種 HD 格式),因此這兩個地址都將在您的錢包(兩個副本)的控制之下。因此,呼叫命令時將列出兩個 UTXO
listunspent
,因為每個錢包都能夠花費兩個 UTXO。如果你使用一個新錢包來生成一個新地址,並向它發送一些資金,那麼該
listunspent
命令應該像你最初預期的那樣執行,因為你的比特幣核心錢包也不會控制你花費硬幣的地址(它只會控制零錢地址)。