VT2020-Matrix-Fiche

= Matrix =

[[File:Matrix-logo.png|300px|right|Site Matrix ]

=Description=

Qu'est ce que Matrix ?
Matrix est une norme ouverte pour une communication fédérée, décentralisée et en temps réel sur IP.


 * Il existe un standard ouvert sous la forme de la spécification Matrix
 * De plus, il est fédéré, ce qui signifie qu'il est conçu pour interagir avec d'autres systèmes de communication, et être un standard ouvert signifie qu'il est facile de voir comment interagir avec lui
 * Matrix est décentralisé, ce qui signifie qu'il n'y a pas de point central, n'importe qui peut héberger son propre serveur et avoir le contrôle de ses données contrairement à Facebook, Messenger, Discord ...
 * Enfin il est conçu pour fonctionner en temps réel, ce qui signifie qu'il est idéal pour la création de systèmes qui nécessitent un échange immédiat de données, comme la messagerie instantanée

Comment fonctionne Matrix ?


Chaque utilisateur se connecte à un seul serveur, c'est son serveur domestique. Les utilisateurs peuvent participer à des salles créées sur n'importe quel serveur Matrix puisque chaque serveur se fédère avec d'autres serveurs Matrix. Cela signifie que vous pouvez parler à n'importe qui sur n'importe quel serveur. Cela signifie également que vous pouvez héberger votre propre serveur, ce qui vous permet de contrôler toutes vos données. L'auto-hébergement vous donne également la possibilité de personnaliser votre serveur en fonction de vos besoins, notamment en vous donnant la possibilité de communiquer avec d'autres réseaux de discussion (tels que IRC, WhatsApp, Discord, Messenger, etc.) voir même d'héberger des bots.

Chaque message envoyé dans une salle est synchronisé avec tous les autres serveurs qui participent à cette salle. Si un serveur se déconnecte, toutes les autres personnes présentes dans la salle peuvent continuer à parler. Une fois que ce serveur est de nouveau en ligne, il recevra tous les messages qu'il a manqués pendant qu'il était en panne.

De plus niveau sécurité, les conversations privées peuvent être sécurisées par un cryptage de bout en bout (principe de chiffrement par clé) afin que le serveur n'ait aucune idée de ce dont vous parlez.

Comment l'utiliser ?
Pour commencer à discuter sur Matrix, vous devez vous inscrire sur un serveur Matrix avec un compte utilisateur.

Sur Matrix, un compte utilisateur est associé à un seul serveur, appelé serveur domestique. Par la suite vous avez besoin d'un Client Web tel que Element ou Riot (se sont les deux plus répandus) pour débuter vos conversations. Evidemment, il existe plein d'autres Clients Web et applications qui sont compatibles sur d'autre plateformes comme le Mobile, Web, Terminal et même Nintendo 3DS.

=Serveur Synapse=

Synapse est l'implémentation de référence Matrix d'un serveur domestique écrit par l'équipe de développement principale de Matrix. Il vous permet d'exécuter facilement votre propre serveur domestique et aide généralement à démarrer l'écosystème Matrix.

Un utilisateur se connecte sur un serveur domestique via un client Web au moyen d’un identifiant unique appelé matrix user ID (MXID) qui est de la forme @username:domain.name et d’un mot de passe.

Synapse propose deux moteurs de base de données:


 * PostgreSQL
 * SQLite

Par défaut, Synapse utilise SQLite afin que les performances des échanges soient plus commodes. SQLite n'est recommandé dans Synapse qu'à des fins de test ou pour les serveurs avec des charges de travail légères.



=Bridge=



Une idée importante dans Matrix est l' interopérabilité. Cela signifie que Matrix est ouvert à l'échange de données et de messages avec d'autres platesformes en utilisant un standard ouvert.

Selon la plateforme et le service nécessaire, les échanges se font de manière differentes :


 * Salles de portail : elles se basent sur les noms d'alias de salle. De cette manière, les utilisateurs de Matrix peuvent rejoindre de manière transparente les canaux IRC. Les salles de portail sont fréquemment gérées par le côté du réseau distant de la salle.


 * Salles plombées : ces salles sont «plombées» dans une ou plusieurs pièces distantes spécifiques en configurant un pont (qui peut être géré par n'importe qui). Le contrôle d'accès pour les utilisateurs de Matrix est nécessairement géré par le côté Matrix de la salle. Ceci est utile pour utiliser Matrix pour relier différentes communautés.


 * Style Bridgebot: dans ce cas, les messages sont véhiculés dans les deux sens par un bot résidant sur la plateforme donnée. Il s'agit d'une expérience sous-optimale car les métadonnées sont perdues. Par exemple, tous les messages peuvent être envoyés par le même bot, mais avec le texte du message précédé du nom de l'expéditeur d'origine.


 * Puppeting : résout les problèmes de pontage basé sur un Bot qu'on le nomme "marionnette" (autrement dit contrôler un utilisateur de l'autre côté du pont). Cela signifie que pour les utilisateurs natifs, ils voient les messages comme étant envoyés par le bon expéditeur. La double marionnette signifie que cela se fait dans les deux sens du pont. C'est la manière la plus préférée d'implémenter un pont Matrix.

=Démonsatration=

Vous avez la possibilité d'avoir une démonstration au lien suivant : VT2020-Matrix-Demonstration

=Source=


 * 1) Site officiel de Matrix
 * 2) Installation Serveur Synapse
 * 3) Annexe Installation Serveur Synapse
 * 4) Git Serveur Synapse
 * 5) Présentation du client Web : Riot
 * 6) Site offciel du client Web Element
 * 7) Liste des Clients Webs

= Veille Technologique 2020 =
 * Année : VT2020
 * Sujet : Matrix
 * Slides : [[Media:VT2020-Matrix-Presentation.pdf|Slides]]
 * Auteurs : Gaëtan Rival