(For Ubuntu 16.04 or 18.04)
To compile you need the following:
- CUDA Toolkit: see installation guide
- CUDA Driver compatible with installed Toolkit: see compatibility table
- libcurl library: to install run
$ apt install libcurl4-openssl-dev
- OpenSSL 1.0.2 library: to install run
$ apt install libssl-dev
- Change directory to
autolykos/secp256k1
- Run
make
If make
completed successfully there will appear an executable
autolykos/secp256k1/auto.out
and (if not already present)
a config file autolykos/secp256k1/config.json
with stub contents.
- Change directory to
autolykos/secp256k1
- Run
make test
If make
completed successfully there will appear a test executable
autolykos/secp256k1/test.out
.
- Install compatible pair of MS Visual Studio C++ toolchain and CUDA toolkit compatibility table for latest CUDA toolkit
- Build libcurl from sources with Visual Studio toolchain instruction
- Download OpenSSL 1.0.2 installer from slproweb.com
- Edit
secp256k1/buildwin.cmd
file, changeOPENSSL_DIR
,LIBCURL_DIR
to your libcurl and OpenSSL directories, changeCUDA_COMPUTE_ARCH
to GPU code architecture you want - Find
vcvars64.bat
script, it should be inVISUAL_STUDIO_INSTALL_DIRECTORY\VC\Auxiliary\Build
- Run cmd.exe, run
vcvars64.bat
script, then change dir to secp256k1, then runbuildwin.cmd
- If everything went good,
miner.exe
should appear insecp256k1
directory - If
miner.exe
can't findnvml.dll
, addC:\Program Files\NVIDIA Corporation\NVSMI
to your PATH environment variable before running.
- To run the miner you should pass a name of a configuration file
[YOUR_CONFIG]
as an optional argument - If the filename is not specified, the miner will try to use
autolykos/secp256k1/config.json
as a config - The configuration file must contain json string of the following structure:
{ "mnemonic" : "mnemonicstring", "node" : "https://127.0.0.1", "keepPrehash" : false }
If your seed mnemonic string is protected by password, add option "mnemonicPass": "yourpassword"
to your configuration.
The mode of execution with keepPrehash
option:
true
-- enable total unfinalized prehashes array (5GiB) reusage. ( Should only be used if your CUDA devices have >= 8GiB memory)false
-- prehash recalculation for each block. (For CUDA devices with >= 3GiB memory)
To run the miner on all available CUDA devices type:
$ <YOUR_PATH>/autolykos/secp256k1/auto.out [YOUR_CONFIG]
To choose CUDA devices change and use runner.sh
or directly change environment variable CUDA_VISIBLE_DEVICES
- Create a config.json file in miner directory with following structure:
{ "mnemonic" : "mnemonicstring", "node" : "https://127.0.0.1", "keepPrehash" : false }
If your seed mnemonic string is protected by password, add option "mnemonicPass": "yourpassword"
to your configuration.
The mode of execution with keepPrehash
option:
true
-- enable total unfinalized prehashes array (5GiB) reusage. ( Should only be used if your CUDA devices have >= 8GiB memory)false
-- prehash recalculation for each block. (For CUDA devices with >= 3GiB memory)
To change CUDA devices available to the miner change environment variable CUDA_VISIBLE_DEVICES
, for example set CUDA_VISIBLE_DEVICES="0,1"
- Run
auto.out -G
It will generate a BIP39 192 bit entropy mnemonic phrase and public key for you.
Sometimes mining problems can be related to your Ergo node problems. We recommend to test your miner build with this public testnet node:
{ "mnemonic": "noise peasant subway frozen illegal pretty oak agent train valid wash title burst column yard decide move coin gas asset pretty hire happy fuel", "node": "http://159.203.36.162:9052", "keepPrehash": true }
Miner has a HTTP info page located at http://miningnode:36207
(one can change default port by adding -DHTTPAPI_PORT XXXX
to Makefile).
It outputs total hashrate, and per-GPU hashrates, power usages and temperatures in JSON format (relies on NVML, can fail if NVML fails - if so, JSON contains error field).