Skip to main content

Installation

System Requirements

Rust (all node types)

  • Rust: stable >= 1.82
  • Stack size: 8MB (configured via linker flags)

Linux

sudo apt install build-essential pkg-config clang llvm-dev libclang-dev \
cmake ninja-build libssl-dev zlib1g-dev liblz4-dev libzstd-dev

macOS

brew install rustup ccache cmake ninja llvm openssl zstd lz4

Windows

  • Visual Studio Build Tools with C++ workload
  • Windows SDK
  • Use the Developer Command Prompt or build_win.bat

Building from Source

Savitri Network is a monorepo with independent crates (no root workspace Cargo.toml). Each crate is built individually.

Build Node Binaries

# Masternode (full validator)
cargo build --release -p savitri-masternode

# Lightnode (desktop/mobile optimized)
cargo build --release -p savitri-lightnode

# Guardian (archive/observer)
cargo build --release -p savitri-guardian

Build SDK Tools

cargo build --release -p savitri-sdk

This produces three CLI tools:

  • key_generator -- Generate ed25519 keypairs
  • transaction_signer -- Sign transactions offline
  • network_monitor -- Monitor node health

Build Game API

cargo build --release -p savitri-game-api

Running Tests

# All tests
cargo test --workspace

# Specific crate
cargo test -p savitri-core
cargo test -p savitri-storage
cargo test -p savitri-consensus

# Single test by name
cargo test -p savitri-core -- test_name_here

Linting

cargo fmt --all
cargo clippy --workspace --all-targets --all-features -- -D warnings

Docker

A multi-stage Dockerfile is available for masternode:

cd savitri-masternode
docker build -t savitri-masternode .

Full testnet (Prometheus + Grafana + 2 masternodes + 1 lightnode + 1 guardian):

cd savitri-testnet
docker-compose up -d

Next Steps