!GsmxjHfeAYLsTEQmjS:nixos.org

NixOS Matrix Discussion

571 Members
Discuss your proposals for the Matrix space here, before suggesting them in #matrix-suggestions:nixos.org162 Servers

Load older messages


SenderMessageTime
16 Jul 2025
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @k900:0upti.me
Because you need to talk to another server to join a room
* let's say the newly-joined homeserver can talk to all homeservers including B and matrix.org (both blocked by A) except for A which is down forever
20:19:55
@k900:0upti.meK900Like fundamentally Matrix room state is not consensus, it's CRDT20:21:49
@k900:0upti.meK900So different participants seeing different states is expected20:22:02
@k900:0upti.meK900And ideally everything gets reconciled in the end20:22:17
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @k900:0upti.me
Like fundamentally Matrix room state is not consensus, it's CRDT
right, it makes sense, but practically it's... unproductive?
20:22:37
@k900:0upti.meK900It is20:23:44
@zhaofeng:zhaofeng.liZhaofeng Liany participating homeserver can become load-bearing and make the room unusable (for many common use cases)20:24:35
@k900:0upti.meK900 I don't think there's a solution for achieving this that is actually good 20:24:57
@k900:0upti.meK900Any sort of consensus algorithm is susceptible to 51% attacks20:25:16
@k900:0upti.meK900And CRDTs are susceptible to splits20:25:28
@magic_rb:matrix.redalder.orgmagic_rb51% is a fun one, ive long been fascinates by distributed systems, but any system you come up with which is based on consensus can be taken over by the 51% thing20:30:40
@k900:0upti.meK900The only thing I can think of is doing some kind of roughtime thing20:31:15
@magic_rb:matrix.redalder.orgmagic_rbRoughtime?20:31:34
@k900:0upti.meK900Where you have an external trusted timing oracle20:31:34
@k900:0upti.meK900 Or five 20:31:39
@magic_rb:matrix.redalder.orgmagic_rb"Trusted" and "distributed" dont go together :P20:31:59
@k900:0upti.meK900 But that's arguably a single point of failure 20:32:00
@magic_rb:matrix.redalder.orgmagic_rb(So is matrix.org)20:32:12
@k900:0upti.meK900
In reply to @magic_rb:matrix.redalder.org
Roughtime?
https://roughtime.googlesource.com/roughtime
20:32:13
@magic_rb:matrix.redalder.orgmagic_rbOh nice, didnt know rhat20:33:51
@k900:0upti.meK900But you still need to agree on the set of roughtime servers to trust20:34:32
@k900:0upti.meK900 Or include a giant pile of receipts in every state event just in case someone in the federation trusts that particular server 20:35:21
@magic_rb:matrix.redalder.orgmagic_rbDistributed systems are hard :(20:38:06
@c-x-berger:boiler.socialc-x-bergerhttp://scholar.harvard.edu/files/mickens/files/thesaddestmoment.pdf20:38:22
@c-x-berger:boiler.socialc-x-berger* for further reading http://scholar.harvard.edu/files/mickens/files/thesaddestmoment.pdf20:38:37
@emilazy:matrix.orgemilyhttps://developers.cloudflare.com/time-services/roughtime/ fwiw20:55:30
@emilazy:matrix.orgemilycloudflare kinda adopted the protocol from google at this point20:55:43
@emilazy:matrix.orgemilythey do run a server20:55:46
@zhaofeng:zhaofeng.liZhaofeng Li
In reply to @k900:0upti.me
But you still need to agree on the set of roughtime servers to trust
So the answer is still some level of centralization then. Maybe this can be done on the room-level, where the room creator decides on a set of homeservers that maintain the canonical room state
21:03:10
@charles:computer.surgeryCharlesthat is hilarious, thank you for sharing23:22:38

Show newer messages


Back to Room ListRoom Version: 6