Named after the dugite (Pseudonaja affinis), a highly venomous brown snake indigenous to Perth, Western Australia — where the project's main author is from. Dugites are fast, resilient, and quietly formidable; traits shared by this node. They're also responsible for the loss of more than a few beloved family pets over the years.
A Cardano node implementation written in Rust, aiming for 100% compatibility with cardano-node.
Built by Sandstone Pool
Documentation | Benchmarks | Developer Wiki | Discussions
Caution
Dugite is in early development and is NOT recommended for production use. APIs, storage formats, and on-chain behavior may change without notice. Ledger validation is incomplete and may accept invalid transactions or reject valid ones. Do not use this software to operate a stake pool, manage real funds, or participate in mainnet governance. Use at your own risk on testnets only.
For project status, capability matrix, and known issues see the Developer Wiki.
# Build
cargo build --release
# Fast sync with Mithril snapshot (recommended)
./target/release/dugite-node mithril-import \
--network-magic 2 \
--database-path ./db-preview
# Run the node
./target/release/dugite-node run \
--config config/preview-config.json \
--topology config/preview-topology.json \
--database-path ./db-preview \
--socket-path ./node.sock \
--host-addr 0.0.0.0 \
--port 3001For installation, configuration, networks, monitoring, block-producer setup, and the full CLI reference, see the documentation.
| Network | Magic |
|---|---|
| Mainnet | 764824073 |
| Preview | 2 |
| Preprod | 1 |
Dugite is a 14-crate Cargo workspace built on pallas 1.0.0-alpha.5 for Cardano wire-format compatibility. Three binaries: dugite-node (the node), dugite-cli (cardano-cli compatible), dugite-monitor and dugite-config (TUIs).
graph TD
NODE[dugite-node] --> NET[dugite-network]
NODE --> CONS[dugite-consensus]
NODE --> LEDGER[dugite-ledger]
NODE --> STORE[dugite-storage]
NODE --> POOL[dugite-mempool]
CLI[dugite-cli] --> NET
CLI --> PRIM[dugite-primitives]
CLI --> CRYPTO[dugite-crypto]
CLI --> SER[dugite-serialization]
MON[dugite-monitor] --> PRIM
CFG[dugite-config] --> PRIM
NET --> PRIM
NET --> CRYPTO
NET --> SER
NET --> POOL
CONS --> PRIM
CONS --> CRYPTO
LEDGER --> PRIM
LEDGER --> CRYPTO
LEDGER --> SER
LEDGER --> LSM[dugite-lsm]
STORE --> PRIM
STORE --> SER
POOL --> PRIM
SER --> PRIM
CRYPTO --> PRIM
See Architecture Overview for the per-crate breakdown, and Architecture Decision Records for design rationale.
# Run all tests (parallel via nextest, matches CI)
cargo nextest run --workspace
# Doc tests
cargo test --doc
# Lint
cargo clippy --all-targets -- -D warnings
# Format check
cargo fmt --all -- --checkZero-warning policy is enforced: all code must compile cleanly with clippy and pass formatting checks. See CONTRIBUTING.md for the full workflow, and Getting Started for Developers on the wiki.
Benchmark instructions and tracked baselines: Benchmarks.
Special thanks to the following individuals for their contributions and support:
- Andrew Westberg (BCSH)
- Samuel Leathers
- Homer J (AAA)
Apache-2.0