[messaging] Message order in group chat (attempt at summary)
infinity0 at pwned.gg
Sun Apr 27 10:57:19 PDT 2014
On 27/04/14 13:45, Ben Laurie wrote:
> On 27 April 2014 18:40, Moxie Marlinspike <moxie at thoughtcrime.org> wrote:
>> On 04/27/2014 07:39 AM, Ximin Luo wrote:
>>> I'm not so sure about displaying messages where you haven't yet seen
>>> their parents yet. This violates causality, and the principle of
>>> delivering messages in-order.
>> A fundamental premise of asynchronous messaging is that any message can
>> be delayed hours or days for some or all recipients, or that any message
>> can be lost entirely at any point in time for some or all recipients.
> If it is delayed for all recipients, then causality cannot be violated :-)
> Here's a crazy idea.
> Each client maintains a list of messages it knows each other client
> has seen (because that client has told it so). Every time it sends a
> message to another client, it also sends all messages it has seen that
> it does not know the other client has seen. It also sends a list of
> messages it knows the other client doesn't know it has seen.
Right. One could also give a grace period before resorting to this, assuming that short delays are more likely (and innocent) than long delays.
The general principle is - if you receive a parent which refers to a messages you've not yet received, you *know something is wrong* and can take action, such as asking for a re-send.
There's no need to violate causality in order to deal with this situation - this solution is worse than the original problem, in the ways that I described earlier.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 880 bytes
Desc: OpenPGP digital signature
More information about the Messaging