Installation

System Requirements

ResourceMinimumRecommended
CPU1 vCPU2+ vCPU
RAM1 GB (run) · ~4 GB (build)2–4 GB
Disk5 GB SSD20 GB SSD
Network10 Mbps100 Mbps
OSLinux (Ubuntu 22.04+, Debian 12), macOS, WindowsUbuntu 22.04 LTS

The daemon is a single Rust binary with low overhead. A $5/month VPS (Hetzner CX22, DigitalOcean Basic Droplet, Vultr Cloud Compute) is more than enough for testnet.


Docker (Fastest)

Run a node with a single command — no Rust toolchain needed:

docker run -d \
  --name rougechain-node \
  -p 127.0.0.1:5100:8900 \
  -v qv-data:/data/rougechain \
  rougechain/node \
  --data-dir /data/rougechain --host 0.0.0.0 --api-port 8900 \
  --mine --peers https://testnet.rougechain.io/api

Arguments after the image name replace the image's default command, so keep --data-dir /data/rougechain (the image's volume) and --api-port 8900 (the port the image's health check probes). See Docker.

Verify it's running:

curl http://127.0.0.1:5100/api/health

docker-compose

For a persistent setup, create a .env file:

API_PORT=5100
QV_PEERS=https://api.rougechain.io/api

The compose file always uses the mainnet genesis (chain id rougechain-mainnet-1; there is no chain-id setting) and always passes --mine, so point QV_PEERS at mainnet peers. The API is published on 127.0.0.1:${API_PORT} only; set API_BIND=0.0.0.0 to expose it on every interface.

Then start:

git clone https://github.com/cyberdreadx/rougechain-node
cd rougechain-node
docker compose up -d

View logs:

docker compose logs -f node

Build the image locally

git clone https://github.com/cyberdreadx/rougechain-node
cd rougechain-node
docker build -t rougechain/node .

Build from Source

Install and build manually if you prefer not to use Docker.

Prerequisites

Linux / macOS

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Install build dependencies (Ubuntu/Debian)
sudo apt update && sudo apt install -y build-essential pkg-config libssl-dev

# Install build dependencies (macOS)
xcode-select --install

Windows

  1. Install Rust
  2. Install Visual Studio Build Tools
  3. Ensure cargo is in your PATH

Compile

# Clone the repository
git clone https://github.com/cyberdreadx/rougechain-node
cd rougechain-node/core

# Build release binary
cargo build --release -p quantum-vault-daemon

# Binary location
./target/release/quantum-vault-daemon --help

Verify Installation

./target/release/quantum-vault-daemon --version

Expected output:

quantum-vault-daemon 0.1.0

First Run

Option A: Connect to Testnet

./target/release/quantum-vault-daemon \
  --api-port 5100 \
  --peers "https://testnet.rougechain.io/api"

Option B: Start Local Devnet

./target/release/quantum-vault-daemon --mine --api-port 5100

Verify Node is Running

curl http://127.0.0.1:5100/api/health

Expected response:

{"status":"ok","chain_id":"rougechain-devnet-1","height":0}

Directory Structure

After first run, data is stored at:

OSDefault Location
Linux/macOS~/.quantum-vault/core-node/
WindowsC:\Users\<you>\.quantum-vault\core-node\

Updating

Bring your node up to the latest main with one command — it fetches, fast-forwards, rebuilds the release binary, restarts the service, and health-checks:

cd rougechain-node
./scripts/update-node.sh

It refuses to run on a dirty working tree and only fast-forwards, so it never clobbers local changes. Override the defaults with env vars if your setup differs (systemd unit name, port, etc.):

ROUGECHAIN_SERVICE=my-node ROUGECHAIN_API_PORT=5100 ./scripts/update-node.sh
Manual equivalent
cd rougechain-node
git pull --ff-only
cd core
cargo build --release -p quantum-vault-daemon
sudo systemctl restart rougechain   # your service name

Troubleshooting

"cargo not found"

source ~/.cargo/env
# or restart your terminal

"OpenSSL not found"

# Ubuntu/Debian
sudo apt install libssl-dev pkg-config

# Fedora/RHEL
sudo dnf install openssl-devel

# macOS
brew install openssl

"Address already in use"

Another process is using port 5100:

# Find and kill it
lsof -i :5100
kill -9 <PID>

# Or use a different port
./quantum-vault-daemon --api-port 5101

Build fails on Windows

Ensure you have Visual Studio Build Tools with C++ workload installed.


Environment Variables

Some CLI flags can also be set via environment variables (others, such as --host, --api-port, --data-dir, --chain-id, --mine and the --rate-limit-* flags, are CLI-only):

VariableCLI FlagDefaultDescription
QV_PEERS--peers—Comma-separated peer URLs
QV_PUBLIC_URL--public-url—This node's public URL for peer discovery
QV_CORS_ORIGINS—built-in list (local dev servers, rougechain.io, www.rougechain.io, testnet.rougechain.io, rougee.app, www.rougee.app)Comma-separated allowed CORS origins
QV_API_KEYS--api-keys—Comma-separated API keys for authenticated access
QV_TRUST_PROXY--trust-proxyfalseKey rate limits by the client IP a local reverse proxy reports (loopback peers only)
QV_BRIDGE_CUSTODY_ADDRESS--bridge-custody-address—EVM custody address (enables bridge)
QV_BASE_SEPOLIA_RPC--base-sepolia-rpchttps://sepolia.base.orgBase RPC URL used for bridge verification. The name is historical: on mainnet nodes set it to a Base mainnet RPC (chain id 8453)

Common CLI-only flags:

FlagDefaultDescription
--host127.0.0.1Bind address. Keep 127.0.0.1 and put a reverse proxy in front for public nodes; 0.0.0.0 exposes the API on every interface (needed inside Docker)
--api-port5101REST API port
--mineoffEnable block production
--data-dir~/.quantum-vault/core-node/Chain data directory
--chain-idrougechain-devnet-1Network chain ID
--block-time-ms400How often the miner checks for pending transactions, in milliseconds (blocks are only produced when there are transactions)