e2fab622b5
GPU-accelerated Equihash 192,7 miner in Rust with three solver backends: - CPU: Wagner's algorithm, AVX2 packed slots (xenoncat-style) - OpenCL: full on-GPU solve (kernels/equihash.cl); runs on NVIDIA and AMD - CUDA: driver-API replay of miniZ's extracted fatbin (src/miniz/) Also includes a default-off pearlhash backend (src/pearl/, native CPU core + NVRTC int8-GEMM GPU kernels) and a WIP Ethash CUDA backend (src/ethash/). Reverse-engineering scratch (alpha-miner, pearl-dump/) and the active runtime config (mine.toml) are gitignored; mine.example.toml is the template. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
64 lines
2.2 KiB
TOML
64 lines
2.2 KiB
TOML
[package]
|
|
name = "jackpotminer"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "A GPU-accelerated Equihash 192,7 miner (ZClassic and other 192,7 coins)"
|
|
|
|
[dependencies]
|
|
blake2b_simd = "1"
|
|
sha2 = "0.10"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
toml = "0.8"
|
|
hex = "0.4"
|
|
rayon = "1"
|
|
num_cpus = "1"
|
|
core_affinity = "0.8"
|
|
clap = { version = "4", features = ["derive"] }
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
anyhow = "1"
|
|
ctrlc = "3"
|
|
socket2 = "0.5"
|
|
ocl = { version = "0.19", optional = true }
|
|
ratatui = "0.30.0"
|
|
eframe = { version = "0.28", optional = true }
|
|
# Pearl (PRL) pearlhash backend deps (feature `pearl`).
|
|
blake3 = { version = "1.5", optional = true }
|
|
primitive-types = { version = "0.12", optional = true }
|
|
rand = { version = "0.9", optional = true }
|
|
bincode = { version = "1", optional = true }
|
|
base64 = { version = "0.22", optional = true }
|
|
|
|
[features]
|
|
default = ["gpu", "cuda", "config-gui"]
|
|
gpu = ["dep:ocl"]
|
|
# CUDA backend: drives miniZ's embedded Equihash 192,7 fatbin via the CUDA driver
|
|
# API. build.rs only links libcuda (no nvcc / kernel compilation needed).
|
|
cuda = []
|
|
# Ethash backend (miniZ's extracted Ethash solver), default-off / work-in-progress:
|
|
# blobs + replay scaffold live in src/ethash/; needs a captured launch recording to
|
|
# go live (see src/ethash/README.md). Pulls in the same libcuda link as `cuda`.
|
|
ethash = ["cuda"]
|
|
# Pearl (PRL) pearlhash backend (default-off): native CPU miner+verifier ported
|
|
# from the open-source reference. See src/pearl/ and pearl-dump/SPEC.md.
|
|
pearl = ["dep:blake3", "dep:primitive-types", "dep:rand", "dep:bincode", "dep:base64"]
|
|
# Pearl GPU acceleration: NVRTC-compiled int8 GEMM+transcript kernel (links
|
|
# libcuda + libnvrtc; no build-time nvcc). Validated against the CPU reference.
|
|
pearl-cuda = ["pearl"]
|
|
# Optional native GUI config editor (the `jackpotminer-config` binary). Off by
|
|
# default so the miner never pulls in the GUI toolkit.
|
|
config-gui = ["dep:eframe"]
|
|
|
|
# The GUI config editor is a separate binary, built only with --features config-gui.
|
|
[[bin]]
|
|
name = "jackpotminer-config"
|
|
path = "src/config_gui.rs"
|
|
required-features = ["config-gui"]
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|