Open main menu

Linux and Unix Users Group at Virginia Teck Wiki β

Matrix

Matrix is a fairly modern FLOSS federated chat protocol.

The fundamental structure of the Matrix network depends on the concept of a homeserver. Users sign up on one homeserver, and can chat to any room or user on any other federated homeserver.

Use require registration -- "guest" accounts have historically been implemented, but due to protocol limitations they are essentially throwaway "real" accounts, and suffer from the negative consequences of this below.

A "room" is the equivalent of an IRC channel.

A "Space" is the semantic equivalent to a Discord Server or Slack Workspace. Confusingly, a user doesn't need to be in a Space to chat in one of the rooms within. On top of this, rooms don't need to be contained within a Space.

Contents

VTLUUG Matrix

The LUUG hosts a Synapse Matrix homeserver at matrix.vtluug.org, and an Element client/frontend at element.vtluug.org

Relevant addresses:

  • #vtluug:matrix.vtluug.org
    • this is the VTLUUG Space
  • #vtluug-g:matrix.vtluug.org
    • the main channel, bridged to #vtluug on IRC

The registration token for the homeserver is 'gohokies'.

Babby's Guide to Using Matrix

This is a (pictoral!) step-by-step guide to registering with our homeserver and joining #vtluug-g:matrix.org using our element instance.

The trickiest part is registration, which uses the reg token 'gohokies'.

First, visit element.vtluug.org.

 

Issues with the Matrix Protocol

// from #vtluug. many of the issues in the article have since been mitigated or resolved
2024-03-02 16:40:39     Caitlin 04:08   cynic   this is re: setting up a matrix homeserver
2024-03-02 16:40:43     Caitlin strong advice: don't bother :p
2024-03-02 16:41:23     Caitlin https://telegra.ph/why-not-matrix-08-07
2024-03-02 16:41:25     +Wadsworth      [ why not matrix? – Telegraph ]

There are several built-in issues with Matrix:

  • The federation works by updating other servers with the shared event state, which takes the form of an append-only Directed Acyclic Graph. As a result, nothing is ever truly deleted from your state: even as you prune old accounts, they take up space and compute time in your graph
  • The only way, in fact, to clean up a room's federation graph is to re-create it
  • Backlogs can be forged by the homeserver
  • Element can be very slow at times, especially if there's a lot of state to sync
  • It's not glorious IRC
  • The IRC bridges suck
    • Most of them create fake Matrix users to puppet, which (as discussed above) permanently slows down processing of the room

Most of these are irrelevant to our purposes, however, given that we are bridging with IRC: a protocol with no backlogs and easily forged history. We don't have the activity for performance issues to really show themselves, either.