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
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.
txDetails
von 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);
}
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"
]
}
}
]
}
],
.....