igneum/proto-cuda/windows-miner/make-package.sh
igneum-labs 27e944d8eb GPU workers on the real hash: serve protocol in Metal, CUDA and OpenCL, Windows mining package, devnet v1 log
proto-metal --serve compiles igneum_hash_bound at runtime and mines jobs from stdin (init words in buffer 3, program
and dataset cached per seed); proto-cuda and proto-opencl host serve modes from the pack's kernel_bound.cu / .cl with a
seed guard; --vendor device filter for OpenCL. windows-miner/: START-MINING.bat + start-mining.ps1 (GPU and tool
detection, pack export, cached builds, MINERS identities per vendor, status every 30 s, uploads every 60 s, rebuild on
seed change, Ctrl+C summary), README.txt, make-package.sh (igneum-mine-test.zip with a cross-compiled miner).
docs: fork-divergence devnet v1, bench-log entry with the CPU, Metal and overnight numbers.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 19:18:19 +00:00

26 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
# Builds igneum-mine-test.zip (one double-click mining test for a Windows PC) on the Mac.
# Needs: a cross-compiled igneum-miner.exe (cargo build --release -p igneum-miner --target x86_64-pc-windows-gnu in
# vendor/igneum-node, with Homebrew mingw-w64) and the sources in proto-cuda/, proto-opencl/ and this directory.
# Usage: windows-miner/make-package.sh [output zip, default ~/Desktop/igneum-mine-test.zip]
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
ROOT="$(cd "$HERE/../.." && pwd)"
OUT="${1:-$HOME/Desktop/igneum-mine-test.zip}"
EXE="$ROOT/vendor/igneum-node/target/x86_64-pc-windows-gnu/release/igneum-miner.exe"
[ -f "$EXE" ] || { echo "no $EXE; cross-compile the miner first" >&2; exit 1; }
STAGE="$(mktemp -d)/igneum-mine-test"
mkdir -p "$STAGE/proto-cuda/packs" "$STAGE/proto-opencl"
cp "$HERE/START-MINING.bat" "$HERE/start-mining.ps1" "$HERE/README.txt" "$HERE/upload-log.bat" "$HERE/UPLOAD.md" "$STAGE/"
cp "$ROOT/proto-cuda/WINDOWS-MINER.md" "$STAGE/"
cp "$EXE" "$STAGE/igneum-miner.exe"
cp "$ROOT/proto-cuda/host.cu" "$ROOT/proto-cuda/build.bat" "$ROOT/proto-cuda/README.md" "$STAGE/proto-cuda/"
cp "$ROOT/proto-opencl/host.c" "$ROOT/proto-opencl/build.bat" "$ROOT/proto-opencl/README.md" "$ROOT/proto-opencl/WAVEFRONT.md" "$STAGE/proto-opencl/"
# CRLF for the files Windows tools read as text
for f in "$STAGE/START-MINING.bat" "$STAGE/README.txt" "$STAGE/proto-cuda/build.bat" "$STAGE/proto-opencl/build.bat"; do
perl -pi -e 's/\r?\n/\r\n/' "$f"
done
rm -f "$OUT"
(cd "$(dirname "$STAGE")" && zip -qr "$OUT" "$(basename "$STAGE")")
ls -la "$OUT"
unzip -l "$OUT" | tail -n +4 | awk '{print $4}' | sed '/^$/d'