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

 

History

249 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

  • Sub-millisecond Reads — O(1) lookups via B+ tree indexes, no merkle overhead on hot path
  • Cryptographic Auditability — Per-vault blockchain with chain-linked state roots, SHA-256 commitments, tamper-evident history
  • Strong Consistency — Raft consensus ensures permission changes are immediately visible cluster-wide
  • Fault Isolation — Per-vault chains prevent failures from cascading across tenants
  • Horizontal Scaling — Shard groups distribute namespaces across independent Raft clusters

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. Pass one of:

  • 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.

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.

Contributing

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

Documentation

  • Technical White Paper — Start here to understand how Ledger works, see benchmark results, and evaluate whether it fits your use case
  • Technical Design Document — Authoritative specification for contributors; explains the reasoning behind architectural decisions

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

Packages

 
 
 

Contributors 3

  •  
  •  
  •  

Languages