[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".
X
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
git://github.com/infinity0/pubkeys.git
More information about the Messaging
mailing list