Enter the Matrix: Communications Reloaded
Hubert Chathi
KWLUG — November 4, 2019
Communications protocol
- federated (like email)
- users connect to their server ("homeserver")
- servers communicate with each other
- real-time
- persisted history
- JSON data over HTTP (as a baseline)
Decentralized
- federated (like email)
- users connect to their server ("homeserver")
- servers communicate with each other
- Matrix IDs look like
@user:example.com
- rooms are shared between servers that have users in them
- if any server goes down (even the one that created the room), everyone else
can still talk
Open standard
- use whatever client you want
- Riot, Nheko, Quaternion, Spectral, Fractal, weechat plugin, Miitrix, bashtrix
- write bots in (almost) any language
- contribute to the spec
- features appear slower than centralized services, but more freedom
Bridges to other networks
- IRC, XMPP, Gitter, Slack, Hangouts, Discord, Telegram
- How the bridge works depends on what the other network allows
- https://matrix.org/bridges
End to end encryption
- uses Signal's Double Ratchet, plus another layer to make it more efficient
- audited by the NCC Group
- not many clients support it, but can use a proxy
Can be self-hosted
- homeserver: synapse
- .deb packages
- docker, Kubernetes
- ansible playbook
- needs a lot of memory/disk if you join large rooms, but needs less for
small groups
- use PostgreSQL for any production deployment (SQLite is only for testing)
The future of Matrix
- communities done right
- portable accounts
- easier end-to-end encryption, and enabling it by default
Join the Matrix Revolution
- pick a server and create an account
- join a room
- e.g.
#freenode_kwlug:matrix.org
- or chat with someone