Dendrite, ένας διακομιστής επικοινωνίας με την εφαρμογή του πρωτοκόλλου Matrix

Το Dendrite είναι ένας διακομιστής επικοινωνιών αυτό είναι αναπτύχθηκε από την ομάδα Matrix και τοποθετείται ως υλοποίηση της δεύτερης γενιάς στοιχείων διακομιστή Matrix.

Σε αντίθεση με τον διακομιστή αναφοράς Synapse που είναι γραμμένος στο Python, ο κώδικας Dendrite αναπτύσσεται στο Go. Και οι δύο επίσημες υλοποιήσεις διανέμονται με την άδεια Apache 2.0.

Ως μέρος του έργου Ruma, αναπτύσσεται μια ξεχωριστή έκδοση του διακομιστή Matrix στη γλώσσα Rust, η οποία διανέμεται με την άδεια MIT.

Ο νέος διακομιστής στοχεύει στην επίτευξη υψηλής απόδοσης, αξιοπιστίας και επεκτασιμότητας.

Σχετικά με το Dendrite

Dendrite είναι μπροστά από το Synapse όσον αφορά την απόδοση, απαιτεί πολύ λιγότερη μνήμη για να λειτουργήσει και μπορεί να κλιμακωθεί με εξισορρόπηση φορτίου σε πολλούς κόμβους.

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

Ο εξισορροπητής φορτίου είναι υπεύθυνος για την αποστολή κλήσεων σε μικροϋπηρεσίες. Τα νήματα (go ρουτίνες) χρησιμοποιούνται για να παραλληλίσουν τις λειτουργίες στον κώδικα, οι οποίες επιτρέπουν τη χρήση των πόρων όλων των πυρήνων της CPU χωρίς να χωρίζονται σε ξεχωριστές διαδικασίες.

Dendrite υποστηρίζει την εργασία σε δύο τρόπους: μονολιθικό και πολλαπλών συστατικών (πολυλίθος).

  • Σε μονολιθική λειτουργία, Όλες οι μικροσυσκευές συνδέονται σε ένα εκτελέσιμο αρχείο, εκτελούνται σε μια διαδικασία και αλληλεπιδρούν απευθείας μεταξύ τους.
  • Σε λειτουργία πολλών συστατικών (σύμπλεγμα), οι μικροσυσκευές μπορούν να ξεκινήσουν ξεχωριστά, ακόμη και με διαφορετικότητα σε διαφορετικούς κόμβους. Η αλληλεπίδραση συστατικών σε λειτουργία πολλών συστατικών πραγματοποιείται χρησιμοποιώντας το εσωτερικό HTTP API και την πλατφόρμα Apache Kafka.

Η ανάπτυξη πραγματοποιείται με βάση τις προδιαγραφές του πρωτοκόλλου Matrix και χρησιμοποιεί δύο σετ δοκιμών: τις κοινές δοκιμές sytest με το Synapse και τη νέα σουίτα συμπλήρωσης.

Στο τρέχον στάδιο ανάπτυξης, το Dendrite περνά με επιτυχία το 56% των δοκιμών των API διακομιστή-πελάτη και το 77% των δοκιμών API συνένωσης, ενώ η πραγματική κάλυψη λειτουργικότητας εκτιμάται σε 70% για το API διακομιστή-πελάτη και 95% για το API συνένωσης.

Το στάδιο beta δείχνει ότι το Dendrite είναι έτοιμο για αρχική ανάπτυξη και η μετάβαση στην ανάπτυξη με τακτικές νέες κυκλοφορίες. Μεταξύ των εκδόσεων, το σχήμα αποθήκευσης βάσης δεδομένων θα ενημερωθεί τώρα (σε αντίθεση με την εγκατάσταση κομματιών από το αποθετήριο, μετά την ενημέρωση, το περιεχόμενο της βάσης δεδομένων δεν θα χαθεί).

Αλλαγές που διακόπτουν την συμβατότητα προς τα πίσω, αλλάζουν τη δομή της βάσης δεδομένων ή απαιτούν αλλαγές στη διαμόρφωση θα προσφέρονται μόνο σε μεγάλες εκδόσεις.

Προς το παρόν, Συνιστάται η χρήση του Dendrite σε μονολιθική λειτουργία μαζί με το PostgreSQL DBMS για τη δημιουργία μικρών οικιακών διακομιστών και κόμβων P2P. Η χρήση του SQLite δεν συνιστάται ακόμη λόγω ανεπίλυτων προβλημάτων με τον χειρισμό ταυτόχρονων λειτουργιών.

Οι δυνατότητες δεν έχουν ακόμη εφαρμοστεί στο Dendrite συμπεριλάβετε: αναγνώριση μηνυμάτων, σελιδοδείκτες, ειδοποιήσεις push, OpenID, σύνδεσμος email, αναζήτηση από τον διακομιστή, κατάλογος χρηστών, λίστες αγνοίας χρήστη, δημιουργία ομάδων και κοινοτήτων, αξιολόγηση της παρουσίας ενός χρήστη στο διαδίκτυο, εισροές επισκεπτών, αλληλεπίδραση με δίκτυα τρίτων.

Βασική λειτουργικότητα για τη λειτουργία αιθουσών συνομιλίας (δημιουργία, προσκλήσεις, κανόνες ελέγχου ταυτότητας), μέσα ομοσπονδίας συμμετεχόντων σε δωμάτια, συγχρονισμός εκδηλώσεων μετά την επιστροφή από εκτός σύνδεσης, λογαριασμοί, προφίλ, ένδειξη κλήσης, λήψη και μεταφόρτωση αρχείων επεξεργασίας (Media API) είναι διαθέσιμα για χρήση μηνυμάτων, ACLs, ετικετών και συσκευών κρυπτογράφησης από άκρο σε άκρο και κλειδιών.

Θυμηθείτε αυτό η πλατφόρμα για την οργάνωση αποκεντρωμένων επικοινωνιών Το Matrix χρησιμοποιεί HTTPS + JSON ως μεταφορά με δυνατότητα χρήσης WebSockets ή πρωτοκόλλου που βασίζεται στο CoAP + Noise. Το σύστημα διαμορφώνεται ως μια κοινότητα διακομιστών που μπορούν να αλληλεπιδρούν μεταξύ τους και συνδυάζονται σε ένα κοινό αποκεντρωμένο δίκτυο.

Τα μηνύματα αναπαράγονται σε όλους τους διακομιστές με τους οποίους είναι συνδεδεμένοι οι συμμετέχοντες στην ανταλλαγή μηνυμάτων. Τα μηνύματα μεταδίδονται μεταξύ διακομιστών με παρόμοιο τρόπο με τον τρόπο διάδοσης των δεσμεύσεων μεταξύ των αποθετηρίων Git.

πηγή: https://matrix.org


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.