So speichern Sie Blockchain-Daten

Wenn ich die Blockchain-Daten in eine Datenbank einprägen wollte, um komplexe oder einfach andere als die RPC-basierten Abfragen durchzuführen, wie würde ich das machen? Müsste ich mich für eine relationale Datenbank oder eine NoSQL-Datenbank entscheiden? Letztendlich würde die Datenbank mit Hunderten von Millionen Datensätzen gefüllt sein, welche Datenbanken würden auf diese gigantischen Zahlen gut funktionieren (schnell reagieren)?

hast du das schon mal angefangen?

Antworten (3)

Wenn Sie sich mit einer relationalen DB zufrieden geben, können Sie BitcoinDatabaseGenerator ausprobieren.
https://github.com/ladimolnar/BitcoinDatabaseGenerator/releases
Quellen und Wiki: https://github.com/ladimolnar/BitcoinDatabaseGenerator

Es kann einige Stunden dauern (bei mir dauert es 90 Minuten, aber das hängt von Ihrer Hardware und Konfiguration ab), um die Blockchain-Dateien in die DB zu übertragen.

Wenn Sie das tun, werfen Sie einen Blick auf die Ansichten, die bereits in der DB definiert sind, einige davon könnten für Sie nützlich sein.

Funktioniert BitcoinDatabaseGenerator auch mit Bitcoin Cash?

Dies hängt wahrscheinlich von der Art der Abfragen ab, die Sie durchführen möchten, und von den Daten, die Sie aus der Datenbank abrufen möchten.

Ich persönlich habe gute Erfahrungen mit der Verwendung einer Graph-Datenbank zum Durchlaufen der Blockchain gemacht (zB Neo4j). Das von Ihnen gewählte Diagrammmodell beeinflusst jedoch die Effizienz bestimmter Arten von Abfragen.

Die Abfragen sind transaktions- und adressorientiert, meistens adressorientiert, dh alle Transaktionen mit einer Zahlung größer als X für diese Adresse in den letzten 6 Monaten. Du denkst, ich sollte mich für eine Graph-DB entscheiden?
Der Vorteil von Graphdatenbanken besteht darin, dass Sie den Transaktionsgraphen effizient durchlaufen können, im Grunde um den Bitcoins von Transaktion zu Transaktion zu folgen. In Ihrem Fall könnte eine herkömmliche relationale Datenbank effizienter sein.
Wie hast du die Daten geladen? (Haben Sie Code dafür?)

Ich fand Blockchain in der Größe einigermaßen überschaubar, selbst wenn Sie einzelne Transaktionen in jedem Block über alle Blöcke hinweg zusammenfassen

Wenn Sie versuchen möchten, schnell mit Blockchain zu spielen, laden Sie den PostgreSQL-Backup-Dump von hier herunter http://dumps.webbtc.com/bitcoin/ - selbst wenn PostgeSQL nicht das ist, wonach Sie suchen, können Sie schnell wieder Gestalten Sie diese Daten mit einfachem SQL und laden Sie sie in wenigen Minuten in neo4j oder eine andere Datenbank

Leider wird dumps.webbtc.com/bitcoin nicht mehr aktualisiert.