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.
- 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
| 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.
Development or single-server deployment:
inferadb-ledger --data /var/lib/ledger --singleProduction cluster (run on each of 3 nodes):
inferadb-ledger --data /var/lib/ledger --cluster 3 --peers ledger.example.comFor 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.
git clone https://github.com/inferadb/ledger.git
cd ledger
# Install development tools
mise trust && mise install
# Build
just build
# Run tests
just testSee DESIGN.md for details on block structure, state root computation, ID generation, historical reads, multi-vault isolation, and shard group scaling.
Join us on Discord for questions and discussions.
Dual-licensed under MIT or Apache 2.0.
