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)?
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.
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.
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
Phil Pafford