txpipe/dolos

Cardano Data Node

Rust

137

1,171 commits

updated Sep 23, 2026

See the code

README

Dolos Logo

A Cardano Data Node

License: Apache-2.0 CI Status Documentation



[!TIP] Looking for detailed guides and tutorials? The complete user guide for Dolos is available at docs.txpipe.io/dolos.

What is Dolos?

Cardano nodes traditionally assume one of two roles: block producer or relay. Dolos introduces a third role: the data node — optimized for keeping an updated ledger and responding to queries while requiring a fraction of the resources.

Dolos connects directly to the Cardano network using Ouroboros Node-to-Node (N2N) mini-protocols (via Pallas). It relies on honest upstream peers rather than performing full consensus validation, enabling significant resource savings.

Why Dolos?

  • Low resource footprint — Runs with a small fraction of the memory and CPU required by a traditional Cardano node
  • Rich API surface — Multiple protocols to match your existing stack: REST, gRPC, HTTP, JSON-RPC, and Ouroboros
  • Flexible storage mode — Choose your data retention: ledger-only, sliding window, or full archive
  • Full multi-era support — Handles all Cardano eras from Byron through Conway, including full governance support (DReps, proposals, voting)

Flexibility

Choose your storage profile:

ProfileDescriptionBest For
Ledger-onlyCurrent state only (UTxO set, pools, protocol params) — minimal diskServices needing only current ledger state
Sliding historyConfigurable retention window for recent dataMost dApps that need recent history
Full archiveComplete chain history from genesisExplorers, analytics, archival

Choose your API surface:

APIProtocolBest For
MiniBFREST (Blockfrost-compatible)Existing Blockfrost integrations, wallets, SDKs
MiniKupoHTTP (Kupo-compatible)Pattern-based UTxO matching, chain indexing
UTxO RPCgRPC / gRPC-WebHigh-performance streaming, browser clients
TRPJSON-RPC (Tx3)Transaction building with Tx3 framework
OuroborosNode-to-Clientcardano-cli compatibility, Ogmios workflows

Features

Data Capabilities

  • Full historical reward logs — Complete reward distribution calculations and epoch state management
  • Stake distribution snapshots — Historical stake snapshots and epoch boundary logic
  • Pool registry & metadata — Pool registration, retirement handling, and delegator tracking
  • Asset registry — Token and NFT metadata tracking with CIP-25 support
  • Script indexing — Support of search / retrieval of scripts / datums by hash
  • Governance data — DRep registration, proposals, and voting state (Conway era)

Developer Experience

  • Mempool-aware transaction submit — Tracks pending, inflight, and finalized UTxO states, enabling transaction chaining workflows
  • Local devnet mode — Ephemeral single-node network via for offline development
  • Fast Mithril bootstrap — Sync mainnet from Mithril snapshot in under 20 hours
  • Dolos snapshots — Export and load node state in minutes for rapid deployment
  • Multi-platform binaries — Native packages for macOS (Apple Silicon), Linux (ARM64/x64), Windows x64, plus Docker images

Operations & Observability

  • Purpose-built storage — Fjall LSM trees for state and archive data, with a Redb WAL for crash recovery
  • OpenTelemetry integration — Distributed tracing with OTLP export
  • Prometheus metrics — Health and performance monitoring endpoints
  • Rust implementation — Memory safety, high performance, and small binary size

Architecture

Dolos follows a modular, layered architecture:

  • Core abstractions (dolos-core) — Storage traits (State, Archive, WAL), entity-delta system, and batch processing pipeline
  • Cardano logic (dolos-cardano) — Era-specific block processing, validation, reward calculation, and UTxO delta computation
  • Storage backends — Fjall state/archive stores, a Redb WAL, and builtin in-memory stores for ephemeral nodes and tests
  • Service layer — gRPC, REST, and Ouroboros protocol servers

Data is organized into three storage layers: State (current ledger and live-UTxO tags), Archive (historical blocks and their lookup indexes), and WAL (crash recovery). State mutations use an entity-delta pattern enabling efficient rollbacks without full snapshots.

Quick Start

We highly recommend following the quick start guide on our documentation site for detailed step-by-step instructions.

# macOS
brew install txpipe/tap/dolos

# Linux
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/txpipe/dolos/releases/latest/download/dolos-installer.sh | sh

# Windows (PowerShell)
powershell -c "irm https://github.com/txpipe/dolos/releases/latest/download/dolos-installer.ps1 | iex"

# Docker
docker run ghcr.io/txpipe/dolos:latest

# Node
npm install @txpipe/dolos

Once installed:

dolos init       # Interactive configuration and bootstrapping

📖 Full documentation: https://docs.txpipe.io/dolos

Contributing

PRs are welcome! Please ensure your changes pass CI checks.

See CONTRIBUTING.md for guidelines.

License

Dolos is licensed under the Apache License 2.0. See LICENSE for details.

Contributors

(top 30 of 38)

scarmuega

874 commits

gonzalezzfelipe

134 commits

dependabot[bot]

56 commits

michalrus

19 commits

Languages

Rust

100.0%

txpipe/dolos

Cardano Data Node

Rust

137

1,171 commits

updated Sep 23, 2026

See the code

README

Dolos Logo

A Cardano Data Node

License: Apache-2.0 CI Status Documentation



[!TIP] Looking for detailed guides and tutorials? The complete user guide for Dolos is available at docs.txpipe.io/dolos.

What is Dolos?

Cardano nodes traditionally assume one of two roles: block producer or relay. Dolos introduces a third role: the data node — optimized for keeping an updated ledger and responding to queries while requiring a fraction of the resources.

Dolos connects directly to the Cardano network using Ouroboros Node-to-Node (N2N) mini-protocols (via Pallas). It relies on honest upstream peers rather than performing full consensus validation, enabling significant resource savings.

Why Dolos?

  • Low resource footprint — Runs with a small fraction of the memory and CPU required by a traditional Cardano node
  • Rich API surface — Multiple protocols to match your existing stack: REST, gRPC, HTTP, JSON-RPC, and Ouroboros
  • Flexible storage mode — Choose your data retention: ledger-only, sliding window, or full archive
  • Full multi-era support — Handles all Cardano eras from Byron through Conway, including full governance support (DReps, proposals, voting)

Flexibility

Choose your storage profile:

ProfileDescriptionBest For
Ledger-onlyCurrent state only (UTxO set, pools, protocol params) — minimal diskServices needing only current ledger state
Sliding historyConfigurable retention window for recent dataMost dApps that need recent history
Full archiveComplete chain history from genesisExplorers, analytics, archival

Choose your API surface:

APIProtocolBest For
MiniBFREST (Blockfrost-compatible)Existing Blockfrost integrations, wallets, SDKs
MiniKupoHTTP (Kupo-compatible)Pattern-based UTxO matching, chain indexing
UTxO RPCgRPC / gRPC-WebHigh-performance streaming, browser clients
TRPJSON-RPC (Tx3)Transaction building with Tx3 framework
OuroborosNode-to-Clientcardano-cli compatibility, Ogmios workflows

Features

Data Capabilities

  • Full historical reward logs — Complete reward distribution calculations and epoch state management
  • Stake distribution snapshots — Historical stake snapshots and epoch boundary logic
  • Pool registry & metadata — Pool registration, retirement handling, and delegator tracking
  • Asset registry — Token and NFT metadata tracking with CIP-25 support
  • Script indexing — Support of search / retrieval of scripts / datums by hash
  • Governance data — DRep registration, proposals, and voting state (Conway era)

Developer Experience

  • Mempool-aware transaction submit — Tracks pending, inflight, and finalized UTxO states, enabling transaction chaining workflows
  • Local devnet mode — Ephemeral single-node network via for offline development
  • Fast Mithril bootstrap — Sync mainnet from Mithril snapshot in under 20 hours
  • Dolos snapshots — Export and load node state in minutes for rapid deployment
  • Multi-platform binaries — Native packages for macOS (Apple Silicon), Linux (ARM64/x64), Windows x64, plus Docker images

Operations & Observability

  • Purpose-built storage — Fjall LSM trees for state and archive data, with a Redb WAL for crash recovery
  • OpenTelemetry integration — Distributed tracing with OTLP export
  • Prometheus metrics — Health and performance monitoring endpoints
  • Rust implementation — Memory safety, high performance, and small binary size

Architecture

Dolos follows a modular, layered architecture:

  • Core abstractions (dolos-core) — Storage traits (State, Archive, WAL), entity-delta system, and batch processing pipeline
  • Cardano logic (dolos-cardano) — Era-specific block processing, validation, reward calculation, and UTxO delta computation
  • Storage backends — Fjall state/archive stores, a Redb WAL, and builtin in-memory stores for ephemeral nodes and tests
  • Service layer — gRPC, REST, and Ouroboros protocol servers

Data is organized into three storage layers: State (current ledger and live-UTxO tags), Archive (historical blocks and their lookup indexes), and WAL (crash recovery). State mutations use an entity-delta pattern enabling efficient rollbacks without full snapshots.

Quick Start

We highly recommend following the quick start guide on our documentation site for detailed step-by-step instructions.

# macOS
brew install txpipe/tap/dolos

# Linux
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/txpipe/dolos/releases/latest/download/dolos-installer.sh | sh

# Windows (PowerShell)
powershell -c "irm https://github.com/txpipe/dolos/releases/latest/download/dolos-installer.ps1 | iex"

# Docker
docker run ghcr.io/txpipe/dolos:latest

# Node
npm install @txpipe/dolos

Once installed:

dolos init       # Interactive configuration and bootstrapping

📖 Full documentation: https://docs.txpipe.io/dolos

Contributing

PRs are welcome! Please ensure your changes pass CI checks.

See CONTRIBUTING.md for guidelines.

License

Dolos is licensed under the Apache License 2.0. See LICENSE for details.

Contributors

(top 30 of 38)

scarmuega

874 commits

gonzalezzfelipe

134 commits

dependabot[bot]

56 commits

michalrus

19 commits

Languages

Rust

100.0%