Installation
System Requirements
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 1 vCPU | 2+ vCPU |
| RAM | 1 GB (run) · ~4 GB (build) | 2–4 GB |
| Disk | 5 GB SSD | 20 GB SSD |
| Network | 10 Mbps | 100 Mbps |
| OS | Linux (Ubuntu 22.04+, Debian 12), macOS, Windows | Ubuntu 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
- Install Rust
- Install Visual Studio Build Tools
- Ensure
cargois 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:
| OS | Default Location |
|---|---|
| Linux/macOS | ~/.quantum-vault/core-node/ |
| Windows | C:\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):
| Variable | CLI Flag | Default | Description |
|---|---|---|---|
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-proxy | false | Key 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-rpc | https://sepolia.base.org | Base 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:
| Flag | Default | Description |
|---|---|---|
--host | 127.0.0.1 | Bind 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-port | 5101 | REST API port |
--mine | off | Enable block production |
--data-dir | ~/.quantum-vault/core-node/ | Chain data directory |
--chain-id | rougechain-devnet-1 | Network chain ID |
--block-time-ms | 400 | How often the miner checks for pending transactions, in milliseconds (blocks are only produced when there are transactions) |