ethash

A Nim implementation of Ethash, the ethereum proof-of-work hashing function

Pure Nim score 30/100 · tests present · docs generated

Summary

Latest Version Unknown
License Apache License 2.0
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:24

Installation

nimble install ethash
choosenim install ethash
git clone https://github.com/status-im/nim-ethash

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
ethash - - - - - - -

Source

Repository https://github.com/status-im/nim-ethash
Homepage https://github.com/status-im/nim-ethash
Documentation View Documentation
Registry Source nimble_official

README

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

  • MIT license: LICENSE-MIT or http://opensource.org/licenses/MIT

or

  • Apache License, Version 2.0, (LICENSE-APACHEv2 or http://www.apache.org/licenses/LICENSE-2.0)

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