Git Product home page Git Product logo

HLDB

A peer-to-peer database protocol

Summary

HLDB can be used to build local-first applications. It is best suited for social/collaborative applications that do not require consensus.

Each peer has their own copy of the database called a replica. The peer's local replica is used as the source of truth. Updated remote replicas are merge with the local replica to see the new state.

In this way, the applications are edge-computed by the participating peers. Applications designed this way give users more control with potential to make large scale database breaches a thing of the past.

Encryption?

There is no encryption built into the protocol yet.

Access Control

Currently only write access can be controlled and is not able to be updated for now. Access is controlled and enforced by correct peers on their own replicas.

Papers

At the core of the database replica is a Merkle-CRDT. This type of CRDT satisfies BEC, byzantine eventual consistency. This property ensures SEC and that any number of faulty replicas cannot affect correct ones.

These are two papers the foundation of the protocol are built on:

  1. Merkle-CRDTs: Merkle-DAGs meet CRDTs
  2. Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases

Specification

The protocol specification can be found in hldb/specs.

Implementations

Name Language
welo typescript

HLDB's Projects

hldb icon hldb

A peer-to-peer database protocol

specs icon specs

HLDB protocol specifications

todomvc icon todomvc

collaborative todomvc built with welo

welo icon welo

peer-to-peer, collaborative states using Merkle-CRDTs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.