Skip to content

michaeljfazio/dugite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,787 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dugite

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

CI Code Scanning codecov Nightly Benchmarks Docs License Rust Cardano GitHub Discussions GitHub Stars

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.

Quick Start

# 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 3001

For installation, configuration, networks, monitoring, block-producer setup, and the full CLI reference, see the documentation.

Network Magic
Mainnet 764824073
Preview 2
Preprod 1

Architecture

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
Loading

See Architecture Overview for the per-crate breakdown, and Architecture Decision Records for design rationale.

Development

# 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 -- --check

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

Acknowledgments

Special thanks to the following individuals for their contributions and support:

  • Andrew Westberg (BCSH)
  • Samuel Leathers
  • Homer J (AAA)

License

Apache-2.0

About

A Cardano full node written in Rust

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors