Nim implementation of Ethash, Ethereum proof of work and Ethereum mining
Go to file
mratsim 61108cbc13 🔥 Speed and memory optimizations (OpenMP !):
- OpenMP multiprocessing for dataset generation
- remove some temporaries
- add march_native flag
2018-02-28 18:46:28 +01:00
benchmarks Fix int -> uint conversion issue in mkcache 2018-02-19 15:02:01 +01:00
spec Fix original implementation call. Now outputs correct results 2018-02-23 17:49:56 +01:00
src 🔥 Speed and memory optimizations (OpenMP !): 2018-02-28 18:46:28 +01:00
tests 🔥 Speed and memory optimizations (OpenMP !): 2018-02-28 18:46:28 +01:00
.appveyor.yml Add CI, genesis tests and data sizes lookup tables 2018-02-19 17:14:19 +01:00
.gitignore initial commit 2018-02-15 11:23:42 +01:00
.travis.yml Add CI, genesis tests and data sizes lookup tables 2018-02-19 17:14:19 +01:00
LICENSE Use the standard Nimble name for the Apache v2 license 2018-02-27 19:59:55 +02:00
README.md 🔥 Speed and memory optimizations (OpenMP !): 2018-02-28 18:46:28 +01:00
ethash.nimble 🔥 Speed and memory optimizations (OpenMP !): 2018-02-28 18:46:28 +01:00
nim.cfg 🔥 Speed and memory optimizations (OpenMP !): 2018-02-28 18:46:28 +01:00

README.md

Nim Ethash

Build Status (Travis)License Stability: experimental

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.