Wie skalierbar ist das BerkleyDB-Format (die in einer Brieftasche verwendete Technologie) und welche Einschränkungen gibt es?
Welche Technologie würde BerkleyDB ersetzen oder ergänzen, um diese Skalierbarkeitsherausforderungen zu bewältigen?
Im nächsten Major-Release (voraussichtlich 0.8) wird der Referenz-Client höchstwahrscheinlich auf LevelDB statt auf BDB für Blockchain-Daten umsteigen. Für Brieftaschen wird eine andere Lösung benötigt, aber wir werden uns höchstwahrscheinlich auch für diese von BDB entfernen.
BDB hat mehrere Probleme - das heißt nicht, dass es schlechte Software ist, aber unser Anwendungsfall passt einfach nicht zu dem, wofür es entwickelt wurde. BDB soll Datenbanken mit extrem hoher Zuverlässigkeit in komplexen Umgebungen mit mehreren Prozessen auf High-End-Systemen bereitstellen, auf denen Datenbankprotokolle gesichert und Upgrades manuell von einem Datenbankadministrator durchgeführt werden. BDB garantiert nicht einmal die Kompatibilität zwischen seinen Umgebungsdateien zwischen Nebenversionen.
LevelDB – eine Open-Source-Umschreibung des eigenen Datenbanksystems von Google – wurde für Effizienz und Konsistenz auf handelsüblicher Hardware entwickelt und übertrifft BDB in einigen Umgebungen um eine Größenordnung. Vorläufige Tests mit LevelDB zeigen sehr gute Ergebnisse.
Für Wallets wäre LevelDB ein Overkill und eine Belastung. LevelDB verwendet ein ganzes Verzeichnis pro Datenbank (anstelle einer einzelnen Datei), und Brieftaschen sind praktisch ein einfacher Schlüsselwertspeicher, der sowieso vollständig in den Speicher geladen wird. Ich gehe davon aus, dass wallet.dat durch ein einfaches, aber solides handgerolltes Format ersetzt wird.
Serith
Pieter Wuille