Transaction-Fees
如何從所有交易中計算每個區塊高度的硬幣供應量?
我們正在做一個小項目,並將所有區塊資訊導入 mongoDB。現在我們的目標是計算與區塊號相關的硬幣供應量。
我的計劃是遍歷每個塊的所有事務並解析
vout
和vin
. 但是,我不確定如何區分已開采的硬幣和以前存在的硬幣轉移使用者。另外,如何計算交易費用?我可以只跟踪,僅"valueOut"
此而已嗎?{ "txid":"0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098", "version":1, "locktime":0, "vin":[ { "coinbase":"04ffff001d0104", "sequence":4294967295, "n":0 } ], "vout":[ { "value":"50.00000000", "n":0, "scriptPubKey":{ "hex":"410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac", "asm":"0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee OP_CHECKSIG", "addresses":[ "12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX" ], "type":"pubkeyhash" }, "spentTxId":null, "spentIndex":null, "spentHeight":null } ], "blockhash":"00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048", "blockheight":1, "confirmations":601155, "time":1231469665, "blocktime":1231469665, "isCoinBase":true, "valueOut":50, "size":134 }
任何幫助,將不勝感激!
每個區塊中的第一筆交易稱為 coinbase 交易,它是向礦工支付獎勵的特殊交易。此交易遵循與其他交易不同的規則:它沒有輸入,但有輸出。
coinbase 交易輸出允許等於或小於區塊補貼(新鑄造的硬幣)+區塊中的所有交易費用。
區塊補貼是由程式碼定義的固定金額。補貼從 50 BTC 開始,每 210,000 個區塊(25、12.5、6.25 等)減半。
塊的交易費用是通過獲取塊中的其餘交易(即所有不是 coinbase 交易的交易),併計算其中輸入和輸出之間的差異來找到的。該值(輸入值 - 輸出值)是隱含費用。
請注意,有一些奇怪的情況需要考慮,這個問題在這方面有很多很好的資訊。除此之外,還有非零數量的 BTC 被“燒毀”,被發送到不可花費的地址或腳本,或者至少有極小的機會有人真正知道私鑰它們(例如 1BitcoinEater… 地址)。根據您如何定義“硬幣供應”,這些硬幣也可能值得考慮。