The Matrix decentralized communication tool tested

Talk Talk

© Lead Image © SORAPONG CHAIPANYA, 123RF.com

© Lead Image © SORAPONG CHAIPANYA, 123RF.com

Article from Issue 189/2016
Author(s): , Author(s):

One tool to rule all online communication: one tool to find them, one tool to bring them all in, and the Matrix to bind them. An open standard for decentralized communication enters the scene.

In the last 20 years, users have seen a number of communication tools come and go on the Internet. Text-based classics like IRC and ICQ made way for audio and video chatting with Skype, Google Hangouts, and others. If you were in Facebook groups five years ago, like-minded people now meet on WhatsApp, Snapchat, or another mobile messaging application. It's difficult remembering your way around all the apps and programs and remembering who you meet on what channel.

Matrix [1] promises to reorganize online communication. The web-based RTC and HTTP protocol is released under the Apache license and aims to bring all the services together under a single roof: Everyone chats in the style they like but can still reach everyone else. End-to-end encryption and a free choice of clients are just a few of the features the developers are planning. In addition to text, video, and audio communication, the service is looking to provide interfaces for the Internet of Things.

Distributed but Shared

Matrix does not route communication via a central server, nor does it connect the participants' computers directly. Instead, home servers collaborate. They also act as account servers. Each user can be reached via a unique ID on the matrix network. The ID comprises the nickname and the server address, as in @Mela:matrix.org or @hej:matrix.org.

This means that Matrix not only solves the problem of often very ugly nicknames you see on IRC or Skype with system-wide unique usernames, but it also avoids central identity management failures, which are targets primed for denial-of-service attacks.

Distributed home servers also prevent netsplits. The major IRC networks in particular suffer from this temporary breakdown of servers into two or more subnets. The Matrix concept ensures that home servers only receive the traffic of a channel on which users are logged and are actively using the channel. Another advantage of this approach is that it avoids overloading the entire network.

The Matrix ecosystem [2] is already the playground of a number of applications. Although many clients were at the early or late beta stage when this issue went to press, the server situation is not looking as good: Only two of the six projects had left the alpha stage.

However, the Matrix developers are aiming for more than just real-time communication. Their goal is to counteract the fragmentation of the messenger market. Bridges will expand home servers, adding the ability to communicate with other networks and protocols. A text message gateway is in late beta, and bridges for IRC, Slack, and XMPP are still tagged early beta and alpha. No components are currently tagged "stable."

In addition to the Android and iOS clients, our lab team also installed the text-based IRC client WeeChat and integrated a Matrix plug in. We also chatted in the browser-based Vector.im [3]. The functionality and appearance are strongly reminiscent of the good old IRC. Matrix channels have several participants marked with a hashtag, much like IRC channels, and additionally show the name of the home server (e.g., #matrix:matrix.org and #lm:matrix.org).

The clients display a list of available chat rooms. If you want to start a private conversation with another participant, you can open another room on the respective client and invite that participant to join you. Once they have consented, the conversation can begin.

Commands like /join, /nick, /me, /op, /deop, /kick, and /ban also work exactly as on IRC, but Matrix has additional functions for uploading and downloading files, audio and video telephony (some clients), a search function, and a cross-client cache. Each home server not only stores the account information, but also the communication in a history, and synchronizes this data with other home servers and clients. Switching between desktop and mobile devices is thus a seamless process.

Just Talk

Much like Slack [4], the current star of the team communication world, the founder or the user with admin status can make the history of a channel accessible and searchable from the beginning. This means that participants added later can read past discussions. In the settings of the Matrix room, admins define which messages remain in the history (Figure 1). Individual messages about sensitive information can also be deleted selectively with a single mouse click.

Figure 1: Administrators define who can access what part of the channel history in the room settings.

We missed tools for improving the way communication via Matrix is organized. Mechanisms for adding other users to a personal contact list, as in ICQ, Skype, and others, would be nice. Also bookmarks for individual postings and a function for liking or pinning critical messages, as in competitor Slack, are not available yet.

Matrix uses Web RTC for audio and video conferences. Some clients display icons for initiating a phone call in public chat rooms and private conversations. If you click on one of the symbols in a Matrix channel with many visitors, you do not need to worry that you will be calling all the participants at the same time on all devices – a banner message simply indicates that a conference is currently going on in the chat room (Figure 2), and the user can take part in it with a single mouse click. Unlike a private chat, an audio or video call started here specifically addresses the chat partner, who then accepts or rejects at the push of a button.

Figure 2: On a Matrix channel, active phone calls are shown to new participants as a banner at the top.

Phone calls to other Matrix users in our lab on the Matrix.org home servers were more or less reliable between web and Android clients and two browsers using Vector.im (Figure 3). Users with plain text clients are left out in the cold, and the feature has also not yet made its way into the I-OS app. Future versions for iPhone and iPad will be playing catching up here.

Figure 3: Video calls with other Matrix users already work perfectly. (Here, Linux Magazine writer Heike Jurzik talks to Matrix co-founder Amandine Le Pape.)

Another thing we really liked was that users can configure alerts both on the client side and for every channel and every conversation. Everyone can thus decide freely whether their smartphone, tablet, or browser should beep or write messages to the lock screen.

The Matrix concept envisages an open federation of home servers, which means that each user can add their own server to the existing Matrix network. Our lab team followed the instructions at the Matrix GitHub page [5]. We installed the software on Debian 8.3 (Jessie), which worked without problems. Setting up the SSL certificates is somewhat tricky. If they are not valid or are self-signed, some clients refuse authentication. The approach described on the Matrix blog [6], with a certificate from Let's Encrypt, an Nginx web server, and a redirect to port 443, should help.

Although the Matrix team attaches great importance to security, some parts of the system are currently excluded. Communication between home servers is TLS-encrypted, and the chat history is not readily visible. The promised end-to-end encryption for clients will be available shortly according to the FAQs. But the metadata ends up on the home servers without encryption, allowing admins or potential intruders to discover at any time who was talking to whom.

Building Bridges

The open approach, the ability to connect to the Matrix network with any client, and running your own home server on the network – all of this makes the concept very interesting. Whether Matrix can revolutionize online communication not only depends on how user friendly the clients are, but also on how easy it is to set up your own home server. Our lab team is a little concerned that a kind of "diaspora effect" could occur here. The decentralized diaspora social network [7], highly acclaimed as an alternative to Facebook, with a guarantee of absolute control over your own data, never has been easy to install and manage.

Even with Matrix, the majority of users will probably chat via home servers provided by a third party, and Matrix's competitors see the major problems in precisely this. The developers of the Psyc [8] communication tool view the open federation of home servers and their identity management as a problem. It is naive, say the Psyc developers [9], to trust an arbitrary third-party server and its identity information.

It remains to be seen whether other vendors jump on the bandwagon and build bridges to Matrix. Other open standards, such as IRC or XMPP, are not the problem. Google, Facebook, Skype, and others, however, are likely to be keen to keep their users in their own ecosystems. So far, it is the smaller projects that are giving Matrix a chance, including the Freifunk Kiel [10] project, which links a Vector.im interface to the IRC channel and is especially looking forward to the history of past postings, according to the operator.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Processing

    The Java application known as Processing can make a computer artist of a non-programmer. We'll show you how to create moving objects and publish a Flash-style applet.

  • Interview – IRCNow

    IRCNow empowers users and lets them break free from social media giants. Project leader Aaron Lin shares his vision.

  • WS2812 LEDs

    Control a matrix of WS2812 LEDs with the Raspberry Pi.

  • Twisted

    The Twisted framework makes it so easy to create network-aware applications in Python. Twisted speaks all the major Internet protocols, from mail through chat, and it can handle encryption. We’ll show you how to set up a personal web server with Twisted.

  • FOSSPicks

    Graham looks at TerraForge3D, nheko, Navidrome, ddcutil, and much more!

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News