Bitcoin-Core
計算交易確認
我正在為我的一個系統編寫一個 API,它可以驗證受監控的地址是否正在接收比特幣,我已經可以檢查地址是否在新收到的塊上,將其保存到數據庫中以供將來用作 UTXO,它正在被管理很不錯。
我只是遇到了一個問題。由於原始塊不保存高度資訊,我如何計算(不使用任何外部 API)我的數據庫儲存的交易確認?這在我的架構 RPC 呼叫中也沒有任何意義。
對於這個任務,最好執行一個帶有事務索引的全節點
txindex=1
。然後,您可以txid
通過呼叫以下方式從交易中獲取確認數:
bitcoin-cli getrawtransaction "txid" true
並在現場檢查confirmations
。例如,如果您已jq
安裝,則可以致電bitcoin-cli getrawtransaction 64749d0a6ab7292ed7445609e1adb8df8d67b29e344d752971699ca75bbda78e true | jq '.confirmations'
並得到答案。如果您沒有使用該
txindex=1
選項執行您的節點,您需要遍歷塊以查找您的交易,並且通過從塊數中減去交易的塊高度來獲得確認數。您可以檢查交易是否在這樣的塊中:bitcoin-cli getblock $(bitcoin-cli getblockhash 610321) | jq '.tx' | grep 210d8e526f4d3f72f7cdc9014ef057aa4654f64a7b1bd059f2d8dea7fcce79cd
如果上面的命令返回任何內容,則該事務在該塊中。