matrix-org / matrix-org/matrix-spec

Anonymous homeservers (Tor/I2P support): Modifying the federation system

Open
#1,277 9 comments 8 reactions 0 assignees View on GitHub
A-S2S improvement
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

_**Suggestion**
What would you like to see in Matrix? If your idea is vaguely complete enough, we
recommend submitting [an MSC](https://matrix.org/docs/spec/proposals) instead._

To accomplish this, the federation system would need to be modified, we probably also want to do this in a way that the Matrix homeserver doesn't need a Tor/I2P proxy running (because not everyone would be comfortable with that).
In that case, the connection from Tor to Matrix (clearnet) is only possible on reverse (Tor to Matrix clearnet works) (Matrix clearnet to Tor doesn't work).

Possible ideas:
- Using a DHT to hold server information and location (could aid with decentralized accounts? #246 and maybe P2P? #201).
- Making every Matrix homeserver a DHT pair?
- Holding the server information on IPFS.
- Simply have anonymous homeservers connect to already known clearnet ones.

Related non-duplicate issues:
- https://github.com/matrix-org/synapse/issues/7088
- https://github.com/matrix-org/synapse/issues/5455
- https://github.com/matrix-org/synapse/issues/5152

Contributor guide

Open the contributing guide

Research direction

Start by reading the Matrix Server-Server specification and the MSC guidance linked in the issue, then review related issues #7088, #5455, and #5152. Compare the DHT, IPFS, and known-clearnet-server ideas against the stated Tor/I2P connection direction. Done would require a decided approach and a concrete protocol proposal describing the federation changes.

Written by the indexing model from the issue text.

Assessment

Domain
distributed-systems, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.