Erhalten Sie Transaktionsgebühren pro Transaktion über gettransaction

Für ein Forschungsprojekt muss ich alle Transaktionen analysieren, die 2015 stattgefunden haben. Alles, was mich interessiert, sind das Transaktionsvolumen, die gezahlten Gebühren und ein Zeitstempel pro Transaktion oder entsprechendem Block.

Das Abrufen dieser Daten über APIs über das Netz verursacht viel Overhead und lässt mich an Ratengrenzen stoßen (ich kann nicht einfach mehr als 50 Millionen Abfragen gegen blockchain.info oder die Coinbase-API ausführen).

Ich möchte also die Daten aus meiner lokalen Instanz von Bitcoin-Core abrufen.

Leider schlägt das Ausführen von gettransaction sowohl programmgesteuert als auch über die Befehlszeile fehl, obwohl ich Bitcoin mit aktiviertem -reindex-Flag ausführe:

{ [Error: Invalid or non-wallet transaction id] code: -5 }

Ich habe auf die Verwendung von getrawtransaction 1 zurückgegriffen, die leider nur die transaktionsbezogenen Volumina pro Ausgabe zurückgibt. Ich nehme die txid der Eingaben und frage die lokale Instanz erneut ab. Ein langwieriger und fehleranfälliger Prozess, ich würde gerne wissen, ob es einen einfacheren Weg gibt.

Kann mir bitte jemand dabei helfen, gettransaction zum Laufen zu bringen?

Antworten (1)

Wenn Sie den gettransactionBefehl ausführen möchten, müssen Sie den txindex über aktivieren bitcoind -reindex -txindex. Beachten Sie, dass dies einige Stunden dauert.

Alternativ können Sie Folgendes tun:

  1. Laufbitcoin-cli getblockhash <block number>
  2. Laufbitcoin-cli getblock <result from 1>

Dadurch erhalten Sie die Blockzeit und alle Transaktionen innerhalb des Blocks in einem schönen JSON-Format. Durchlaufen Sie alle txids über:

bitcoin-cli getrawtransaction

Leider müssen Sie alle Eingaben nachschlagen und sehen, wie viel darin enthalten ist, um die Transaktionsgebühr mit dieser Methode zu berechnen.

Danke, ich war mir des -txindex-Flags nicht bewusst, ich lasse jetzt meinen Client neu indizieren. Die zweite Methode, die Sie beschreiben, ist die, die ich zuvor ausprobiert habe. Leider listet tx.vin das Transaktionsvolumen bei dieser Methode nicht auf.
Ja, das Nachschlagen der Originalsender kann sehr mühsam sein. Es ist jedoch nicht zu schwer, wenn Sie ein Skript schreiben, das dies für Sie erledigt.
Also, jetzt habe ich bitcoin-core mit den von Ihnen erwähnten Flags erneut ausgeführt, aber das Problem bleibt bestehen, z. B. dieselbe Fehlermeldung. Hast du noch weitere Tipps?