[messaging] Partial order group chat with partial history visibility

Ximin Luo infinity0 at pwned.gg
Wed May 25 05:26:00 PDT 2016

Jeff Burdges:
> 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".


GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE

More information about the Messaging mailing list