Transaction-Fees

如何從所有交易中計算每個區塊高度的硬幣供應量?

  • May 8, 2020

我們正在做一個小項目,並將所有區塊資訊導入 mongoDB。現在我們的目標是計算與區塊號相關的硬幣供應量。

我的計劃是遍歷每個塊的所有事務並解析voutvin. 但是,我不確定如何區分已開采的硬幣和以前存在的硬幣轉移使用者。另外,如何計算交易費用?我可以只跟踪,僅"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… 地址)。根據您如何定義“硬幣供應”,這些硬幣也可能值得考慮。

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