Τροφοδοσίες πολλαπλών αλυσίδων για ενσωμάτωση βάσεων δεδομένων Ευφυΐα δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ροές πολλαπλών αλυσίδων για ενσωμάτωση βάσης δεδομένων

Εξαγωγή δεδομένων από το blockchain και στον ευρύτερο κόσμο

Με την πρώτη δημόσια κυκλοφορία του MultiChain, από το 2015, είδαμε το ενδιαφέρον για εφαρμογές blockchain από μια εκπληκτική κατεύθυνση. Ενώ είχαμε αρχικά σχεδιάσει το MultiChain για να επιτρέψει την έκδοση, μεταφορά και φύλαξη ψηφιακών στοιχείων, ένας αυξανόμενος αριθμός χρηστών ενδιαφέρθηκε να το χρησιμοποιήσει για εφαρμογές προσανατολισμένες στα δεδομένα.

Σε αυτές τις περιπτώσεις χρήσης, ο σκοπός του blockchain είναι να επιτρέψει την αποθήκευση και ανάκτηση πληροφοριών γενικού σκοπού, οι οποίες δεν πρέπει να έχουν οικονομικό χαρακτήρα. Το κίνητρο για τη χρήση ενός blockchain και όχι μιας κανονικής βάσης δεδομένων είναι να αποφύγετε να βασίζεστε σε έναν αξιόπιστο διαμεσολαβητή για να φιλοξενήσετε και να διατηρήσετε αυτήν τη βάση δεδομένων. Για εμπορικούς, κανονιστικούς ή πολιτικούς λόγους, οι χρήστες της βάσης δεδομένων θέλουν αυτό να είναι κατανεμημένο και όχι κεντρική ευθύνη.

Η εξέλιξη των ροών

Σε απάντηση σε αυτά τα σχόλια, το 2016 εμείς εισήγαγε Ροές MultiChain, οι οποίες παρέχουν μια απλή αφαίρεση για την αποθήκευση, την ευρετηρίαση και την ανάκτηση γενικών δεδομένων σε ένα blockchain. Μια αλυσίδα μπορεί να περιέχει οποιονδήποτε αριθμό ροών, καθεμία από τις οποίες μπορεί να περιοριστεί για την εγγραφή από συγκεκριμένες διευθύνσεις. Κάθε στοιχείο ροής επισημαίνεται με τη διεύθυνση του εκδότη του καθώς και ένα προαιρετικό κλειδί για μελλοντική ανάκτηση. Κάθε κόμβος μπορεί ανεξάρτητα να αποφασίσει εάν θα εγγραφεί σε κάθε ροή, ευρετηρίαση των στοιχείων του σε πραγματικό χρόνο για γρήγορη ανάκτηση ανά κλειδί, εκδότη, χρόνο, αποκλεισμό ή θέση. Οι ροές ήταν μια άμεση επιτυχία με τους χρήστες του MultiChain και το διαφοροποίησαν έντονα από άλλες πλατφόρμες εταιρικών blockchain.

Το 2017, οι ροές ήταν επεκτάθηκε για υποστήριξη εγγενών κειμένων JSON και Unicode, πολλαπλών κλειδιών ανά στοιχείο και πολλαπλών στοιχείων ανά συναλλαγή. Αυτή η τελευταία αλλαγή επιτρέπει τη δημοσίευση πάνω από 10,000 μεμονωμένων στοιχείων δεδομένων ανά δευτερόλεπτο σε εξοπλισμό προηγμένης τεχνολογίας. Στη συνέχεια, το 2018, προσθέσαμε απρόσκοπτη υποστήριξη για δεδομένα εκτός αλυσίδας, στο οποίο μόνο ένα κατακερματισμό ορισμένων δεδομένων δημοσιεύεται on-chain και τα ίδια τα δεδομένα παραδίδονται εκτός αλυσίδας σε κόμβους που το θέλουν. Και αργότερα εκείνο το έτος κυκλοφόρησε το MultiChain 2.0 Community με Έξυπνα φίλτρα, επιτρέποντας στον προσαρμοσμένο κώδικα JavaScript να εκτελεί αυθαίρετη επικύρωση στοιχείων ροής.

Κατά τη διάρκεια του 2019, η εστίασή μας στράφηκε στο MultiChain 2.0 Enterprise, την εμπορική έκδοση του MultiChain για μεγαλύτερους πελάτες. Ο πρώτος Επιχείρηση επίδειξης αξιοποίησε δεδομένα εκτός αλυσίδας σε ροές για να επιτρέψει την ανάγνωση, την κρυπτογραφημένη παράδοση δεδομένων και την επιλεκτική ανάκτηση και εκκαθάριση μεμονωμένων στοιχείων. Όπως πάντα, η υποκείμενη πολυπλοκότητα κρύβεται πίσω από ένα απλό σύνολο API που σχετίζεται με δικαιώματα και στοιχεία ροής. Με ροές, στόχος μας ήταν να βοηθήσουμε τους προγραμματιστές να επικεντρωθούν στα δεδομένα της εφαρμογής τους και να μην ανησυχούν για το blockchain που τρέχει πίσω από τα παρασκήνια.

Το δίλημμα βάσης δεδομένων

Καθώς οι ροές MultiChain συνεχίζουν να εξελίσσονται, αντιμετωπίζουμε ένα συνεχές δίλημμα. Για την ανάγνωση και ανάλυση των δεδομένων σε μια ροή, θα πρέπει το MultiChain να ακολουθήσει το δρόμο για να γίνει μια ολοκληρωμένη βάση δεδομένων; Πρέπει να προσφέρει ευρετηρίαση πεδίου JSON, βελτιστοποιημένη αναζήτηση και σύνθετες αναφορές; Εάν ναι, ποιο πρότυπο βάσης δεδομένων πρέπει να χρησιμοποιήσει - σχεσιακό (όπως MySQL ή SQL Server), NoSQL (MongoDB ή Cassandra), αναζήτηση (Elastic ή Solr), χρονοσειρές (InfluxDB) ή στη μνήμη (SAP HANA); Σε τελική ανάλυση, υπάρχουν περιπτώσεις χρήσης blockchain κατάλληλες για καθεμία από αυτές τις προσεγγίσεις.

Μία επιλογή που εξετάσαμε είναι η χρήση μιας εξωτερικής βάσης δεδομένων ως κύρια αποθήκευση δεδομένων του MultiChain, αντί για τον τρέχοντα συνδυασμό ενσωματωμένων LevelDB και δυαδικών αρχείων. Αυτή η στρατηγική υιοθετήθηκε από Πυρήνας αλυσίδας (διακόπηκε), Ταχυδρομική αλυσίδα (δεν είναι ακόμη δημόσια) και είναι διαθέσιμο ως επιλογή στο Hyperledger Fabric. Αλλά τελικά αποφασίσαμε εναντίον αυτής της προσέγγισης, λόγω των κινδύνων που εξαρτώνται από μια εξωτερική διαδικασία. Δεν θέλετε πραγματικά να παγώσει ο κόμβος blockchain επειδή έχασε τη σύνδεση της βάσης δεδομένων του ή επειδή κάποιος εκτελεί ένα σύνθετο ερώτημα στο χώρο αποθήκευσής του.

Ένας άλλος παράγοντας που πρέπει να ληφθεί υπόψη είναι ο αγνωστικισμός της τεχνολογίας και της ολοκλήρωσης. Σε ένα δίκτυο blockchain που εκτείνεται σε πολλούς οργανισμούς, κάθε συμμετέχων θα έχει τις δικές του προτιμήσεις σχετικά με την τεχνολογία βάσεων δεδομένων. Θα έχουν ήδη εφαρμογές, εργαλεία και ροές εργασίας ενσωματωμένες στις πλατφόρμες που ταιριάζουν στις ανάγκες τους. Έτσι, επιλέγοντας οποιαδήποτε συγκεκριμένη βάση δεδομένων, ή ακόμα και προσφέροντας μερικές επιλογές, θα καταλήξαμε να κάνουμε μερικούς χρήστες δυσαρεστημένους. Ακριβώς όπως κάθε συμμετέχων στο blockchain μπορεί να τρέξει τον κόμβο του σε μια μεγάλη ποικιλία γεύσεων Linux, θα πρέπει να μπορεί να ενσωματώνεται στη βάση δεδομένων της επιλογής τους.

Παρουσιάζουμε τις ροές πολλαπλών αλυσίδων

Σήμερα είμαστε στην ευχάριστη θέση να κυκλοφορήσουμε την προσέγγισή μας στην ενοποίηση βάσεων δεδομένων - MultiChain Feeds. Η τροφοδοσία είναι ένα δυαδικό αρχείο καταγραφής σε πραγματικό χρόνο των συμβάντων που σχετίζονται με μία ή περισσότερες ροές blockchain, για ανάγνωση από εξωτερικές διαδικασίες. Προσφέρουμε επίσης τον ανοιχτό κώδικα Προσαρμογέας τροφοδοσίας MultiChain η οποία μπορεί να διαβάσει μια ροή και να αναπαράγει αυτόματα το περιεχόμενό της σε μια βάση δεδομένων Postgres, MySQL ή MongoDB (ή αρκετές ταυτόχρονα). Ο προσαρμογέας είναι γραμμένος σε Python και διαθέτει μια ελεύθερη άδεια, οπότε μπορεί εύκολα να τροποποιηθεί για να υποστηρίζει πρόσθετες βάσεις δεδομένων ή να προσθέτει φιλτράρισμα και μετασχηματισμό δεδομένων. (Έχουμε επίσης τεκμηριώσει το μορφή αρχείου τροφοδοσίας για όσους θέλουν να γράψουν ένα πρόγραμμα ανάλυσης σε άλλη γλώσσα.)

Διάγραμμα ροών πολλαπλών αλυσίδων

Ένας κόμβος δεν χρειάζεται να εγγραφεί σε μια ροή για να αναπαράγει τα συμβάντα της σε μια ροή. Αυτό επιτρέπει την ενσωματωμένη ευρετηρίαση ροής MultiChain για πλήρη παράκαμψη, για εξοικονόμηση χρόνου και χώρου στο δίσκο. Οι τροφοδοσίες αντικατοπτρίζουν επίσης την ανάκτηση και τον καθαρισμό δεδομένων εκτός αλυσίδας και μπορούν να αναφέρουν την άφιξη νέων μπλοκ στην αλυσίδα. Για να εξοικονομήσετε χώρο στο δίσκο, μπορείτε να ελέγξετε με ακρίβεια ποια συμβάντα γράφονται σε μια ροή και ποια πεδία εγγράφονται για καθένα από αυτά τα συμβάντα. Επιπλέον, τα αρχεία ροής περιστρέφονται καθημερινά και υπάρχει μια απλή εντολή εκκαθάρισης για την κατάργηση αρχείων μετά την επεξεργασία.

Γιατί οι ροές MultiChain γράφονται σε δίσκο, αντί να μεταδίδονται μέσω ροής μεταξύ διεργασιών ή μέσω δικτύου; Επειδή θέλουμε να χρησιμεύσουν ως ένα εξαιρετικά αξιόπιστο αρχείο αναπαραγωγής που είναι ανθεκτικό στη διακοπή της βάσης δεδομένων, στα σφάλματα του συστήματος, στην απώλεια ισχύος και παρόμοια. Χρησιμοποιώντας αρχεία δίσκου, μπορούμε να εγγυηθούμε την ανθεκτικότητα και να επιτρέψουμε την ενημέρωση της βάσης δεδομένων στόχου ασύγχρονα. Εάν για κάποιο λόγο αυτή η βάση δεδομένων υπερφορτωθεί ή αποσυνδεθεί, το MultiChain μπορεί να συνεχίσει να λειτουργεί χωρίς διακοπή και η βάση δεδομένων θα καλυφθεί μόλις τα πράγματα επανέλθουν στο φυσιολογικό.

Ξεκινώντας με τις ροές

Οι ροές ενσωματώνονται στο πιο πρόσφατο demo / beta του MultiChain Enterprise, το οποίο είναι διαθέσιμο για download τώρα. Ξεκινήστε διαβάζοντας την τεκμηρίωση για το Προσαρμογέας τροφοδοσίας MultiChainή αναθεωρώντας το API που σχετίζεται με τη ροή. Θα θέλαμε πολύ ακούστε τα σχόλιά σας σχετικά με αυτήν τη δυνατότητα και πώς μπορούμε να την επεκτείνουμε στο μέλλον.

Με την κυκλοφορία ροών, η έκδοση 2.0 του MultiChain Enterprise έχει πλέον ολοκληρωθεί - δείτε το Λήψη και εγκατάσταση σελίδα για μια πλήρη σύγκριση μεταξύ των εκδόσεων Κοινότητας και Enterprise. Τους επόμενους μήνες θα ολοκληρώσουμε τις δοκιμές και τη βελτιστοποίησή του και αναμένουμε ότι θα είναι έτοιμος για παραγωγή γύρω στο τέλος του πρώτου τριμήνου. Εν τω μεταξύ, για πληροφορίες σχετικά με την αδειοδότηση ή την τιμολόγηση του MultiChain Enterprise, μην διστάσετε έρθετε σε επαφή.

Παρακαλώ δημοσιεύστε τυχόν σχόλια στο LinkedIn.

Πηγή: https://www.multichain.com/blog/2020/02/multichain-feeds-for-database-integration/

Σφραγίδα ώρας:

Περισσότερα από Πολλαπλές αλυσίδες