Mining/docs/reference/algorithms.md
snider 584fe5cc2a docs: Add links to algorithm stats and coin projects
Link algorithms to miningpoolstats.stream for pool/coin listings.
Link coin names to their official project websites.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

455 lines
10 KiB
Markdown

# 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](https://miningpoolstats.stream/monero) | Memory-hard | ✅ | ✅ | ✅ | [Monero (XMR)](https://www.getmonero.org/) | Medium |
| [KawPow](https://miningpoolstats.stream/ravencoin) | GPU-optimized | ❌ | ✅ | ✅ | [Ravencoin (RVN)](https://ravencoin.org/) | High |
| [ETChash](https://miningpoolstats.stream/ethereumclassic) | GPU-optimized | ❌ | ✅ | ✅ | [Ethereum Classic (ETC)](https://ethereumclassic.org/) | High |
| [ProgPowZ](https://miningpoolstats.stream/zano) | GPU-optimized | ❌ | ✅ | ✅ | [Zano (ZANO)](https://zano.org/) | High |
| [Blake3](https://miningpoolstats.stream/decred) | CPU/GPU hybrid | ✅ | ✅ | ✅ | [Decred (DCR)](https://decred.org/) | Low |
| [CryptoNight](https://miningpoolstats.stream/monero) | 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)](https://www.getmonero.org/) | Primary Monero algorithm |
| rx/wow | [Wownero (WOW)](https://wownero.org/) | RandomX variant for Wownero |
| rx/arq | [ArQmA (ARQ)](https://arqma.com/) | ArQmA-specific parameters |
| rx/graft | [Graft (GRFT)](https://graft.network/) | Graft Network |
### Configuration
```json
{
"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:**
```bash
sudo sysctl -w vm.nr_hugepages=1280
echo "vm.nr_hugepages=1280" | sudo tee -a /etc/sysctl.conf
```
**Windows:**
Run as Administrator:
```powershell
# 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
```json
{
"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
```json
{
"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
```json
{
"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:**
```json
{
"algo": "blake3",
"threads": 8,
"cpuPriority": 3
}
```
**GPU Mining:**
```json
{
"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](https://www.getmonero.org/) (legacy) | CryptoNight R |
| cn/0 | [Bytecoin](https://bytecoin.org/) | Original CryptoNight |
| cn/1 | Monero v7 | CryptoNight v7 |
| cn/2 | Monero v8 | CryptoNight v8 |
| cn/half | [Masari](https://getmasari.org/) | Half mode |
| cn/fast | [Electroneum](https://electroneum.com/) | Fast mode |
### Configuration
```json
{
"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:
- [WhatToMine](https://whattomine.com)
- [CoinWarz](https://www.coinwarz.com)
- [MiningPoolStats](https://miningpoolstats.stream)
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:**
```json
{
"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:
```bash
# 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
- [Pool Integration Guide](pools.md)
- [Quick Start Guide](../getting-started/quick-start.md)
- [Hardware Guides](https://www.reddit.com/r/MoneroMining)
- [Profitability Calculators](https://whattomine.com)
## Next Steps
- Read the [Pool Integration Guide](pools.md)
- Try the [Quick Start Guide](../getting-started/quick-start.md)
- Explore the [API Documentation](../api/endpoints.md)