Merkle-CRDTs: Merkle-DAGs meet CRDTs

Hector Sanjuan, Samuli Poyhtari, Pedro Teixeira, Ioannis Psaras
3/31/2020
cs.NI

Official code: orbitdb/orbitdb (8,823 stars, MIT, last commit 2026-05-14). 1 more implementation below.

Abstract

We study Merkle-DAGs as a transport and persistence layer for Conflict-Free Replicated Data Types (CRDTs), coining the term Merkle-CRDTs and providing an overview of the different concepts, properties, advantages and limitations involved. We show how Merkle-DAGs can act as logical clocks giving Merkle-CRDTs the potential to greatly simplify the design and implementation of convergent data types in systems with weak messaging layer guarantees and a very large number of replicas. Merkle-CRDTs can leverage highly scalable distributed technologies like DHTs and PubSub algorithms running underneath to take advantage of the security and de-duplication properties of content-addressing. Examples of such content-oriented systems could include peer-to-peer content exchange and synchronisation applications between opportunistically connected mobile devices, IoT devices or user applications running in a web browser.

View on arXivView PDF

Code Implementations(2)

orbitdb/orbitdbOfficial100%
MIT

Peer-to-Peer Databases for the Decentralized Web

8,823593HTML, MakefileDec 26, 20155 months agoMIT
crdtdatabasedecentralizeddistributedipfs+4 more
ipfs/go-ds-crdtOfficial100%

A distributed go-datastore implementation using Merkle-CRDTs.

49060GoFeb 22, 20192 weeks agoNOASSERTION

Similar Papers

Cite this paper

@article{sanjuan2020merklecrdts,
  title  = {Merkle-CRDTs: Merkle-DAGs meet CRDTs},
  author = {Hector Sanjuan and Samuli Poyhtari and Pedro Teixeira and Ioannis Psaras},
  year   = {2020},
  eprint = {2004.00107},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2004.00107}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2004.00107.svg)](https://codeofpaper.com/paper/2004.00107)

Discussion