Sortie de Dendrite 0.1.0, le serveur de communication avec implémentation du protocole Matrix

PubliĂ© lancement du serveur Matrix Dendrite 0.1.0, qui a marquĂ© le passage du dĂ©veloppement Ă  la phase de bĂȘta-test. Dendrite est dĂ©veloppĂ© par l'Ă©quipe principale des dĂ©veloppeurs de la plateforme de communication dĂ©centralisĂ©e Matrix et est positionnĂ© comme une rĂ©alisation de deuxiĂšme gĂ©nĂ©ration des composants serveurs Matrix. Contrairement au serveur de rĂ©fĂ©rence Synapse, Ă©crit en Python, le code de Dendrite Ă©volue est Ă©crit en Go. Les deux rĂ©alisations officielles sont distribuĂ©es sous la licence Apache 2.0. Dans le cadre du projet Ruma , une variante du serveur Matrix en Rust est dĂ©veloppĂ©e sĂ©parĂ©ment, qui est distribuĂ© sous licence MIT.

Le nouveau serveur vise Ă  atteindre une grande efficacitĂ©, fiabilitĂ© et Ă©volutivitĂ©. Dendrite surpasse Synapse en termes de performance, nĂ©cessite beaucoup moins de mĂ©moire pour son fonctionnement et peut Ă©voluer grĂące Ă  un Ă©quilibrage de charge sur plusieurs nƓuds. L'architecture de Dendrite prend en charge l'Ă©volutivitĂ© horizontale et est basĂ©e sur la sĂ©paration des gestionnaires sous forme de microservices, chaque instance de microservice ayant ses propres tables dans la base de donnĂ©es. La gestion des requĂȘtes aux microservices est assurĂ©e par un rĂ©partiteur de charge. Pour le parallĂ©lisme des opĂ©rations dans le code, des threads (go routines) sont utilisĂ©s, permettant d'exploiter les ressources de tous les cƓurs CPU sans sĂ©paration en processus distincts.

Sortie de Dendrite 0.1.0, le serveur de communication avec implémentation du protocole Matrix

Dendrite prend en charge le fonctionnement en deux modes — monolithique et multi-composants (polylith). En mode monolithique, tous les microservices sont regroupĂ©s dans un seul fichier exĂ©cutable, s'exĂ©cutent dans un mĂȘme processus et interagissent directement entre eux. En mode multi-composants (cluster), les microservices peuvent ĂȘtre lancĂ©s sĂ©parĂ©ment, y compris rĂ©partis sur diffĂ©rents nƓuds. L'interaction des composants en
mode multi-composants se fait via une API HTTP interne et une plateforme Apache Kafka.

Le dĂ©veloppement est basĂ© sur les spĂ©cifications du protocole Matrix et utilise deux ensembles de tests - communs avec les tests de Synapse sytest et un nouvel ensemble Complement. À ce stade de dĂ©veloppement, Dendrite rĂ©ussit Ă  passer 56 % des tests Client-Server API et 77 % des tests Federation API, avec une couverture fonctionnelle estimĂ©e Ă  70 % pour l'API Client-Server et 95 % pour l'API Federation.

La phase de bĂȘta-test indique que Dendrite est prĂȘt pour un dĂ©ploiement initial et pour passer Ă  un dĂ©veloppement avec des versions publiĂ©es de maniĂšre pĂ©riodique. Entre les versions, la mise Ă  jour du schĂ©ma de stockage de donnĂ©es dans la base de donnĂ©es sera assurĂ©e (contrairement Ă  l'installation de coupes Ă  partir du dĂ©pĂŽt, le contenu de la base de donnĂ©es ne sera pas perdu aprĂšs la mise Ă  jour). Les modifications qui compromettent la rĂ©trocompatibilitĂ©, changent la structure de la base de donnĂ©es ou nĂ©cessitent une modification de la configuration, ne seront proposĂ©es que dans des versions significatives. Dendrite est actuellement recommandĂ© pour une utilisation en mode monolithique conjointement avec le SGBD PostgreSQL pour crĂ©er de petits serveurs d'origine (homeservers) et des nƓuds P2P. L'utilisation de SQLite n'est pas encore recommandĂ©e en raison de problĂšmes non rĂ©solus concernant le traitement des opĂ©rations simultanĂ©es.

Parmi les fonctionnalitĂ©s non encore mises en Ɠuvre dans Dendrite, on note la confirmation de rĂ©ception des messages, les indicateurs de lecture, les notifications push, OpenID, l'association Ă  un email, la recherche cĂŽtĂ© serveur, le rĂ©pertoire des utilisateurs, les listes d'ignorĂ©s, la crĂ©ation de groupes et de communautĂ©s, l'Ă©valuation de la prĂ©sence des utilisateurs en ligne, les accĂšs invitĂ©s, l'interaction avec des rĂ©seaux tiers.

La fonctionnalité de base pour gérer les salles de chat est disponible (création, invitations, rÚgles d'authentification), les outils de fédération des participants dans les salles, la synchronisation des événements aprÚs un retour en ligne, les comptes, les profils, l'indication de la saisie, le téléchargement et l'envoi de fichiers (API Media), l'édition des messages, les listes de contrÎle d'accÚs (ACL), l'association des balises et la gestion des listes de dispositifs et de clés pour le chiffrement de bout en bout.

Rappelons que la plateforme pour l'organisation de communications dĂ©centralisĂ©es Matrix utilise HTTPS+JSON comme moyen de transport avec la possibilitĂ© d'utiliser WebSockets ou un protocole basĂ© sur CoAP+Noise. Le systĂšme est formĂ© comme une confĂ©dĂ©ration de serveurs qui peuvent interagir les uns avec les autres et s'unir en un rĂ©seau dĂ©centralisĂ© commun. Les messages sont rĂ©pliquĂ©s sur tous les serveurs auxquels les participants au message sont connectĂ©s. Les messages se propagent entre les serveurs de la mĂȘme maniĂšre que les commits se propagent entre les dĂ©pĂŽts Git. En cas de dĂ©connexion temporaire d'un serveur, les messages ne sont pas perdus mais sont transmis aux utilisateurs une fois que le serveur reprend son activitĂ©. Diverses options d'identification des utilisateurs sont prises en charge, y compris l'email, le numĂ©ro de tĂ©lĂ©phone, le compte Facebook, etc.

Le réseau ne possÚde pas de point unique de défaillance ou de contrÎle sur les messages. Tous les serveurs concernés par la discussion sont égaux entre eux.
Tout utilisateur peut lancer son propre serveur et le connecter au rĂ©seau commun. La crĂ©ation de passerelles pour l'interaction de Matrix avec des systĂšmes basĂ©s sur d'autres protocoles, par exemple, prĂ©parĂ©s services pour l'envoi bidirectionnel de messages sur IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp et Slack. En plus de l'Ă©change instantanĂ© de messages texte et de l'organisation de discussions de groupe, le systĂšme peut ĂȘtre utilisĂ© pour le transfert de fichiers, l'envoi de notifications,
l'organisation de téléconférences, la réalisation d'appels vocaux et vidéo. Des fonctionnalités avancées telles que la notification de la saisie de texte, l'indication de la présence de l'utilisateur en ligne, la confirmation de lecture, les notifications push, la recherche cÎté serveur, et la synchronisation de l'historique et de l'état des clients sont également prises en charge.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster