Skip to content

hldb/hldb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

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

About

A peer-to-peer database protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published