Veröffentlichung von Dendrite 0.1.0, einem Kommunikationsserver mit Implementierung des Matrix-Protokolls.

Veröffentlicht Matrix-Server Veröffentlichung Dendrite 0.1.0, der den Übergang der Entwicklung in die Beta-Testphase markiert hat. Dendrite wird von dem Hauptteam der Entwickler der dezentralen Kommunikationsplattform Matrix entwickelt und positioniert sich als eine Implementierung der zweiten Generation von Matrix-Serverkomponenten. Im Gegensatz zum Referenzserver Synapse, der in der Programmiersprache Python geschrieben ist, ist der Dendrite-Code seit Sommer 2016). Bis Ende 2019 ist die Veröffentlichung einer weiteren experimentellen Version der GTK 3.9x-Reihe geplant, gefolgt von einem finalen Testrelease von GTK 3.99 im Frühling 2020, das alle angestrebten Funktionen enthalten wird. Die Veröffentlichung von GTK 4 wird für Anfang Herbst 2020 erwartet, zeitgleich mit GNOME 3.38. in der Programmiersprache Go. Beide offiziellen Implementierungen werden unter der Lizenz Apache 2.0 verteilt. Im Rahmen des Projekts Ruma wird außerdem eine Variante des Matrix-Servers in der Programmiersprache Rust entwickelt, die wird unter der GPLv3-Lizenz bereitgestellt. unter der MIT-Lizenz.

Der neue Server zielt darauf ab, hohe Effizienz, Zuverlässigkeit und Skalierbarkeit zu erreichen. Dendrite übertrifft Synapse in der Leistung, benötigt deutlich weniger Speicher und kann durch Lastverteilung auf mehrere Knoten skaliert werden. Die Architektur von Dendrite unterstützt horizontale Skalierung und basiert auf der Trennung von Handlern in Form von Microservices, wobei jede Instanz eines Microservices ihre eigenen Tabellen in der Datenbank hat. Die Verwaltung der Anfragen an die Microservices erfolgt durch den Lastverteiler. Zur Parallelisierung von Operationen im Code werden Goroutinen eingesetzt, die es ermöglichen, die Ressourcen aller CPU-Kerne ohne Trennung in separate Prozesse zu nutzen.

Veröffentlichung von Dendrite 0.1.0, einem Kommunikationsserver mit Implementierung des Matrix-Protokolls.

Dendrite unterstützt den Betrieb in zwei Modi — monolithisch und mehrkomponentig (Polylith). Im monolithischen Modus sind alle Microservices in einer ausführbaren Datei gebündelt, laufen in einem Prozess und interagieren direkt miteinander. Im mehrkomponentigen (Cluster-)Modus können Microservices separat gestartet werden, auch auf unterschiedlichen Knoten verteilt. Die Interaktion der Komponenten erfolgt in
Im Multi-Component-Modus erfolgt dies über die interne HTTP-API und die Plattform Apache Kafka.

Die Entwicklung basiert auf den Spezifikationen des Matrix-Protokolls und verwendet zwei Testsuiten — die gemeinsamen Tests mit Synapse sytest und einer neuen Suite Complement. In der aktuellen Entwicklungsphase besteht Dendrite erfolgreich aus 56 % der Client-Server-API-Tests und 77 % der Federation-API-Tests, wobei die tatsächliche Funktionalitätsabdeckung für die Client-Server-API auf 70 % und für die Federation-API auf 95 % geschätzt wird.

Die Beta-Testphase zeigt, dass Dendrite bereit für die erste Implementierung ist und der Übergang zur Entwicklung mit regelmäßigen neuen Versionen erfolgt. Zwischen den Versionen wird nun ein Update des Datenbankschemas in der DB sichergestellt (im Gegensatz zur Installation von Snapshots aus dem Repository wird der Inhalt der Datenbank nach dem Update nicht verloren gehen). Änderungen, die die Abwärtskompatibilität verletzen, die Struktur der DB ändern oder Anpassungen der Konfiguration erfordern, werden nur in bedeutenden Versionen vorgeschlagen. Dendrite wird derzeit empfohlen, im monolithischen Modus gemeinsam mit der PostgreSQL-Datenbank zur Erstellung kleiner Ausgangsserver (homeserver) und P2P-Knoten zu verwenden. Die Verwendung von SQLite wird derzeit aufgrund ungelöster Probleme mit der Verarbeitung gleichzeitiger Operationen nicht empfohlen.

Zu den derzeit in Dendrite nicht umgesetzten Funktionen gehören Nachrichtenbestätigungen, Lesebestätigungen, Push-Benachrichtigungen, OpenID, E-Mail-Bindung, serverseitige Suche, Benutzerverzeichnis, Benutzer-Sperrlisten, Gruppen- und Community-Erstellung, Online-Präsenzbewertung, Gäseeingänge und Interaktionen mit Drittanbietern.

Verfügbar sind grundlegende Funktionen für die Nutzung von Chat-Rooms (Erstellung, Einladungen, Authentifizierungsregeln), Methoden zur Föderation von Teilnehmern in Räumen, Synchronisierung von Ereignissen nach der Rückkehr aus dem Offline-Modus, Benutzerkonten, Profile, Statusanzeige, Hochladen und Teilen von Dateien (Media API), Bearbeitung von Nachrichten, ACL, Tag-Bindung und Verwaltung von Gerätelisten sowie Schlüsseln für End-to-End-Verschlüsselung.

Zur Erinnerung: Die Plattform für die Organisation dezentralisierter Kommunikation, Matrix, nutzt HTTPS+JSON als Transportprotokoll mit der Möglichkeit zur Verwendung von WebSockets oder einem Protokoll auf Basis von CoAP+Noise. Das System wird als ein Netzwerk von Servern gebildet, die miteinander interagieren können und sich zu einem gemeinsamen dezentralen Netzwerk zusammenschließen. Nachrichten werden über alle Server, mit denen die Teilnehmer verbunden sind, repliziert. Nachrichten verbreiten sich über die Server ähnlich, wie Commits zwischen Git-Repositories verbreitet werden. Im Falle einer vorübergehenden Serverabschaltung gehen keine Nachrichten verloren, sondern werden den Nutzern nach Wiederherstellung des Serverbetriebs übermittelt. Verschiedene Varianten von Nutzer-IDs werden unterstützt, einschließlich E-Mail, Telefonnummer, Facebook-Konto usw.

Im Netzwerk gibt es keinen einzelnen Ausfall- oder Kontrollpunkt für Nachrichten. Alle Server, die das Gespräch abdecken, sind gleichberechtigt.
Jeder Benutzer kann seinen eigenen Server betreiben und ihn mit dem gemeinsamen Netzwerk verbinden. Es ist möglich, Gateways für die Interaktion von Matrix mit Systemen auf Basis anderer Protokolle zu erstellen, zum Beispiel werden Dienste für die bidirektionale Nachrichtenübertragung in IRC, Facebook, Telegram, Skype, Hangouts, E-Mail, WhatsApp und Slack. Neben der sofortigen Textkommunikation und der Organisation von Chats kann das System auch zum Dateitransfer, zum Versenden von Benachrichtigungen,
zur Organisation von Konferenzen sowie für Sprach- und Videoanrufe verwendet werden. Darüber hinaus werden erweiterte Funktionen wie die Benachrichtigung über Texteingaben, die Anwesenheitsbewertung eines Benutzers online, Lesebestätigungen, Push-Benachrichtigungen, serverseitige Suche, Synchronisierung von Historie und Benutzerstatus unterstützt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster