WillSearch

GuardianDB: The Rust Implementation of OrbitDB.

A peer-to-peer database for the Decentralized Web.

Architecture and Technology

The architecture of GuardianDB is fully decentralized and built with modern technologies, leveraging the strengths of the Rust programming language:

Security and Performance in Rust

Being written in Rust, GuardianDB benefits from memory safety (preventing common vulnerabilities) and high performance, compiling into optimized machine code without the need for a garbage collector.

Native IPFS

It integrates a native implementation of the IPFS API, enabling direct communication with the IPFS network without the need for an external Go-based node (Kubo).

P2P Communication

It uses libp2p for direct and efficient communication between nodes (peers), including a system of direct channels and PubSub (Publish/Subscribe) for message exchange and data synchronization.

Reactive Event System

It features an event system (EventBus) based on Tokio that enables asynchronous and type-safe communication between the different components of the database.

Synchronization with CRDTs

The core of GuardianDB uses an immutable operation log (OpLog) and a Lamport clock (LamportClock) to ensure the partial chronological ordering of events and the consistent synchronization of data across peers, a fundamental characteristic of CRDTs.

Access Control and Efficient Caching

It provides a flexible access control system that can validate read and write permissions based on the participants’ cryptographic identities. It uses a multi-level caching system, with Sled as the backend, to optimize data access and improve performance.

Main Features

GuardianDB offers different types of “stores” (databases), each suited for a specific use case:

Event Log Store

An immutable log where only new events can be added (append-only). It is ideal for use cases such as audit trails, activity feeds, or any scenario that requires a complete and ordered history of events.

Key-Value Store

A distributed key-value database. It allows put, get, and delete operations, functioning similarly to a dictionary or map.

Document Store

Allows storing documents in JSON format and performing queries on them, similar to databases like MongoDB.

“Guardian DB is evolving quickly. The idea is simple: to be a distributed system that is more logical, cohesive, polished, and robust.”

William Maslonek

Software Engineer