Making CRDTs Byzantine Fault Tolerant [pdf]

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • yjs

    Shared data types for building collaborative software

  • Yes, we use E2EE CRDTs! They don't have to be centralized because we still get composable updates using YJS (https://github.com/yjs/yjs). This would still help a ton given the p2p nature of updates (malicious or broken clients can cause havoc for documents).

  • bft-crdts

    Byzantine Fault Tolerant CRDT's and other Eventually Consistent Algorithms

  • Really nice to see BFT starting to be taken seriously in CRDT research. I had done some research in this area last year and came to a lot of the same solutions (i.e. BRB protected CRDTs when dealing with VClock based CRDTs):

    https://github.com/davidrusu/bft-crdts

    We ended up moving away from VClock crdts entirely for our work and going with grow-only hash-graph based CRDTs as they have don't need the BRB overhead.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • go-ds-crdt

    A distributed go-datastore implementation using Merkle-CRDTs.

  • The idea of DAG-embedded CRDTs is far from new and was introduced here:

    https://arxiv.org/abs/2004.00107 (I'm among the authors)

    Unfortunately, the verification that the author proposes (not accepting new updates until the dag below is verified) will need a lot of caveats for real world usage.

    Currently we use these CRDTs for a key value database of 40M+ keys in a deployment of ipfs-cluster, which uses https://github.com/ipfs/go-ds-crdt .

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts