Mining/site-docs/features/multi-miner.md
snider 3057701ac1 feat: Add SQLite persistence, enhanced dashboard UI, and comprehensive E2E tests
- Add SQLite database package for hashrate history persistence with configurable retention
- Enhance dashboard with responsive stats bar, improved chart component, and worker selector
- Add terminal modal component for console output viewing
- Implement comprehensive E2E test suite with page objects pattern
- Add history API endpoints for historical data queries
- Update worker message handling with proper registration
- Add new UI pages structure with layouts and components
- Update Docker configuration for Go 1.24
- Add PostCSS configuration for Tailwind CSS processing

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

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

141 lines
3.4 KiB
Markdown

# Multi-Miner Support
The Mining Dashboard supports running multiple miners simultaneously with unified monitoring.
## Supported Miners
### XMRig (CPU Mining)
| Feature | Details |
|---------|---------|
| **Type** | CPU miner |
| **Algorithms** | RandomX, CryptoNight, AstroBWT |
| **Coins** | Monero (XMR), Loki, Arweave, etc. |
| **API** | HTTP JSON API |
| **Download** | Automatic from GitHub releases |
### TT-Miner (GPU Mining)
| Feature | Details |
|---------|---------|
| **Type** | NVIDIA GPU miner |
| **Algorithms** | Ethash, KawPow, ProgPow, ZelHash |
| **Coins** | Various PoW coins |
| **API** | HTTP JSON API |
| **Requirements** | NVIDIA CUDA GPU |
## Running Multiple Instances
You can run multiple miners of the same or different types:
```
┌─────────────────────────────────────────┐
│ Mining Dashboard │
├─────────────────────────────────────────┤
│ xmrig-456 │ 12.5 kH/s │ Running │
│ xmrig-789 │ 11.8 kH/s │ Running │
│ tt-miner-123 │ 45.2 MH/s │ Running │
└─────────────────────────────────────────┘
```
### Unique Instance Names
Each miner gets a unique name based on:
- Miner type (xmrig, tt-miner)
- Unique suffix (timestamp or random)
Example: `xmrig-1704067200`
### Separate Configurations
Each instance can have:
- Different pool
- Different wallet
- Different resource allocation
## Workers Page
The Workers page shows all running miners:
![Workers](../assets/screenshots/workers.png)
### Starting Multiple Miners
1. Go to **Workers** page
2. Select a profile from the dropdown
3. Click **Start**
4. Repeat with different profiles
### Managing Workers
Each worker card shows:
- **Name** - Instance name
- **Hashrate** - Current mining speed
- **Status** - Running/Stopped
- **Stop** button - Terminate the miner
## Resource Allocation
### CPU Miners (XMRig)
Control CPU usage via profile settings:
```json
{
"threads": 4, // Use 4 threads
"hugePages": true
}
```
Run multiple instances with different thread counts:
- Instance 1: 4 threads
- Instance 2: 2 threads
### GPU Miners (TT-Miner)
Control GPU selection via profile settings:
```json
{
"devices": "0,1" // Use GPU 0 and 1
}
```
Run multiple instances on different GPUs:
- Instance 1: GPU 0
- Instance 2: GPU 1,2
## Aggregated Statistics
The dashboard shows combined stats:
| Stat | Calculation |
|------|-------------|
| **Total Hashrate** | Sum of all miners |
| **Total Shares** | Sum of all accepted shares |
| **Total Rejected** | Sum of all rejected shares |
| **Efficiency** | (Total - Rejected) / Total |
## API Access
### List All Miners
```bash
curl http://localhost:9090/api/v1/mining/miners
```
### Start a New Instance
```bash
curl -X POST http://localhost:9090/api/v1/mining/profiles/{id}/start
```
### Stop a Specific Instance
```bash
curl -X DELETE http://localhost:9090/api/v1/mining/miners/xmrig-456
```
## Best Practices
1. **Don't oversubscribe resources** - Leave some CPU/GPU headroom
2. **Use different pools** - Spread risk across multiple pools
3. **Monitor temperatures** - Watch for thermal throttling
4. **Name profiles clearly** - "GPU0-ETH", "CPU-XMR", etc.