Mining/docs/reference/algorithms.md
snider 7fcace4d4d docs: Add algorithms reference page
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 00:26:00 +00:00

9.4 KiB

Supported Mining Algorithms

This guide provides detailed information about the cryptocurrency mining algorithms supported by the Mining Platform.

Overview

Mining Platform supports multiple Proof-of-Work (PoW) algorithms across CPU and GPU mining. Each algorithm is optimized for specific hardware and cryptocurrencies.

Algorithm Matrix

Algorithm Type CPU GPU (OpenCL) GPU (CUDA) Primary Coin Difficulty
RandomX Memory-hard Monero (XMR) Medium
KawPow GPU-optimized Ravencoin (RVN) High
ETChash GPU-optimized Ethereum Classic (ETC) High
ProgPowZ GPU-optimized Zano (ZANO) High
Blake3 CPU/GPU hybrid Decred (DCR) Low
CryptoNight Memory-hard Various Medium

RandomX

Overview

RandomX is a proof-of-work algorithm optimized for general-purpose CPUs. It is designed to be ASIC-resistant by using random code execution and memory-hard techniques.

Characteristics

  • Type: Memory-hard PoW
  • Memory Requirement: 2GB RAM minimum
  • Optimal Hardware: Modern CPUs with large cache
  • ASIC Resistance: High

Variants

Variant Coin Notes
rx/0 Monero (XMR) Primary Monero algorithm
rx/wow Wownero (WOW) RandomX variant for Wownero
rx/arq ArQmA (ARQ) ArQmA-specific parameters
rx/graft Graft (GRFT) Graft Network

Configuration

{
  "algo": "rx/0",
  "threads": 4,
  "cpuPriority": 3,
  "hugePages": true,
  "1gb-pages": false,
  "randomx": {
    "mode": "auto",
    "cache": true,
    "dataset": true
  }
}

Performance Tips

CPU:

  • Use CPUs with large L3 cache (Ryzen, Threadripper, EPYC)
  • Enable huge pages for best performance
  • Leave 1-2 threads free for system
  • Optimal thread count = (CPU cores - 1)

Hashrate Examples:

  • Intel i5-12400: ~4-5 KH/s
  • AMD Ryzen 5 5600X: ~7-8 KH/s
  • AMD Ryzen 9 5950X: ~20-22 KH/s
  • AMD Threadripper 3990X: ~60-65 KH/s

Huge Pages Setup

Linux:

sudo sysctl -w vm.nr_hugepages=1280
echo "vm.nr_hugepages=1280" | sudo tee -a /etc/sysctl.conf

Windows: Run as Administrator:

# Restart required

KawPow

Overview

KawPow is a derivative of ProgPoW, specifically designed for Ravencoin. It combines random program generation with memory-hard features.

Characteristics

  • Type: GPU-optimized PoW
  • Memory Requirement: 3-4GB VRAM
  • Optimal Hardware: Modern NVIDIA/AMD GPUs
  • ASIC Resistance: High

Configuration

{
  "algo": "kawpow",
  "cuda": {
    "enabled": true,
    "devices": [0, 1],
    "threads": 256,
    "blocks": 128,
    "intensity": 21
  },
  "opencl": {
    "enabled": false
  }
}

Performance Tips

NVIDIA GPUs:

  • RTX 3060 Ti: ~20-22 MH/s (90-120W)
  • RTX 3070: ~23-25 MH/s (120-140W)
  • RTX 3080: ~40-42 MH/s (220-250W)
  • RTX 4090: ~60-65 MH/s (300-350W)

AMD GPUs:

  • RX 6600 XT: ~14-16 MH/s (80-100W)
  • RX 6800: ~26-28 MH/s (160-180W)
  • RX 6900 XT: ~30-32 MH/s (200-230W)

Optimization:

  • Underclock core slightly (-100 to -200 MHz)
  • Increase memory clock (+500 to +1000 MHz)
  • Reduce power limit (70-80%)
  • Ensure adequate cooling

ETChash

Overview

ETChash (Etchash) is Ethereum Classic's mining algorithm, a variant of Ethash designed to be ASIC-resistant.

Characteristics

  • Type: GPU-optimized PoW (DAG-based)
  • Memory Requirement: 5GB+ VRAM (increasing with DAG)
  • Optimal Hardware: High-memory GPUs
  • ASIC Resistance: Medium

DAG Size

The DAG (Directed Acyclic Graph) increases over time:

Date DAG Size Min VRAM
2025 ~5.0 GB 6 GB
2026 ~5.3 GB 6 GB
2027 ~5.6 GB 8 GB
2028 ~5.9 GB 8 GB

Configuration

{
  "algo": "etchash",
  "cuda": {
    "enabled": true,
    "devices": [0],
    "threads": 256,
    "blocks": 128
  },
  "opencl": {
    "enabled": false
  }
}

Performance Tips

NVIDIA GPUs:

  • RTX 3060 Ti: ~60-62 MH/s (120-140W)
  • RTX 3070: ~62-64 MH/s (120-140W)
  • RTX 3080: ~100-105 MH/s (220-250W)
  • RTX 3090: ~120-125 MH/s (280-320W)

AMD GPUs:

  • RX 6600 XT: ~30-32 MH/s (60-75W)
  • RX 6800: ~62-64 MH/s (120-140W)
  • RX 6900 XT: ~64-66 MH/s (140-160W)

Optimization:

  • Core clock: Moderate (not critical)
  • Memory clock: High (critical for ETChash)
  • Power limit: 60-75%
  • Memory timings: Tight (if supported)

ProgPowZ

Overview

ProgPowZ is Zano's implementation of ProgPoW (Programmatic Proof-of-Work), designed to be ASIC-resistant through random program generation.

Characteristics

  • Type: GPU-optimized PoW
  • Memory Requirement: 2-3GB VRAM
  • Optimal Hardware: NVIDIA/AMD GPUs
  • ASIC Resistance: High

Configuration

{
  "algo": "progpowz",
  "cuda": {
    "enabled": true,
    "devices": [0, 1],
    "threads": 256,
    "blocks": 64
  }
}

Performance Tips

NVIDIA GPUs:

  • RTX 3070: ~35-37 MH/s
  • RTX 3080: ~55-60 MH/s
  • RTX 4070: ~40-45 MH/s

AMD GPUs:

  • RX 6700 XT: ~28-30 MH/s
  • RX 6800: ~35-38 MH/s
  • RX 6900 XT: ~40-42 MH/s

Blake3

Overview

Blake3 is a cryptographic hash function that can be mined on both CPU and GPU. It's used by Decred and other cryptocurrencies.

Characteristics

  • Type: Hybrid CPU/GPU PoW
  • Memory Requirement: Low
  • Optimal Hardware: Multi-core CPUs or GPUs
  • ASIC Resistance: Low (ASICs available)

Configuration

CPU Mining:

{
  "algo": "blake3",
  "threads": 8,
  "cpuPriority": 3
}

GPU Mining:

{
  "algo": "blake3",
  "cuda": {
    "enabled": true,
    "devices": [0]
  }
}

Performance Tips

CPU:

  • Modern CPUs with AVX2/AVX512: ~500-1500 MH/s per core
  • Optimal for high core count processors

GPU:

  • NVIDIA RTX 3080: ~15-20 GH/s
  • AMD RX 6900 XT: ~12-15 GH/s

CryptoNight

Overview

CryptoNight is a memory-hard proof-of-work algorithm, formerly used by Monero before RandomX.

Characteristics

  • Type: Memory-hard PoW
  • Memory Requirement: 2MB per thread
  • Optimal Hardware: CPUs with AES-NI
  • ASIC Resistance: Medium

Variants

Variant Coin Notes
cn/r Monero (legacy) CryptoNight R
cn/0 Bytecoin Original CryptoNight
cn/1 MoneroV7 CryptoNight v7
cn/2 MoneroV8 CryptoNight v8
cn/half Masari Half mode
cn/fast Electroneum Fast mode

Configuration

{
  "algo": "cn/r",
  "threads": 4,
  "cpuPriority": 3,
  "aesNi": true
}

Algorithm Selection

By Hardware

Strong CPU, No GPU:

  • Primary: RandomX (rx/0)
  • Alternative: Blake3, CryptoNight

Strong GPU(s), Weak CPU:

  • Primary: ETChash, KawPow, ProgPowZ
  • Alternative: Blake3 (GPU)

Both Strong CPU and GPU:

  • Dual mining: RandomX (CPU) + ETChash/KawPow (GPU)
  • Maximum profitability

Limited Hardware:

  • Start with: RandomX (low power CPU)
  • Or: Blake3 (efficient on both)

By Profitability

Check current profitability at:

Factors affecting profitability:

  • Coin price
  • Network difficulty
  • Block rewards
  • Pool fees
  • Hardware efficiency

Power Consumption

Hashrate per Watt

RandomX (CPU):

  • Typical: 20-40 H/s per Watt
  • Efficient CPUs: 40-50 H/s per Watt

KawPow (GPU):

  • NVIDIA RTX: 80-150 KH/s per Watt
  • AMD RX: 100-180 KH/s per Watt

ETChash (GPU):

  • NVIDIA RTX: 400-500 KH/s per Watt
  • AMD RX: 400-600 KH/s per Watt

Optimization for Efficiency

  1. Reduce power limit (70-80% of max)
  2. Find optimal core/memory clocks
  3. Improve cooling (lower temps = better efficiency)
  4. Use efficient PSU (80+ Gold or better)

Dual Mining

Compatible Combinations

Recommended:

  • RandomX (CPU) + ETChash (GPU)
  • RandomX (CPU) + KawPow (GPU)
  • RandomX (CPU) + ProgPowZ (GPU)

Configuration:

{
  "cpu": {
    "enabled": true,
    "algo": "rx/0",
    "threads": 6,
    "pool": "stratum+tcp://pool.supportxmr.com:3333",
    "wallet": "YOUR_XMR_WALLET"
  },
  "gpu": {
    "enabled": true,
    "algo": "etchash",
    "pool": "stratum+tcp://etc.woolypooly.com:3333",
    "wallet": "YOUR_ETC_WALLET",
    "cuda": {
      "devices": [0, 1]
    }
  }
}

Benchmarking

Test your hardware performance:

# CPU benchmark
miner-ctrl benchmark --algo rx/0 --threads 8

# GPU benchmark
miner-ctrl benchmark --algo etchash --cuda --device 0

# Compare algorithms
miner-ctrl benchmark --all

Troubleshooting

Low CPU Hashrate

  • Enable huge pages
  • Increase CPU priority
  • Reduce thread count
  • Check for thermal throttling
  • Close background applications

Low GPU Hashrate

  • Update GPU drivers
  • Increase power limit
  • Optimize memory clocks
  • Check for thermal throttling
  • Verify VRAM is sufficient for DAG

High Rejected Shares

  • Check network connection
  • Reduce difficulty (use lower port)
  • Verify algorithm matches pool
  • Update mining software

Resources

Next Steps