A peer-to-peer database protocol
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.
There is no encryption built into the protocol yet.
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.
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:
- Merkle-CRDTs: Merkle-DAGs meet CRDTs
- Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases
The protocol specification can be found in hldb/specs
.
Name | Language |
---|---|
welo | typescript |