Skip to content

Thread sync with gossip-about-gossip and Cordial Dissemination #456

@andrewzhurov

Description

@andrewzhurov

Spec defines Threads, a kind of context of communication, within which members exchange messages, where each member maintains a self-parent chain of his messages (meaning messages of a member form a chain / sequence).

Spec further specifies Advanced Sequencing as a protocol of how members can sync what they know with others.

In it, a member maintains a self-parent chain by assigning to his messages an index of a self-parent chain.
Then he can construct received_orders message as a kind of Version Vector. But since causal broadcast is not assumed, some self-parent messages of the stated known tips may be missing. This can be expressed by listing them as gaps.

Previously the approach of syncing peers "off-chain" at network layer via Reliable/Atomic/Causal Broadcasts received a lot of attention.
However, it suffers from message complexity.
Recent works recognize the value of having network layer abstracted away, captured as a DAG of communication. I.e., let processes not simply gossip, but gossip about gossip.
I first seen this idea in Hashgraph and then in more recent Cordial Miners.
They are consensus algorithms that give total order as a pure function of message, total_order(message), but that's beside interest here.
What's interesting is how easy it becomes for members to sync with each other when they know what others knew. So they can send the missing messages. (Cordial Dissemination)

I am curious whether this technique of having a Hashgraph/Blocklace data model of messages may be advantageous for DIDComm's Threads.

@dhh1128

P.s., thanks for the effort put in DIDComm, fascinating tech!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions