Κυκλοφόρησε μια σημαντική έκδοση του immudb 1.0 DBMS, η οποία εγγυάται την αμετάβλητη φύση και τη διατήρηση όλων των δεδομένων που προστίθενται, καθώς και παρέχει προστασία από αναδρομικές αλλαγές και τη δυνατότητα κρυπτογραφικής απόδειξης της ιδιοκτησίας των δεδομένων. Αρχικά, το έργο αναπτύχθηκε ως εξειδικευμένη αποθήκευση NoSQL, χειριζόμενη δεδομένα σε μορφή κλειδιού/τιμής, αλλά ξεκινώντας από την έκδοση 1.0, το immudb τοποθετείται ως ένα πλήρες DBMS με υποστήριξη SQL. Ο κώδικας του έργου είναι γραμμένος στη γλώσσα Go και διανέμεται με την άδεια Apache 2.0.
Οι πληροφορίες στο immudb αποθηκεύονται χρησιμοποιώντας μια δομή που μοιάζει με blockchain που εγγυάται την ακεραιότητα ολόκληρης της αλυσίδας των υπαρχόντων εγγραφών και δεν επιτρέπει την αλλαγή ήδη αποθηκευμένων δεδομένων ή την αντικατάσταση/εισαγωγή μιας εγγραφής στο ιστορικό συναλλαγών. Ο χώρος αποθήκευσης υποστηρίζει μόνο την προσθήκη νέων δεδομένων, χωρίς τη δυνατότητα διαγραφής ή αλλαγής πληροφοριών που έχουν ήδη προστεθεί. Μια προσπάθεια αλλαγής εγγραφών στο DBMS έχει ως αποτέλεσμα μόνο την αποθήκευση μιας νέας έκδοσης της εγγραφής. Τα παλιά δεδομένα δεν χάνονται και παραμένουν διαθέσιμα στο ιστορικό αλλαγών.
Ταυτόχρονα, σε αντίθεση με τις τυπικές λύσεις που βασίζονται σε blockchain, το immudb επιτρέπει την επίτευξη απόδοσης στο επίπεδο των εκατομμυρίων συναλλαγών ανά δευτερόλεπτο και μπορεί να χρησιμοποιηθεί για την εκκίνηση ελαφρών υπηρεσιών ή για την ενσωμάτωση της λειτουργικότητάς του σε εφαρμογές με τη μορφή βιβλιοθήκης.

Η υψηλή απόδοση επιτυγχάνεται με τη χρήση του δέντρου LSM (Log-structured merge-tree) με ένα αρχείο καταγραφής τιμών, το οποίο παρέχει γρήγορη πρόσβαση σε εγγραφές με υψηλούς ρυθμούς προσθήκης δεδομένων. Για τη διατήρηση της ακεραιότητας του χώρου αποθήκευσης, χρησιμοποιείται επιπλέον η δομή δέντρου Merkle Tree, στην οποία κάθε κλάδος επαληθεύει όλους τους υποκείμενους κλάδους και κόμβους χάρη στον κατακερματισμό κοινών (δέντρου). Έχοντας τον τελικό κατακερματισμό, ο χρήστης μπορεί να επαληθεύσει την ορθότητα ολόκληρου του ιστορικού των λειτουργιών, καθώς και την ορθότητα των προηγούμενων καταστάσεων της βάσης δεδομένων (ο κατακερματισμός επαλήθευσης ρίζας της νέας κατάστασης της βάσης δεδομένων υπολογίζεται λαμβάνοντας υπόψη την προηγούμενη κατάσταση).
Στους πελάτες και τους ελεγκτές παρέχονται κρυπτογραφικές αποδείξεις ιδιοκτησίας και ακεραιότητας των δεδομένων. Η χρήση κρυπτογραφίας δημόσιου κλειδιού δεν απαιτεί από τον πελάτη να εμπιστεύεται υπηρέτης, και κάθε νέα σύνδεση πελάτη στο ΣΔΒΔ αυξάνει το συνολικό επίπεδο εμπιστοσύνης σε ολόκληρο τον χώρο αποθήκευσης. Τα δημόσια κλειδιά και οι λίστες ανάκλησης κλειδιών αποθηκεύονται στη βάση δεδομένων και οι θύλακες Intel SGX μπορούν να χρησιμοποιηθούν για κρυπτογραφημένες λειτουργίες.
Η λειτουργικότητα του DBMS περιλαμβάνει υποστήριξη SQL, λειτουργία αποθήκευσης κλειδιών/τιμών, ευρετήρια, θραύση βάσης δεδομένων, δημιουργία στιγμιότυπων κατάστασης δεδομένων, συναλλαγές ACID με υποστήριξη απομόνωσης στιγμιότυπων (SSI), υψηλή απόδοση ανάγνωσης και εγγραφής, βελτιστοποιήσεις για αποτελεσματική λειτουργία σε μονάδες SSD και υποστήριξη για εργασία σε μορφή. υπηρέτης και μια ενσωματωμένη βιβλιοθήκη, υποστήριξη REST API και μια διεπαφή ιστού για διαχείριση. Τυπικές εφαρμογές όπου απαιτούνται ΣΔΒΔ όπως το immudb περιλαμβάνουν συναλλαγές με πιστωτικές κάρτες, αποθήκευση δημόσιων κλειδιών, ψηφιακών πιστοποιητικών, αθροισμάτων ελέγχου και αρχείων καταγραφής, καθώς και δημιουργία πλεονάζοντος χώρου αποθήκευσης για σημαντικά πεδία σε παραδοσιακά ΣΔΒΔ. Βιβλιοθήκες-πελάτες για εργασία με το immudb είναι διαθέσιμες για Go, Java, .NET, Python και Node.js.
Βασικές βελτιώσεις στην έκδοση immudb 1.0:
- Υποστήριξη SQL με δυνατότητα προστασίας σειρών από κρυφές τροποποιήσεις.
- Λειτουργία TimeTravel, η οποία σας επιτρέπει να αλλάξετε την κατάσταση της βάσης δεδομένων σε μια συγκεκριμένη στιγμή στο παρελθόν. Συγκεκριμένα, ο χρόνος αποκοπής δεδομένων μπορεί να οριστεί σε επίπεδο μεμονωμένων υποερωτημάτων, γεγονός που απλοποιεί την ανάλυση των αλλαγών και τη σύγκριση δεδομένων.
- Υποστήριξη για το πρωτόκολλο πελάτη PostgreSQL, που σας επιτρέπει να χρησιμοποιείτε υπάρχουσες εφαρμογές και βιβλιοθήκες με γνώση της PostgreSQL με το immudb. Εκτός από τις εγγενείς βιβλιοθήκες πελατών, μπορείτε επίσης να χρησιμοποιήσετε τυπικές βιβλιοθήκες πελατών Ruby, C, JDBC, PHP και Perl.
- Κονσόλα Ιστού για διαδραστική πλοήγηση δεδομένων και διαχείριση DBMS. Μέσω της διεπαφής ιστού μπορείτε να στείλετε αιτήματα, να δημιουργήσετε χρήστες και να διαχειριστείτε δεδομένα. Επιπλέον, είναι διαθέσιμο το περιβάλλον εκμάθησης Playground.


Πηγή: opennet.ru


