- 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>
141 lines
3.4 KiB
Markdown
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:
|
|
|
|

|
|
|
|
### 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.
|