Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/status-im/nim-ethash
Nim implementation of Ethash, Ethereum proof of work and Ethereum mining
https://github.com/status-im/nim-ethash
Last synced: 3 months ago
JSON representation
Nim implementation of Ethash, Ethereum proof of work and Ethereum mining
- Host: GitHub
- URL: https://github.com/status-im/nim-ethash
- Owner: status-im
- License: apache-2.0
- Created: 2018-02-15T10:26:26.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-20T23:44:29.000Z (9 months ago)
- Last Synced: 2024-05-18T15:41:15.263Z (6 months ago)
- Language: Nim
- Homepage:
- Size: 168 KB
- Stars: 5
- Watchers: 26
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHEv2
Awesome Lists containing this project
- awesome-nim - ethash - A pure-Nim implementation of Ethash, the Ethereum proof of work. (Algorithms / Blockchain)
README
# ethash
[![License: Apache](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg)
![Github action](https://github.com/status-im/nim-ethash/workflows/CI/badge.svg)# Introduction
A pure-Nim implementation of Ethash, the Ethereum proof of workImplementation is based on the [spec revision 23 (2017-08-03)](https://github.com/ethereum/wiki/wiki/Ethash).
# 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](https://github.com/ethereum/ethash).**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](LICENSE-MIT) or http://opensource.org/licenses/MIT
or
* Apache License, Version 2.0, ([LICENSE-APACHEv2](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.