Commit Graph
56 Commits
Author SHA1 Message Date
rob thijssen bfeb0328cd Refactor CUDA build workflow to use repo Containerfile
Replace inline Dockerfile with repo Containerfile and export built
binary via build output instead of docker image copy.
2025-09-12 09:14:55 +03:00
rob thijssen 6e089208ab Add fallback CUDA include paths in build script and deduplicate dirs 2025-09-12 08:57:28 +03:00
rob thijssen 48e99f9db5 reduce artifact retention to 3 days and add CUDA_HOME env variable 2025-09-12 08:49:26 +03:00
rob thijssen 70485d3d91 Remove optional rsync to CDN from CUDA build workflow 2025-09-12 08:39:29 +03:00
rob thijssen c703e7d273 Fix condition to check SSH key presence correctly in workflow 2025-09-12 08:38:46 +03:00
rob thijssen aef8c865cb clippy cleanup 2025-09-12 08:34:54 +03:00
rob thijssen d2c39bbdcb ci: build cuda binaries 2025-09-12 08:29:09 +03:00
rob thijssen 8b02b790a4 wip: cubin embed 2025-09-12 04:22:15 +03:00
rob thijssen 222890dc92 cuda scaffold
- Add engine-gpu-cuda crate with basic CUDA kernel (qpow G1) - Implement
CUDA build.rs compiling .cu to PTX when "cuda" feature enabled -
Integrate GPU engine into miner-service with runtime CUDA availability
check - Add fallback to CPU engine in gpu-cuda until full GPU kernel
support is ready - Enable optional "cuda" feature in miner-cli and
miner-service crates
2025-09-11 18:51:52 +08:00
rob thijssen e107f03c5a Merge pull request #3 from Quantus-Network/feat/montgomery
fast modular arithmetic (montgomery multiplication)
2025-09-11 18:40:48 +08:00
rob thijssen 50a620b9b4 fix clippy warning and simplify cpu feature detection in mont_portable
module
2025-09-11 10:13:35 +03:00
rob thijssen 113a2ad78c refactor montgomery normalization and fix mul target detection 2025-09-11 10:06:07 +03:00
rob thijssen 80af3ce052 test triage 2025-09-11 09:38:30 +03:00
rob thijssen 68c5835fc6 clippy cleanup 2025-09-11 09:19:07 +03:00
rob thijssen 60cc91ddd6 taplo tidy 2025-09-11 09:07:20 +03:00
rob thijssen f8e2378045 chore: replace references to deprecated --num-cores flag with --workers 2025-09-11 08:24:23 +03:00
rob thijssen 63f271519d Add aarch64 UMULH/ADCS Montgomery backend and update docs 2025-09-11 01:42:06 +08:00
rob thijssen 317734ad0e Add aarch64 UMULH optimized Montgomery multiplication backend 2025-09-11 01:32:31 +08:00
rob thijssen ef2797d295 Add BMI2+ADX optimized Montgomery multiplication with inline asm
Implement CIOS multiplication using MULX, ADCX, and ADOX instructions
for x86_64 with BMI2 and ADX features detected at runtime. Fall back to
other implementations when features are unavailable.
2025-09-11 01:21:15 +08:00
rob thijssen 11839c07b2 feat: conditional metrics for engine-montgomery in miner-service cargo
features
2025-09-10 23:36:56 +08:00
rob thijssen 8b758492c1 fix: optional metrics feature to engine-montgomery crate 2025-09-10 23:17:01 +08:00
rob thijssen 7ec802ee24 feat: montgomery-optimized cpu mining engine
- introduce new `engine-montgomery` crate implementing a 512-bit
fixed-width montgomery multiplication backend for qpow mining. - mirror
`cpu-fast` engine behavior and metrics for direct comparison. - add
runtime backend selection with portable and x86_64 bmi2/adx kernels. -
expose `--engine cpu-montgomery` cli option in miner-cli. - integrate
engine and metrics support in miner-service with feature gating. - add
engine backend info metric for observability and a/b testing.
2025-09-10 22:52:04 +08:00
rob thijssen 604f61fd9d Merge pull request #2 from Quantus-Network/workers
chore: replace references to deprecated --num-cores flag with --workers
2025-09-10 21:31:29 +08:00
rob thijssen b035a497fc chore: replace references to deprecated --num-cores flag with --workers 2025-09-10 19:45:06 +08:00
rob thijssen fc6a6b1014 Merge pull request #1 from Quantus-Network/feat/optimisation
2500× hashrate boost: 20k → up to 50m ops/s (cpu-fast, metrics, throttling, stable)
2025-09-10 17:35:40 +08:00
rob thijssen 1b4771ebc3 pr-cleanup: scrubbed references to implementation docs 2025-09-10 11:34:32 +08:00
rob thijssen 7cbeb43b39 pr-cleanup 2025-09-10 11:08:39 +08:00
rob thijssen b5cfa06ffe 09: unit tests
- Verify Baseline and Fast CPU engines produce matching results - Test
Exhausted and Cancelled engine states with precise hash counts - Cover
miner-service request validation error branches - Test miner-service
HTTP endpoints for expected status codes - Confirm chunked mining sends
progress and completion messages
2025-09-10 10:46:36 +08:00
rob thijssen cff7a3284b 08: cpuset metric and systemd units
- Detect effective CPUs with cpuset awareness (cgroup v2/v1 fallback) -
Log detected cpuset mask or fallback info at startup (debug) - Expose
miner_effective_cpus Prometheus gauge (metrics feature) - Add
production-ready systemd unit and example CPU affinity overrides -
Include documentation for installation, overrides, and validation
2025-09-10 09:57:42 +08:00
rob thijssen 49efb4ebc5 07: stable toolchain, rust validations
- Switch toolchain to stable with clippy and rustfmt components - Clean
up Clippy warnings with inline format args and hygiene fixes - Add GPU
engine placeholders (gpu-cuda, gpu-opencl) in CLI and service - Return
clear runtime error and exit for unimplemented GPU engines - Format all
TOML files with Taplo and ensure taplo fmt --check passes - Improve
mining nonce partitioning for safe range splits - Update tests to pass
cleanly on stable without warnings
2025-09-09 21:39:01 +08:00
rob thijssen 242bbe71f6 06: manipulator and difficulty
- Introduce ChainManipulatorEngine using fast incremental hashing path -
Throttle mining speed per solved block using sleeps after nonce batches
- Add CLI/env options to control base delay, batch size, throttle cap,
and resume state - Wire engine selection and parameters through
miner-service and miner-cli - Add debug logs for throttle state at job
start and on block found - Add new Grafana panel showing robust
difficulty median per chain for visibility
2025-09-09 19:41:38 +08:00
rob thijssen d0382f875a 05: workers and dashboard sync
- Replace `--cores`/`--num-cores` with `--workers` to clarify intent
(logical CPU threads) - Detect cpuset-aware default for workers, leaving
~50% headroom on shared hosts - Clamp user-specified workers to
effective cpuset size - Update logs, configs, and APIs accordingly
2025-09-09 12:18:04 +08:00
rob thijssen ce600d454c fix: remove deprecated metrics update on job cancel and consolidate
active job metrics update
2025-09-08 21:52:01 +08:00
rob thijssen b69832bb4a 04: metrics chunking and dashboards
Improve mining metrics with chunked progress updates and dashboards

- Emit periodic per-thread progress updates by chunking search ranges,
enabling fresher and more accurate job/global hash rates. - Smooth
per-thread hash rates with EMA; derive per-job and global rates from
thread aggregates. - Remove job/thread rate series on
completion/cancellation to avoid scrape-timing zero artifacts. - Add
service-level metrics: `miner_active_jobs` gauge and
`miner_mine_requests_total` counter with result labels. - Introduce
CLI/env knob `--progress-chunk-ms` to control progress update frequency
(default 2000ms). - Update Grafana dashboards for trend-friendly
queries, cleaned labels, 24h/1h peak views, and job-level filtering. -
Add detailed documentation summarizing metrics improvements, usage, and
operational guidance.
2025-09-08 17:01:43 +08:00
rob thijssen e3b7da480d 00: roadmap to gpu 2025-09-07 21:48:07 +08:00
rob thijssen ea40fdf6e5 03: engine comparability 2025-09-07 21:34:44 +08:00
rob thijssen 85a4818c09 02: fix compiler issues 2025-09-07 20:49:47 +08:00
rob thijssen 6cd53557d7 02: cpu fast engine and metrics 2025-09-07 20:48:01 +08:00
rob thijssen 0d5adf583b 01: soc and metrics
Convert repository into Cargo workspace with modular crates

- Split code into workspace members: miner-cli, miner-service, pow-core,
engine-cpu, engine-gpu-cuda, engine-gpu-opencl, metrics - Moved QPoW
math logic into local pow-core crate with compatibility API and
incremental helpers - Defined MinerEngine trait and baseline CPU engine
in engine-cpu crate - Rewrote service layer in miner-service: job
management, HTTP API, engine orchestration - Added CLI binary crate
miner-cli with flags: --port, --num-cores, --metrics-port, --engine -
Implemented runtime toggle for Prometheus metrics exporter enabled only
when --metrics-port provided - Deprecated root src/lib.rs and
src/main.rs with notices pointing to new CLI/workspace entrypoints
2025-09-07 20:21:10 +08:00
GitHub Action 614e23370e bump version to v0.2.0 2025-08-29 13:04:05 +00:00
NIK e01af68954 Revert "chsnge version to 0.2"
This reverts commit ae143b6bf5.
2025-08-29 20:00:55 +07:00
NIK 18c2c2b008 update toolchain 2025-08-29 18:01:50 +07:00
NIK ae143b6bf5 chsnge version to 0.2 2025-08-29 17:52:36 +07:00
NIK 8fa615e117 minor fixes 2025-08-29 17:27:20 +07:00
GitHub Action d70728687e bump version to v0.1.2 2025-07-14 09:08:25 +00:00
NIK 6f03ff2c5b Merge branch 'main' of github.com:Quantus-Network/miner 2025-06-16 12:20:17 +08:00
NIK 1f026da520 remove Apple-Intel build 2025-06-16 12:19:53 +08:00
GitHub Action 3bff5fa4bf bump version to v0.1.1 2025-06-16 04:18:04 +00:00
NIK 2f2c8e69e6 Update release.yml 2025-06-16 12:16:48 +08:00
NIK 15d09cd130 Create release.yml 2025-06-16 12:12:53 +08:00