Commit Graph
54 Commits
Author SHA1 Message Date
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
NIK 1b28c32456 fmt fix 2025-06-16 12:02:52 +08:00
NIK 8f22db4763 clippy fix 2025-06-16 12:01:29 +08:00