matrix-org / matrix-org/matrix-spec
Peer-to-peer Matrix (SPEC-455)
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
I just realised we don't actually have a spec bug for a possible evolution of Matrix to be p2p. To quote the GSoC suggestion:
"Matrix currently follows a client-server architecture, where the servers federate together. This means that to host your own conversations in Matrix you have to own and maintain a server with a static IP and DNS SRV record etc. This isolates many people from running their own Matrix nodes. An interesting experiment would be to write a homeserver variant (probably in Node.js) which advertises itself via a DHT or similar (e.g. using js-libp2p) and uses WebRTC data channels for p2p synchronisation of message graph data. This could make it much easier to run homeservers - either as a standalone node daemon, or built into a desktop or even web client. Such a server would implement the basic features of today's Matrix C-S API, but obviously break compatibility with today's Matrix S-S API. An extension might be to write a bridge between the two federation protocols."
An extension beyond this could be to then relay the data off onion-routing and pond-style store-and-forward servers in order to protect metadata.
(Imported from https://matrix.org/jira/browse/SPEC-455)
(Reported by @ara4n)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Matrix client-server and server-server architecture described in the issue, along with the proposed Node.js, DHT/js-libp2p, and WebRTC approach. The issue does not name files, tests, or a bounded implementation plan, and it does not define what would count as done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js
- Domain
- distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100