198 lines
4.1 KiB
Markdown
198 lines
4.1 KiB
Markdown
# Vexta CPU Miner
|
|
|
|
Official CPU miner for **Vexta RandomX**.
|
|
|
|
Vexta CPU Miner is a standalone RandomX miner designed specifically for the Vexta network.
|
|
|
|
## Download
|
|
|
|
Latest release:
|
|
|
|
https://github.com/VextaProject/Vexta-CPU-Miner/releases/latest
|
|
|
|
Prebuilt binaries are available for:
|
|
|
|
- Windows x64
|
|
- Linux x64
|
|
|
|
## Features
|
|
|
|
- Vexta RandomX mining
|
|
- RandomX full-memory mode
|
|
- Windows x64 and Linux x64 support
|
|
- Automatic CPU thread selection based on physical cores
|
|
- Manual CPU thread override with `-t`
|
|
- Startup diagnostics for CPU, cores, AES, Huge Pages, and RandomX library
|
|
- Local hashrate display
|
|
- 5 / 15 / 60 minute average hashrate
|
|
- Accepted / rejected share statistics
|
|
- Automatic RandomX seed changes
|
|
- Daemon-confirmed `BLOCK FOUND` notifications when supported by the pool
|
|
|
|
## Usage
|
|
|
|
### Windows
|
|
|
|
```text
|
|
vexta-cpuminer.exe -o stratum+tcp://POOL:PORT -u WALLET.WORKER -p x -t THREADS
|
|
```
|
|
|
|
Example:
|
|
|
|
```text
|
|
vexta-cpuminer.exe -o stratum+tcp://pool.example.com:9335 -u YOUR_VEXTA_ADDRESS.worker1 -p x -t 4
|
|
```
|
|
|
|
### Linux
|
|
|
|
```text
|
|
./vexta-cpuminer -o stratum+tcp://POOL:PORT -u WALLET.WORKER -p x -t THREADS
|
|
```
|
|
|
|
Example:
|
|
|
|
```text
|
|
./vexta-cpuminer -o stratum+tcp://pool.example.com:9335 -u YOUR_VEXTA_ADDRESS.worker1 -p x -t 4
|
|
```
|
|
|
|
## Parameters
|
|
|
|
| Parameter | Description |
|
|
|---|---|
|
|
| `-o` | Stratum pool address |
|
|
| `-u` | Vexta wallet address, optionally followed by `.worker` |
|
|
| `-p` | Pool password, normally `x` |
|
|
| `-t` | Number of CPU mining threads (optional; auto-detects physical cores when omitted) |
|
|
|
|
## Requirements
|
|
|
|
- 64-bit Windows or Linux
|
|
- Approximately 2+ GB available RAM for the RandomX dataset
|
|
- AES-capable CPU recommended
|
|
|
|
RandomX full-memory mode is enabled.
|
|
|
|
On startup, the miner reports detected CPU information, physical and logical CPU counts,
|
|
AES support, Huge Pages status, RandomX library status, and the selected mining thread count.
|
|
|
|
If `-t` is omitted, the miner automatically uses the detected physical core count.
|
|
|
|
## Building from Source
|
|
|
|
### Requirements
|
|
|
|
- .NET 6 SDK
|
|
- Git
|
|
- CMake
|
|
- C/C++ build tools
|
|
- RandomX v2.0.1
|
|
|
|
Clone the miner:
|
|
|
|
```bash
|
|
git clone https://github.com/VextaProject/Vexta-CPU-Miner.git
|
|
cd Vexta-CPU-Miner
|
|
```
|
|
|
|
### Linux x64
|
|
|
|
```bash
|
|
dotnet restore
|
|
|
|
dotnet publish Vexta.CpuMiner.csproj \
|
|
-c Release \
|
|
-r linux-x64 \
|
|
--self-contained true \
|
|
-p:PublishSingleFile=true \
|
|
-p:IncludeNativeLibrariesForSelfExtract=true
|
|
```
|
|
|
|
### Windows x64
|
|
|
|
```bash
|
|
dotnet restore
|
|
|
|
dotnet publish Vexta.CpuMiner.csproj \
|
|
-c Release \
|
|
-r win-x64 \
|
|
--self-contained true \
|
|
-p:PublishSingleFile=true \
|
|
-p:IncludeNativeLibrariesForSelfExtract=true
|
|
```
|
|
|
|
## RandomX Native Library
|
|
|
|
The miner uses the official RandomX implementation:
|
|
|
|
https://github.com/tevador/RandomX
|
|
|
|
Tested version: **v2.0.1**
|
|
|
|
### Linux example
|
|
|
|
```bash
|
|
git clone --branch v2.0.1 https://github.com/tevador/RandomX.git
|
|
cd RandomX
|
|
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build build -j$(nproc)
|
|
```
|
|
|
|
Place `librandomx.so` next to `vexta-cpuminer`.
|
|
|
|
### Windows
|
|
|
|
Build RandomX as a 64-bit DLL and place `librandomx.dll` next to `vexta-cpuminer.exe`.
|
|
|
|
The official release packages already include the required native RandomX library.
|
|
|
|
## Pool Compatibility
|
|
|
|
This miner is specifically designed for **Vexta RandomX**.
|
|
|
|
It uses a Bitcoin-style 80-byte block header.
|
|
|
|
Supported Stratum methods:
|
|
|
|
- `mining.subscribe`
|
|
- `mining.authorize`
|
|
- `mining.set_difficulty`
|
|
- `mining.notify`
|
|
- `mining.submit`
|
|
|
|
### RandomX Seed
|
|
|
|
Vexta RandomX pools must provide the RandomX seed as the **10th parameter** of `mining.notify`.
|
|
|
|
The miner uses this seed to initialise and update the RandomX dataset.
|
|
|
|
### BLOCK FOUND Notification
|
|
|
|
The miner supports the optional Vexta Stratum extension:
|
|
|
|
```text
|
|
mining.block_found
|
|
```
|
|
|
|
Example:
|
|
|
|
```json
|
|
{
|
|
"id": null,
|
|
"method": "mining.block_found",
|
|
"params": [
|
|
12345,
|
|
"BLOCK_HASH"
|
|
]
|
|
}
|
|
```
|
|
|
|
This notification should only be sent after the daemon has accepted the block.
|
|
|
|
Pools that do not implement `mining.block_found` can still be used normally. The miner will simply not display the confirmed `BLOCK FOUND` message.
|
|
|
|
## License
|
|
|
|
MIT License
|
|
|
|
Copyright (c) 2026 Vexta Project
|