Nim implementation of Ethash, Ethereum proof of work and Ethereum mining
Go to file
Jacek Sieka 571231535e
license: add mit
2018-09-04 22:02:12 -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 ci: update 2018-09-04 22:00:14 -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 ci: update 2018-09-04 22:00:14 -06:00
ethash.nimble Switch to nimcrypto (#6) fix #9 2018-07-23 14:52:14 +02: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 under both of the following: