Discussions and Planning about getting CRDT implementation on top of IPFS & libp2p
CRDT, or Conflict-Free Replicated Data Types, is a type of specially-designed data structure used to achieve strong eventual consistency (SEC) and monotonicity (absence of rollbacks).
- Previous discussions on ipfs/notes
It may be useful to be familiar with these concepts in order to be able to understand some of the literature:
For a great explanation of these concepts plus what is a "Monotonic Join Semilattice", take a look at this great article:
- Conflict-free replicated data types
- A comprehensive study of Convergent and Commutative Replicated Data Types
- Merging OT and CRDT Algorithms
- Delta State Replicated Data Types
- CRDTs: Making δ-CRDTs Delta-Based
- Key-CRDT Stores
- TRVE Data: Placing a bit less trust in the cloud
- LSEQ: an Adaptive Structure for Sequences in Distributed Collaborative Editing
- A Conflict-Free Replicated JSON Datatype
- OpSets: Sequential Specifications for Replicated Datatypes
- Snapdoc: Authenticated snapshots with history privacy in peer-to-peer collaborative editing
- Access Control for Weakly Consistent Data Stores
- ACGreGate: A Framework for Practical Access Control for Applications using Weakly Consistent Databases
- RedisConf18: CRDTs and Redis—From Sequential to Concurrent Executions by Carlos Baquero
- QCon London 2018: CRDTs and the Quest for Distributed Consistency by Martin Kleppmann
- "CRDTs Illustrated" by Arnout Engelen
- Coding CRDT
- Dmitry Ivanov & Nami Naserazad - Practical Demystification of CRDT (Lambda Days 2016)
- ElixirConf 2015 - CRDT: Datatype for the Apocalypse by Alexander Songe
- GOTO 2016 • Conflict Resolution for Eventual Consistency • Martin Kleppmann
- CRDTs in IPFS
- Journal Club - 2018 06 13 CRDT JSON Datatype, by Gonçalo Pestana
- CRDTs For Fun and Profit
- CRDT Tutorial for Beginners
- Conflict-Free Replicated Data Types (CRDTs), An Offline Camp passion talk
- CRDT Notes by Paul Frazee
- Towards a unified theory of Operational Transformation and CRDT by Raph Levien
- A simple approach to building a real-time collaborative text editor
- Data Laced with History: Causal Trees & Operational CRDTs
- http://y-js.org/
- http://swarmdb.net/
- http://gun.js.org/enterprise/
- http://scuttlebot.io/
- https://github.com/mafintosh/hyperlog
- https://github.com/orbitdb
- https://github.com/jboner/akka-crdt
- https://github.com/ipfs-shipyard/peer-crdt and https://github.com/ipfs-shipyard/peer-crdt-ipfs
- Yjs through y-ipfs-connector
- ipfs-log, append-only log CRDT used in OrbitDB
- peer-crdt and peer-crdt-ipfs
There is an IPFS Glossary, a work in progress, which should have definitions for terms used in CRDT. If you are consistently running into terms that you do not know the meaning of, please open an issue on that repository and we can work on a definition that will help you (and others!) going forward.