Transaktionsgebühr in einem Block berechnen

Ich möchte wissen, wie man den Bitcoin-Kern über json rpc oder andere Methoden abfragen kann, um alle Transaktionsgebühren in einem Block zu finden? API-Abfragen sind nicht sinnvoll, da sie eine Ratenbegrenzung haben.

Hier ist ein Beispielblock, für den ich Transaktionsgebühren berechnen möchte

Blocknummer 395545

Antworten (2)

Da die Block-ID bekannt ist, kann die Gebühr ohne Overhead aus der Coinbase selbst entnommen werden. Pflegen Sie eine einfache Karte für Belohnungspunkte, die besagt, dass Blöcke zwischen 0-149 50 BTC ergeben, nächste 149 25 usw.

Jetzt ist die erste Transaktion in einem Block immer eine Coinbase-Transaktion. Coinbasetran->vout[0] - Belohnung = Gebühr (tatsächliche Gebühr + nicht beanspruchtes Wechselgeld)

Hier ist eine einfache Problemumgehung.

  1. Aktivieren Sie das an txDetailsvon blockToJSON()in übergebene Flagrpcblockchain.cpp

Benötigte Änderungen:

--- a/src/rpcblockchain.cpp
+++ b/src/rpcblockchain.cpp
@@ -423,7 +423,7 @@ UniValue getblock(const UniValue& params, bool fHelp)
         return strHex;
     }

-    return blockToJSON(block, pblockindex);
+    return blockToJSON(block, pblockindex, true);
 }
  1. Verwenden Sie den getblock <HASH>JSON-RPC-Befehl. Jetzt werden alle Transaktionsdetails angezeigt. Die Coinbase-Transaktion kann Ihnen helfen, Ihre Gebühren abzuleiten (ACHTEN SIE, dass die Logik auch in den obigen Code integriert werden kann, aber ich halte es einfach).

Beispielausgabe:

.....

          "vout": [
            {
              "value": 25.04810000,
              "n": 0,
              "scriptPubKey": {
                "asm": "02b551067a9159d3964cb5c5b15d57169c0b2e24fefcfe768c6624ff1a6cedf7b5 OP_CHECKSIG",
                "hex": "2102b551067a9159d3964cb5c5b15d57169c0b2e24fefcfe768c6624ff1a6cedf7b5ac",
                "reqSigs": 1,
                "type": "pubkey",
                "addresses": [
                  "mqu1hVy32hcojhq12kt21kVaCd7g4nwPU5"
                ]
              }
            }
          ]
        }
      ],
.....