No description
Find a file
2025-02-24 09:55:14 +00:00
.github/workflows use the common CI workflow 2025-02-24 08:48:29 +01:00
benchmarks update CI versions (#18) 2025-02-19 06:21:48 +01:00
spec use non-EOL macOS in CI; apply styleCheck:error; prefer func to proc(){.noSideEffect.}; check refc in Nim 2.0+ 2024-02-20 21:39:23 +00:00
src update CI versions (#18) 2025-02-19 06:21:48 +01:00
tests update CI versions (#18) 2025-02-19 06:21:48 +01:00
.gitignore Add nim 2.0 and devel to CI matrix 2024-02-14 07:46:50 +07:00
config.nims Add nim 2.0 and devel to CI matrix 2024-02-14 07:46:50 +07:00
ethash.nimble use non-EOL macOS in CI; apply styleCheck:error; prefer func to proc(){.noSideEffect.}; check refc in Nim 2.0+ 2024-02-20 21:39:23 +00: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
nim.cfg 🔥 Speed and memory optimizations (OpenMP !): 2018-02-28 18:46:28 +01:00
README.md add github action 2022-04-07 22:06:37 +07:00

ethash

License: Apache License: MIT Stability: experimental Github action

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

or

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