Nim implementation of Ethash, Ethereum proof of work and Ethereum mining
Go to file
Jacek Sieka f19dc30836
nimble: remove nimcache setting, add release mode test task
2018-09-07 13:31:02 -06:00
benchmarks Switch to nimcrypto (#6) fix #9 2018-07-23 14:52:14 +02:00
spec Fix original implementation call. Now outputs correct results 2018-02-23 17:49:56 +01:00
src fix comments, remove useless cast 2018-08-22 14:02:25 +02:00
tests Switch to nimcrypto (#6) fix #9 2018-07-23 14:52:14 +02:00
.appveyor.yml appveyor: fix version check 2018-09-06 12:00:41 -06:00
.gitignore initial commit 2018-02-15 11:23:42 +01:00
.travis.yml ci: update 2018-09-04 22:00:14 -06:00
LICENSE-APACHEv2 license: add mit 2018-09-04 22:02:12 -06:00
LICENSE-MIT license: add mit 2018-09-04 22:02:12 -06:00
README.md readme: update license 2018-09-05 12:47:14 -06:00
ethash.nimble nimble: remove nimcache setting, add release mode test task 2018-09-07 13:31:02 -06:00
nim.cfg 🔥 Speed and memory optimizations (OpenMP !): 2018-02-28 18:46:28 +01:00

README.md

ethash

Build Status (Travis) Windows build status (Appveyor) License: Apache License: MIT Stability: experimental

Introduction

A pure-Nim implementation of Ethash, the Ethereum proof of work

Implementation is based on the spec revision 23 (2017-08-03).

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 (especially AVX2) and with OpenMP multiprocessing. On MacOS, OpenMP requires installing GCC-7 and 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.

License

Licensed and distributed under either of

at your option. This file may not be copied, modified, or distributed except according to those terms.