[messaging] Partial order group chat with partial history visibility
infinity0 at pwned.gg
Wed May 25 05:26:00 PDT 2016
> On Wed, 2016-05-25 at 12:25 +0200, Ximin Luo wrote:
>> Ximin Luo:
>>> Jeff Burdges:
>>>> Is there even a global partial order G for typical DVCs for example?
>>>> It's just the local ones that actually exist on disk, right?
>>> Yes, that is G the "full history".
>> One thing to note here is that I don't mean that everyone *has already received G*. What I mean is the union of all events that everyone has committed to their local copies.
> I have not yet understood the situation :
> At each participant u, there is a local partial order G_u whose nodes
> are labeled by sets U[v] are participants and whose edges are add and
> remove events.
The edges are not "add" and "remove" events; you're adding this extra "patch-like" interpretation on the model that I wrote down. This interpretation is not useful, one should only look at the model.
> We've some way to view these as part of a global partial order G, yes?
> How does that work?
Every message-event v embeds references to its predecessors, similar to how every message-event v embeds U[v].
When reading a message-event v, if a particular user u cannot read/decrypt one of its predecessors p, they just ignore the edge (p <- v), and don't treat it as part of G_u. There's details to be worked out for security implications, but they can be worked out and it's not relevant to the model.
> We can transmit the sets U[v] with each message like you say, but those
> sets are only labels, not the nodes themselves. And they can get
> repeated in strange ways.
The "contents" of each node uniquely define the node's identity, via consistent hashing. I'm not sure what you mean by "repeated in strange ways".
More information about the Messaging