GithubHelp home page GithubHelp logo

oliverw / ethash Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chfast/ethash

0.0 1.0 1.0 1.17 MB

C/C++ implementation of Ethash and ProgPoW – the Ethereum Proof of Work algorithms

License: Apache License 2.0

Shell 0.55% C++ 66.00% Python 3.23% C 9.11% CMake 21.11%

ethash's Introduction

Ethash

readme style standard GitPOAP Badge

C/C++ implementation of Ethash – the Ethereum Proof of Work algorithm

Table of Contents

Install

Build from source using CMake.

mkdir build
cd build
cmake ..
cmake --build .

Usage

See ethash.hpp for list of exported function and documentation.

Optimizations

This section describes the optimizations, modification and tweaks applied in this library in relation to Ethash reference implementation.

The library contains a set of micro-benchmarks.Build and run the ethash-bench tool.

Seed hash is computed on the fly.

Seed hash is sequence of keccak256 hashes applied the epoch number of times. Time needed to compute seed hash is negligible comparing to time needed to build light cache. Computing seed hash for epoch 10000 takes ~ 5 ms, building light cache for epoch 1 takes ~ 500 ms.

Dataset size is computed on the fly

Computing the size of full dataset and light cache requires finding the largest prime number given an upper bound. For similar reasons as with seed hash, this is computed on the fly. The procedure used is quite naive and forks well only up to 40-bit number, so some additional improvement can be done in the future.

Maintainer

Paweł Bylica @chfast

License

Licensed under the Apache License, Version 2.0.

ethash's People

Contributors

axic avatar chfast avatar ethercoreadmin avatar gumb0 avatar jyap808 avatar kayla-henrie avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.