Skip to content

InferaDB ledger — persistent storage layer with decentralized blockchain for cryptographically verifiable auditing

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

inferadb/ledger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

InferaDB Logo

InferaDB Ledger

Discord License CI

Blockchain storage for cryptographically verifiable authorization.

Important

Under active development. Not production-ready.

InferaDB Ledger is a distributed blockchain database optimized for authorization workloads. It commits every state change cryptographically, replicates via Raft consensus, and lets clients verify independently. Ledger is the persistent storage layer used by the InferaDB Engine and InferaDB Control.

Features

  • Cryptographic Verification — Per-vault blockchain with chain-linked state roots, Merkle proofs, SHA-256 commitments
  • Raft Consensus — Strong consistency, automatic leader election, deterministic state recovery
  • Performance — Sub-millisecond reads, <50ms p99 writes, bucket-based O(k) state roots, batched transactions
  • Multi-Tenancy — Namespace isolation, multiple vaults per namespace, shard groups for scaling
  • Storage — Embedded ACID database, hybrid K/V + merkle architecture, tiered snapshots

Installation

Configuration

CLI Purpose Default
--listen Bind address for gRPC API 127.0.0.1:50051
--data Persistent storage (logs, state, snapshots) (ephemeral)
--single Development or single-server deployment (details)
--join Add this server to an existing cluster (details)
--cluster Start a new N-node cluster (details) 3
--peers How to find other nodes: DNS domain or file path (disabled)

See Configuration Reference for environment variables and all options including metrics, batching, and tuning.

Quick Start

Development or single-server deployment:

inferadb-ledger --data /var/lib/ledger --single

Production cluster (run on each of 3 nodes):

inferadb-ledger --data /var/lib/ledger --cluster 3 --peers ledger.example.com

For clusters, --peers tells each node how to find the others. The format is auto-detected:

  • DNS domain (e.g., ledger.example.com) — looks up A records
  • File path (e.g., /var/lib/ledger/peers.json) — reads addresses from JSON

See the deployment guide for multi-node setup, Kubernetes, adding/removing nodes, backup, and recovery.

Development

Prerequisites

  • Rust 1.92+
  • mise for synchronized development tooling
  • just for convenient development commands

Build and Test

git clone https://github.com/inferadb/ledger.git
cd ledger

# Install development tools
mise trust && mise install

# Build
just build

# Run tests
just test

Design

See DESIGN.md for details on block structure, state root computation, ID generation, historical reads, multi-vault isolation, and shard group scaling.

Community

Join us on Discord for questions and discussions.

License

Dual-licensed under MIT or Apache 2.0.

About

InferaDB ledger — persistent storage layer with decentralized blockchain for cryptographically verifiable auditing

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages