drg-xmrig: fork of xmrig-hac with unified pow-hash share model

Port miner113's RX_DRAGONX mining model into the RX_HUSH path so DragonX
mining is identical in solo and pool mode:

- CpuWorker: filter EVERY hash on SHA256D(header + RandomX solution) (the
  block-bearing pow-hash) instead of the RandomX hash; submit the full
  32-byte nonce + rx_hash. Removes the fragile pool-mode dual-check that
  was dropping ~half of block candidates.
- Job: 32-byte nonce for RX_HUSH in pool mode too (was solo-only).
- JobResult: populate nonceBytes() on the standard 4-byte path.
- Client: submit a variable-width nonce (32-byte for DragonX) with a
  dynamically laid-out temp buffer.

Effect: shares and blocks use one metric, so the pool receives every block
candidate (no under-submission gap) and the hashrate is block-relevant.

Rebrand to drg-xmrig (version.h, build.sh, package.json, README) + add
PROTOCOL.md wire spec.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 16:49:22 -05:00
parent f9d6bcad5e
commit 84e7d1453c
10 changed files with 385 additions and 146 deletions

View File

@@ -1,5 +1,5 @@
#!/bin/bash
# XMRig-HAC Release Build Script
# DRG-XMRig (DragonX miner) Release Build Script
# Usage: ./build.sh [--linux-release] [--win-release]
set -e
@@ -31,7 +31,7 @@ if ! $BUILD_LINUX && ! $BUILD_WIN; then
exit 1
fi
echo "=== XMRig-HAC Release Builder v${VERSION} ==="
echo "=== DRG-XMRig Release Builder v${VERSION} ==="
mkdir -p "$RELEASE_DIR"
build_linux() {
@@ -65,7 +65,7 @@ build_linux() {
strip xmrig
# Package
local PKG_NAME="xmrig-hac-${VERSION}-linux-x64"
local PKG_NAME="drg-xmrig-${VERSION}-linux-x64"
local PKG_DIR="$RELEASE_DIR/$PKG_NAME"
rm -rf "$PKG_DIR"
mkdir -p "$PKG_DIR"
@@ -95,7 +95,7 @@ build_windows() {
local BUILD_DIR="$ROOT_DIR/build-windows"
# Package
local PKG_NAME="xmrig-hac-${VERSION}-win-x64"
local PKG_NAME="drg-xmrig-${VERSION}-win-x64"
local PKG_DIR="$RELEASE_DIR/$PKG_NAME"
rm -rf "$PKG_DIR"
mkdir -p "$PKG_DIR"