diff --git a/protocols/matrix.md b/protocols/matrix.md index e2cdebe..eddf72f 100644 --- a/protocols/matrix.md +++ b/protocols/matrix.md @@ -2,7 +2,7 @@ Matrix is a protocol for replicating a signed history of JSON objects in realtime across a set of nodes with (optional) end-to-end encryption. -It's designed to support multiple communication cases - Chat, VoIP, IoT, VR/AR, Social etc, but so far effort has been concentrated on providing a federated chat experience with good UX at scale. The public network currently (Feb 2020) has 14.7M known addressable users, with many others in private federations or on servers which don't report stats. Matrix supports multiple clients (most notably [Riot](https://riot.im), the flagship app from the core team), and has bridges to many other chat systems (IRC, Slack, Discord, Telegram etc). +Matrix is designed to support multiple communication cases - Chat, VoIP, IoT, VR/AR, Social etc, but so far effort has been concentrated on providing a federated chat experience with good UX at scale. ### Data Storage/Message Persistance @@ -12,13 +12,13 @@ Matrix messages are stored in per-conversation Merkle DAG data structures, and c Matrix has a federated and a p2p version. -Federated +#### Federated Currently, all messages are sent out full-mesh within a conversation. A node broadcasts in parallel to every other node present in the room. Experimental work on stochastic spanning tree "fan-out" approaches are being researched. Most users in the public federation are concentrated in a single server, although there are many smaller servers as well. -P2p +#### P2p Matrix has released a p2p version that runs client-side over libp2p. @@ -26,13 +26,13 @@ https://fosdem.org/2020/schedule/event/dip_p2p_matrix/ ### Identity -Matrix has a more flexible identity solution than most decentralised protocols - users have a Matrix user ID, but can also use 3rd party IDs. +Matrix has a more flexible identity solution than most decentralized protocols - users have a Matrix user ID, but can also use 3rd party IDs. A matrix user id includes the username along with the user's homeserver. For example: `@bob:matrix.org` -As for 3rd party ids, a Matrix account can link to ids such as email addresses, social accounts, and phone numbers. A globally federated cluster of trusted identity servers verify and replicate the mappings, although this is considered a stopgap solution until a fully decentralised identity solution is adopted. +As for 3rd party ids, a Matrix account can link to ids such as email addresses, social accounts, and phone numbers. A globally federated cluster of trusted identity servers verify and replicate the mappings, although this is considered a stopgap solution until a fully decentralized identity solution is adopted. ### Moderation/Reputation @@ -49,10 +49,6 @@ Most conversation on Matrix takes place through rooms, which people must be invi Features supporting more advanced social functionality are still under research and development, such as this proposal for tracking events related to existing events: [Proposal for Aggregation via Relations](https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md) -### User experience - -Currently the primary client is Riot, a Slack-like chat app. - ### Privacy and Access Control Matrix recently introduced end-to-end encryption by default for private messages. This was on the roadmap since the beginning, because conversations are replicated over every server participating in a room, and there is no guarantee against servers looking into conversations. @@ -68,6 +64,12 @@ Matrix is governed by [The Matrix.org Foundation CIC](https://matrix.org/foundat Matrix can be bridged with IRC, Slack, Discord, Telegram and others. +### Applications + +The public network currently (Feb 2020) has 14.7M known addressable users, with many others in private federations or on servers which don't report stats. + +Matrix supports multiple clients (most notably [Riot](https://riot.im), the flagship app from the core team), and has bridges to many other chat systems (IRC, Slack, Discord, Telegram etc). + ### Scalability Scalability study: https://arxiv.org/pdf/1910.06295.pdf