New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decentralize Matrix discovery room #2307

andrevmatos opened this Issue Aug 29, 2018 · 1 comment


None yet
4 participants

andrevmatos commented Aug 29, 2018

Problem Definition

The matrix discovery room isn't used to actually find peers, but instead to trigger any server whose any user joined it to keep track of every other member of this room. This makes the servers know about all the matrix users in the network, allowing its users to listen for events from these users (e.g. presence changes) and also to use the search user directory feature to search for users matching a given ETH address.

Today, this room isn't listened on, but it's "hardcoded" in the config to be on the server (any private deploy can change it with a config option, of course). As these rooms aren't actually listened on, they shouldn't be a spam vector, and therefore it's safe for the users to join a similar room on each available server. That will get rid of this last point of centralization on current transport implementation, as well as open the path for more direct server list keeping, like an on-chain registry.


The users should join a "discovery room" on each available server, so the server can keep track of it for its users.


This comment has been minimized.


ulope commented Sep 7, 2018

In a call with Matthew from Matrix he explained that the solution is even easier:

We don't need to create multiple per-server discovery rooms but instead we simply need to assign a per-server alias to the existing room. That way the room is joinable from all servers but is actually just one room.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment