Transactions

如何找到創建交易中涉及的比特幣的 coinbase 交易?

  • May 9, 2019

我正在探索一筆交易,如果想知道錢是什麼時候創造的,我想我最終會得到很多可鑄幣的交易。對於某筆交易,我可以依次探索之前的交易,直到找到幣庫。但我想這將是一項非常費力的工作,可能需要大量資源。就像 blockchains.info 樹 ( <https://blockchain.info/tree/59587897> ) 但將樹擴展到 coinbase 交易

另一方面,我猜節點在驗證交易時會做一些非常相似的事情,不是嗎?我如何創建這個原始交易中涉及的比特幣的可鑄幣交易列表?

如果你有執行比特幣核心,你可以使用JSON RPC和任何你想要的程式語言。

  1. getrawtransaction <txid>
  2. 解碼器交易<十六進制>

第二次呼叫將返回交易的所有輸入。如果交易之前的 tx 等於 32 個零,則它是 coinbase 交易。您應該遞歸地循環遍歷所有父事務。

API 呼叫列表

節點在驗證交易時會做一些非常相似的事情,不是嗎?

這是真的,但有一個區別。當全節點初始化時,它們會經歷自創世塊以來區塊鏈中的每一筆交易。當他們完成交易時,他們會建立一組所有未使用的交易輸出(UTXO)。當新交易到達時,輸入會根據這個 UTXO 集進行檢查,以確保它們過去沒有被使用過。驗證後,輸入被刪除,新的輸出被添加到 UTXO 集中。因此,UTXO 集不包含返回到 coinbase 交易的樹,而只包含尚未花費的交易輸出。

我如何創建這個原始交易中涉及的比特幣的可鑄幣交易列表?

coinbase 交易是任何區塊中的第一筆交易。您可以使用 JSON-RPCgetblockhashgetblock獲取塊數據。之後,您可以獲取txid每個塊的第一筆交易。然後,您可以使用getrawtransactiondecoderawtransaction呼叫來解碼每個 coinbase 交易並獲取您需要的數據,例如區塊獎勵、支付地址等。

引用自:https://bitcoin.stackexchange.com/questions/50957