61108cbc13
- OpenMP multiprocessing for dataset generation - remove some temporaries - add march_native flag |
||
---|---|---|
benchmarks | ||
spec | ||
src | ||
tests | ||
.appveyor.yml | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
ethash.nimble | ||
nim.cfg |
README.md
Nim Ethash
A pure Nim implementation of Ethash, the Ethereum proof of work
Implementation is based on the spec revision 23 (2017-08-03) and under the Apache License v2.
Mining
An unoptimized mining CPU backend is available through the compile-time flag -d:ethash_mining
.
It requires compilation through the C++ backend.
Optimizations
For maximum speed, compile Ethash with -d:release -d:march_native -d:openmp
.
This will compile Ethash in Nim release mode, with all supported CPU extensions (AVX2 especially) and with OpenMP multiprocessing
On MacOS, OpenMP requires installing GCC-7. It can be done through homebrew.
Original implementation
Original Ethereum implementation is available here.
Warning ⚠ - License notice: the original implementation is under GPLv3 or LGPLv3 and must not be used in this project.