Tanglesync

What is a tangle?

  • SSB: feeds, single writer data structure
  • Each message is uniquely defined by its hash
  • Linking messages together from different feeds

Example - thread

            
   A     (the root message)
  / \
 B   C   (two concurrent replies)
  \ /
   D     (a message merging those two contexts together)
   |
   E     (the current end-point of the thread)
          
https://github.com/ssbc/ssb-tangle/

Normal sync

  • Sync feeds in full
  • Latest seq per feed
  • Locally query data

Tanglesync

  • Set replication
  • Point to point (A, B)
  • All messages with the root X
  • Different set replication algorithms

Algorithm

  • Both parties agree on sorting
  • Build a tree locally
  • Multiple rounds
  • Exchange fingerprints based on the tree
  • Send the differences

Related problems

  • Git
  • CRDT
  • Set based data

Summary

  • Different way to sync messages
  • Multi-writer scenario
  • Tailered to SSB concepts