Documentation

Developers - Guide

Supernova Blockchain v1.0.0-RC3: Complete Node Setup and Operation Guide

This guide walks developers through the process of setting up a Supernova node, configuring a wallet, mining, and creating transactions on the production-ready v1.0.0-RC3 network. Supernova combines industry-leading quantum-resistant cryptography with automated environmental consciousness for a secure, sustainable, and scalable blockchain platform.

Production-Ready v1.0.0-RC3 Features

The v1.0.0-RC3 release includes enterprise-grade capabilities:

  • Complete Quantum Resistance: Production-ready post-quantum cryptography with CRYSTALS-Dilithium, Falcon, and hybrid schemes
  • Environmental Leadership: Fully automated emissions tracking and carbon offsetting with comprehensive reporting
  • Lightning Network: World's first quantum-resistant Lightning Network with instant payment channels
  • Advanced Security: Enterprise-grade security hardening with comprehensive threat mitigation
  • High-Performance Architecture: Optimized for enterprise workloads with improved throughput and latency
  • Comprehensive Monitoring: Built-in Prometheus metrics with complete observability

Hardware Requirements Update

Minimum Requirements (Development/Testing)

  • CPU: 8 cores (Intel/AMD x64 or ARM64)
  • RAM: 16 GB (32 GB recommended)
  • Storage: 500 GB NVMe SSD (1 TB recommended)
  • Network: 25 Mbps stable connection with low latency
  • Operating System: Ubuntu 22.04 LTS, Debian 12, or CentOS Stream 9

Recommended Requirements (Production/Mainnet)

  • CPU: 32+ cores with high single-thread performance
  • RAM: 64+ GB ECC memory
  • Storage: 2+ TB NVMe SSD with RAID 1 for redundancy
  • Network: 1 Gbps dedicated connection with < 50ms latency to peers
  • Operating System: Ubuntu 22.04 LTS (recommended for production)

Mining Node Requirements (v1.0.0-RC3)

  • CPU: 64+ cores optimized for quantum-resistant proof-of-work
  • RAM: 32+ GB
  • Storage: 1+ TB NVMe SSD
  • GPU: NVIDIA RTX 4090 or equivalent (optional but significantly improves mining performance)
  • Network: 1 Gbps with < 25ms latency for optimal block propagation
  • Power: Renewable energy sources preferred for green mining incentives

Table of Contents

System Requirements

Minimum Requirements (Development/Testing)

  • CPU: 4 cores
  • RAM: 8 GB
  • Storage: 100 GB SSD
  • Network: 10 Mbps, stable connection
  • Operating System: Ubuntu 20.04+, Debian 11+, or CentOS 8+

Recommended Requirements (Production)

  • CPU: 16+ cores
  • RAM: 32+ GB
  • Storage: 1+ TB NVMe SSD
  • Network: 100+ Mbps, low-latency connection
  • Operating System: Ubuntu 22.04 LTS

Mining Node Requirements

  • CPU: 16+ cores optimized for mining
  • RAM: 16+ GB
  • Storage: 500+ GB NVMe SSD
  • GPU: Optional but beneficial for mining performance
  • Network: 100+ Mbps, low-latency connection

Quick Start Guide

For those familiar with blockchain node operation who want to get started quickly:

# Clone repository
git clone https://github.com/username/supernova.git
cd supernova

# Build from source
cargo build --release

# Create configuration
mkdir -p ~/.supernova/config
cp config/node.example.toml ~/.supernova/config/node.toml

# Edit configuration (update reward_address for mining)
nano ~/.supernova/config/node.toml

# Start the node
./target/release/node

Detailed Installation

From Source

Building Supernova from source code provides the most flexibility and ensures you're running the exact code you expect.

  1. Install Dependencies
# Ubuntu/Debian
sudo apt update
sudo apt install -y build-essential pkg-config libssl-dev git curl

# CentOS/RHEL
sudo dnf install -y gcc make openssl-devel git curl
  1. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
  1. Clone and Build Supernova
git clone https://github.com/username/supernova.git
cd supernova
cargo build --release
  1. Create Required Directories
mkdir -p ~/.supernova/{config,data,backups}
  1. Configure Your Node
cp config/node.example.toml ~/.supernova/config/node.toml
nano ~/.supernova/config/node.toml

Using Docker

Docker simplifies deployment and ensures consistent environments across different systems.

  1. Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
  1. Get Supernova Docker Image
docker pull supernovachain/node:latest
  1. Create Configuration Directory
mkdir -p ~/supernova/{config,data,backups}
curl -o ~/supernova/config/node.toml https://raw.githubusercontent.com/username/supernova/main/config/node.example.toml
  1. Edit Configuration
nano ~/supernova/config/node.toml
  1. Run Supernova Node
docker run -d --name supernova-node \
  -p 8000:8000 -p 9000:9000 \
  -v ~/supernova/config:/app/config \
  -v ~/supernova/data:/app/data \
  -v ~/supernova/backups:/app/backups \
  supernovachain/node:latest

Node Configuration

Basic Configuration

Edit ~/.supernova/config/node.toml with the following essential settings:

[node]
chain_id = "supernova-mainnet"  # Network to join (mainnet, testnet, etc.)
environment = "Production"      # Development, Testnet, or Production
log_level = "info"              # Logging verbosity (debug, info, warn, error)

[network]
listen_addr = "/ip4/0.0.0.0/tcp/8000"  # Network listening address
max_peers = 50                         # Maximum peer connections

[storage]
db_path = "~/.supernova/data"          # Blockchain database location

Networking Options

For optimal network connectivity:

[network]
# Add well-known bootstrap nodes
bootstrap_nodes = [
    "/ip4/203.0.113.1/tcp/8000/p2p/QmRZf8wnY2HbQP4h6jtKnHBuEF3V59uCnYx9winHcwUwNX",
    "/ip4/203.0.113.2/tcp/8000/p2p/QmP7HvWHJwJmPWGHH1XtKuKCrFCbjCSRHZ6bA8n5QkRfzC"
]
# For servers behind NAT
external_addr = "/ip4/your.public.ip/tcp/8000"
# For better peer selection
prefer_ipv6 = false
enable_upnp = true

Storage Settings

Optimize storage for performance:

[storage]
enable_compression = true     # Compress blockchain data
cache_size = 1073741824       # Cache size (1 GB)
max_open_files = 1000         # Database file handles
block_cache_size = 268435456  # Block cache size (256 MB)

Advanced Options

For experienced operators:

[advanced]
# Enable quantum signature verification
quantum_resistant_verification = true
# Quantum signature scheme (Dilithium, Falcon, Sphincs)
quantum_signature_scheme = "Dilithium"
# Security level (1-5, higher is more secure but slower)
quantum_security_level = 3

Running Your Node

Command Line Options

Start your node with appropriate options:

# Basic node start
./target/release/node

# With custom config location
./target/release/node --config /path/to/config.toml

# With block import
./target/release/node --import-blocks /path/to/blocks.dat

# With log level override
./target/release/node --log-level debug

# Start with mining enabled
./target/release/node --mine

Using Systemd Service

For production environments, create a systemd service:

  1. Create Service File
sudo nano /etc/systemd/system/supernova.service
  1. Add Configuration
[Unit]
Description=Supernova Blockchain Node
After=network.target

[Service]
Type=simple
User=YOUR_USERNAME
ExecStart=/path/to/supernova/target/release/node
WorkingDirectory=/home/YOUR_USERNAME
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
  1. Enable and Start Service
sudo systemctl daemon-reload
sudo systemctl enable supernova
sudo systemctl start supernova
  1. Check Status
sudo systemctl status supernova

Node Monitoring

Monitor your node's health and performance:

# View logs
sudo journalctl -u supernova -f

# Check sync status through API
curl -s http://localhost:9000/api/v1/status | jq

# Monitor system resources
htop -p $(pgrep node)

# Set up Prometheus monitoring
# Access metrics at http://your-node-ip:9000/metrics

Mining Setup

Built-in Mining

Enable the built-in miner for solo mining:

  1. Update Configuration
[mining]
enable = true                     # Enable built-in mining
threads = 8                       # Number of mining threads
reward_address = "snova1..."      # Your Supernova reward address
  1. Restart Node
sudo systemctl restart supernova
  1. Monitor Mining
# Check mining status
curl -s http://localhost:9000/api/v1/mining/status | jq

# View mining stats
curl -s http://localhost:9000/api/v1/mining/stats | jq

External Miner Setup

For better mining performance, use a dedicated mining application:

  1. Download Miner
git clone https://github.com/username/supernova-miner.git
cd supernova-miner
cargo build --release
  1. Configure Miner
nano config.toml
[miner]
node_address = "http://localhost:9000"  # Your node's API address
reward_address = "snova1..."            # Your Supernova address
threads = 8                             # Mining threads
algorithm = "quantum-resistant-pow"     # Mining algorithm

# Environmental reporting (optional)
[environmental]
energy_source = "solar"                 # Energy source type
renewable_percentage = 100              # Percentage of renewable energy
region = "US-CA"                        # Your region code
  1. Start Miner
./target/release/supernova-miner

Mining Pool Configuration

Join a mining pool for more consistent rewards:

  1. Find a Pool

Choose a reputable Supernova mining pool and register an account.

  1. Configure Pool Mining
./target/release/supernova-miner --pool stratum+tcp://pool.example.com:3333 --user username.worker --pass x
  1. Monitor Rewards

Most pools provide a web dashboard to track your mining statistics and rewards.

Environmental Reporting

Configure your environmental settings for green mining incentives:

  1. Enable Environmental Reporting
[environmental]
reporting_enabled = true            # Enable environmental reporting
energy_source = "mixed"             # Energy source type
renewable_percentage = 75           # Percentage from renewable sources
carbon_offset = true                # Whether you use carbon offsets
region = "US-CA"                    # Your region code

# Optional verification details
[environmental.verification]
provider = "GreenCertProvider"      # Verification provider
certificate_id = "GCP-123456"       # Energy certificate ID
verification_url = "https://example.com/verify/GCP-123456"
  1. Get Fee Discounts

Verified green miners may receive fee discounts on the network.

Wallet Operations

Creating a Wallet

  1. Generate a New Wallet
./target/release/wallet create --output ~/.supernova/wallet.dat
  1. Set a Strong Password

When prompted, enter a strong password to encrypt your wallet.

  1. Backup Your Wallet
cp ~/.supernova/wallet.dat ~/.supernova/backups/wallet-$(date +%Y%m%d).dat

Securing Your Wallet

Implement these security practices:

  1. Encrypt Your Wallet
./target/release/wallet encrypt ~/.supernova/wallet.dat
  1. Create a Paper Backup
./target/release/wallet paper-backup ~/.supernova/wallet.dat
  1. Use Hardware Security (Optional)
./target/release/wallet hardware-setup --ledger

Quantum-Resistant Addresses

Generate and use quantum-resistant addresses:

  1. Generate Address
# Generate with Dilithium (default)
./target/release/wallet new-address --type quantum

# Generate with specific algorithm
./target/release/wallet new-address --type quantum --algorithm sphincs
  1. List Addresses
./target/release/wallet list-addresses

Transactions

Creating Transactions

Send funds on the Supernova network:

  1. Basic Transaction
./target/release/wallet send --to snova1... --amount 5.0
  1. Advanced Transaction
./target/release/wallet send \
  --to snova1... \
  --amount 5.0 \
  --fee 0.001 \
  --quantum-protected \
  --memo "Payment for services"
  1. Batch Transactions
./target/release/wallet batch-send transactions.csv

Monitoring Transaction Status

Track your transactions on the network:

  1. Check Transaction
./target/release/wallet tx-status <TRANSACTION_ID>
  1. Using the Explorer

Visit the Supernova block explorer at https://explorer.supernovanetwork.xyz and enter your transaction ID.

Fee Optimization

Optimize transaction fees:

  1. Check Recommended Fees
./target/release/wallet recommended-fee
  1. Set Custom Fee
./target/release/wallet send --to snova1... --amount 5.0 --fee 0.00075

Lightning Network

Setting Up Lightning

Enable fast, off-chain transactions with Lightning:

  1. Initialize Lightning
./target/release/lightning init
  1. Configure Lightning Node
nano ~/.supernova/lightning/config.toml
[lightning]
listen_addr = "0.0.0.0:9735"
announce_addr = "your.public.ip:9735"
alias = "My Supernova LN Node"
color = "008000" # Green color for node visualization

[fees]
base_fee_msat = 1000            # Base fee in millisatoshis
fee_rate = 10                   # Fee rate in parts per million
  1. Start Lightning Node
./target/release/lightning daemon

Opening Channels

Create payment channels with other nodes:

  1. Connect to Peer
./target/release/lightning connect <NODE_ID>@<IP_ADDRESS>:9735
  1. Open Channel
./target/release/lightning open-channel <NODE_ID> --capacity 0.1 --push-amount 0.02
  1. List Channels
./target/release/lightning list-channels

Lightning Payments

Make fast, low-fee payments:

  1. Create Invoice
./target/release/lightning create-invoice --amount 0.001 --description "Coffee payment"
  1. Pay Invoice
./target/release/lightning pay <INVOICE>
  1. Send Payment
./target/release/lightning send-payment <NODE_ID> --amount 0.001 --description "Direct payment"

Security Best Practices

Implement these security measures:

  1. Firewall Configuration
# Allow only necessary ports
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 8000/tcp  # P2P port
sudo ufw allow 9735/tcp  # Lightning (if enabled)
sudo ufw enable
  1. Regular Updates
# Pull latest updates
cd ~/supernova
git pull
cargo build --release
sudo systemctl restart supernova
  1. Secure RPC
[rpc]
enabled = true
bind_addr = "127.0.0.1:8545"  # Bind to localhost only
auth_required = true
username = "your_username"
password = "your_strong_password"
  1. Use SSL for API Access

Set up an Nginx reverse proxy with SSL for secure API access.

Maintenance and Troubleshooting

Regular Maintenance

Perform these tasks regularly:

  1. Check for Updates
cd ~/supernova
git fetch
git log HEAD..origin/main --oneline
  1. Backup Data
# Backup blockchain data
rsync -av ~/.supernova/data/ ~/backups/supernova-data-$(date +%Y%m%d)/

# Backup wallet
cp ~/.supernova/wallet.dat ~/backups/wallet-$(date +%Y%m%d).dat
  1. Verify Database Integrity
./target/release/node --verify-db

Common Issues and Solutions

  1. Node Won't Start

Check logs:

sudo journalctl -u supernova -n 100
  1. Sync Issues

Try resetting peers:

./target/release/node --reset-peers
  1. Performance Problems

Adjust cache settings:

[storage]
cache_size = 2147483648  # Increase to 2 GB
  1. Mining Not Working

Verify reward address:

./target/release/wallet validate-address <YOUR_REWARD_ADDRESS>

Appendix: API Reference

Node API

  • Status: GET /api/v1/status
  • Peers: GET /api/v1/network/peers
  • Block Info: GET /api/v1/blocks/{height}
  • Transaction Info: GET /api/v1/transactions/{txid}

Wallet API

  • Balance: GET /api/v1/wallet/balance
  • New Address: POST /api/v1/wallet/address
  • Send Transaction: POST /api/v1/wallet/send

Mining API

  • Mining Status: GET /api/v1/mining/status
  • Submit Work: POST /api/v1/mining/submit
  • Environmental Report: POST /api/v1/mining/environmental

Lightning API

  • Node Info: GET /api/v1/lightning/info
  • Channels: GET /api/v1/lightning/channels
  • Create Invoice: POST /api/v1/lightning/invoice
  • Pay Invoice: POST /api/v1/lightning/pay

For more information, visit the Supernova Documentation or join the community on Discord.