Die Datenbank immudb 1.0 wurde veröffentlicht, die vor Datenverfälschung schützt.

Eine bedeutende Veröffentlichung der Datenbank immudb 1.0 wurde vorgestellt, die Unveränderlichkeit und den Erhalt aller jemals hinzugefügten Daten garantiert, sowie Schutz vor nachträglichen Änderungen bietet und die Möglichkeit zur kryptografischen Beweisführung des Datenbesitzes ermöglicht. Ursprünglich entwickelte sich das Projekt als spezialisiertes NoSQL-Lager, das mit Daten im Schlüssel-/Wertformat umgeht, aber ab der Version 1.0 wird immudb als vollwertige SQL-fähige Datenbank positioniert. Der Code des Projekts ist in Go geschrieben und wird unter der Apache 2.0-Lizenz vertrieben.

Die Informationen in immudb werden mit einer blockchain-ähnlichen Struktur gespeichert, die die Integrität der gesamten Kette bestehender Einträge garantiert und keine Änderungen an bereits gespeicherten Daten oder das Manipulieren/Einfügen von Aufzeichnungen in die Transaktionshistorie zulässt. Das Speicherverwaltungssystem unterstützt nur die Hinzufügung neuer Daten, ohne die Möglichkeit, bereits hinzugefügte Informationen zu löschen oder zu ändern. Ein Versuch, Datensätze in der Datenbank zu ändern, führt lediglich zur Speicherung einer neuen Version des Datensatzes; die alten Daten gehen nicht verloren und bleiben in der Änderungshistorie verfügbar.

Im Gegensatz zu typischen Blockchain-basierten Lösungen ermöglicht es immudb jedoch, eine Leistung im Millionenbereich an Transaktionen pro Sekunde zu erreichen und kann für den Betrieb leichtgewichtiger Dienste oder zum Einbetten seiner Funktionalität in Anwendungen in Form einer Bibliothek verwendet werden.

Die Datenbank immudb 1.0 wurde veröffentlicht, die vor Datenverfälschung schützt.

Die hohe Leistung wird durch die Verwendung eines LSM-Baums (Log-structured merge-tree) mit einem Wert-Log erreicht, der einen schnellen Zugriff auf Datensätze bei hoher Intensität der Dateneingabe ermöglicht. Um die Integrität des Speichers aufrechtzuerhalten, wird zusätzlich eine baumartige Struktur, das ‚Merkle-Baum‘ (Merkle Tree), verwendet, bei der jeder Ast alle nachgelagerten Äste und Knoten durch gemeinsames (baumartiges) Hashing verifiziert. Mit einem endgültigen Hash kann der Benutzer die Korrektheit der gesamten Operationen und früheren Zustände der Datenbank verifizieren (der Wurzel-Verifizierungs-Hash des neuen Zustands der Datenbank wird unter Berücksichtigung des vorherigen Zustands berechnet).

Kunden und Auditoren wird ein kryptografischer Beweis für den Besitz und die Integrität der Daten bereitgestellt. Die Anwendung der Public-Key-Kryptografie erfordert vom Kunden kein Vertrauen in zu einem Server, und die Anbindung jedes neuen Kunden an die Datenbank erhöht das allgemeine Vertrauen in das gesamte Speicher. Öffentliche Schlüssel und Schlüsselwiderrufslisten werden in der Datenbank gespeichert, und bei der Durchführung von Verschlüsselungsvorgängen können Intel SGX-Enklaven verwendet werden.

Zu den Funktionen der Datenbank gehören die Unterstützung von SQL, der Schlüssel/Wert-Speichermodus, Indizes, Datenbank-Sharding, die Erstellung von Snapshots des Datenzustands, ACID-Transaktionen mit Unterstützung für Snapshot-Isolation (SSI), hohe Lese- und Schreibgeschwindigkeit, Optimierungen für eine effiziente Nutzung auf SSDs sowie die Unterstützung des Betriebs in Form Server und einer eingebetteten Bibliothek, Unterstützung von REST-APIs und einer Web-Oberfläche zur Verwaltung. Zu den typischen Anwendungsbereichen, in denen Datenbanken wie immudb gefragt sind, gehören die Abwicklung von Kreditkartentransaktionen, die Speicherung von öffentlichen Schlüsseln, digitalen Zertifikaten, Hashes und Protokollen sowie die Erstellung eines redundanten Speichers für wichtige Felder in traditionellen Datenbanken. Die Client-Bibliotheken für die Arbeit mit immudb sind für Go, Java, .NET, Python und Node.js verfügbar.

Schlüsselverbesserungen in der Version immudb 1.0:

  • Unterstützung von SQL mit der Möglichkeit, Zeilen vor heimlicher Modifikation zu schützen.
  • Der TimeTravel-Modus, der es ermöglicht, den Zustand der Datenbank auf einen bestimmten Zeitpunkt in der Vergangenheit zurückzusetzen. Außerdem kann der Zeitpunkt des Datenschnitts auf der Ebene einzelner Unterabfragen festgelegt werden, was die Analyse von Änderungen und den Vergleich von Daten erleichtert.
  • Unterstützung des PostgreSQL-Clientprotokolls, das die Nutzung bestehender Anwendungen und Bibliotheken mit immudb ermöglicht, die für die Arbeit mit PostgreSQL ausgelegt sind. Darüber hinaus können neben den nativen Client-Bibliotheken auch gängige Client-Bibliotheken wie Ruby, C, JDBC, PHP und Perl verwendet werden.
  • Web-Konsole für die interaktive Navigation durch die Daten und die Verwaltung der Datenbank. Über die Web-Oberfläche können Anfragen gesendet, Benutzer erstellt und Daten verwaltet werden. Zusätzlich steht die Lernumgebung Playground zur Verfügung.
    Die Datenbank immudb 1.0 wurde veröffentlicht, die vor Datenverfälschung schützt.
    Die Datenbank immudb 1.0 wurde veröffentlicht, die vor Datenverfälschung schützt.


    Quelle: opennet.ru
60GB SSD 8Gb DDR4