/hashman-rs

put a mutex between your gaming rig and your mining rig

Primary LanguageRust

example workflow

Hashman

Hashman is a manager for cryptocurrency miners on Windows. It introduces automation on top of a miner process that reacts to other GPU activity on the target rig, i.e. gaming. Hashman detects when the GPU is idle and automatically starts mining. Then, if another app needs the GPU, Hashman will back off mining until the GPU is once again idle.

How to run

build for release

clone repo. from root run:

cargo build --release

this outputs an exe at target/release/hashman.exe. Add it to your PATH for easy access.

run the exe:

hashman-rs.exe {num_loops} {interval_seconds}

args

  • num_loops: n times the program will wake from sleep and check GPU contention
    • default 21,000,000
  • interval_seconds: loop every n seconds
    • default 21

Configuration

Create your hashpath configuration file at ~/.hashman/hashpath.toml

If it does not exist, this file is auto-generated and populated by default when you first run the app.

Template

gaming_path = "C:\\Games\\steamapps\\common,D:\\Games\\origin"
mining_path = "NiceHashMiner.exe,app_nhm.exe"
miner_exe = "~\\AppData\\Local\\Programs\\NiceHash Miner\\NiceHashMiner.exe"

Schema

  • miner_exe: String
    • the fully qualified path to your mining exe. This app is designed for a NiceHashMiner.exe but it should be compatible with other miners.
  • gaming_path: String
    • a comma-separated list of directories and .exe's of games. Directories will be recursively searched for any .exe's within. This does not need to actually be a game executable, just any exe that needs exclusive access to the GPU. Gaming is the most common use case so this is the term used throughout hashman.
  • mining_path: String
    • a comma-seprated list of executables that are considered "miner" proceseses

Testing

run tests

cargo test

run bench

cargo bench