{"id":15634534,"url":"https://github.com/chfast/ethash","last_synced_at":"2025-04-05T02:12:40.468Z","repository":{"id":41132198,"uuid":"122413081","full_name":"chfast/ethash","owner":"chfast","description":"C/C++ implementation of Ethash and ProgPoW – the Ethereum Proof of Work algorithms","archived":false,"fork":false,"pushed_at":"2023-09-12T15:43:34.000Z","size":1306,"stargazers_count":142,"open_issues_count":4,"forks_count":126,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-10-02T09:14:34.915Z","etag":null,"topics":["c","cpp","ethash","ethereum","hacktoberfest","mining","progpow","proof-of-work"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chfast.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-02-22T00:52:39.000Z","updated_at":"2024-09-23T13:15:00.000Z","dependencies_parsed_at":"2022-07-10T02:16:52.502Z","dependency_job_id":"8a42aa0a-fe3e-46fb-b280-55fe527ef2d7","html_url":"https://github.com/chfast/ethash","commit_stats":{"total_commits":542,"total_committers":8,"mean_commits":67.75,"dds":"0.029520295202952074","last_synced_commit":"dfc8d080f72a2c45fae7e943741158d5cbeff671"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfast%2Fethash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfast%2Fethash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfast%2Fethash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chfast%2Fethash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chfast","download_url":"https://codeload.github.com/chfast/ethash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276189,"owners_count":20912288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cpp","ethash","ethereum","hacktoberfest","mining","progpow","proof-of-work"],"created_at":"2024-10-03T10:53:54.458Z","updated_at":"2025-04-05T02:12:40.451Z","avatar_url":"https://github.com/chfast.png","language":"C++","readme":"# Ethash\n\n[![readme style standard](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n[![GitPOAP Badge](https://public-api.gitpoap.io/v1/repo/chfast/ethash/badge)](https://www.gitpoap.io/gh/chfast/ethash)\n\n\u003e C/C++ implementation of Ethash – the Ethereum Proof of Work algorithm\n\n\n## Table of Contents\n\n- [Install](#install)\n- [Usage](#usage)\n- [Test vectors](#test-vectors)\n- [Optimizations](#optimizations)\n- [Maintainer](#maintainer)\n- [License](#license)\n\n\n## Install\n\nBuild from source using CMake.\n\n```sh\nmkdir build\ncd build\ncmake ..\ncmake --build .\n```\n\n## Usage\n\nSee [ethash.hpp] for a list of exported functions and documentation.\n\n\n## Optimizations\n\nThis section describes the optimizations, modifications and tweaks applied\nin this library in relation to [Ethash reference implementation].\n\nThe library contains a set of micro-benchmarks.Build and run the `ethash-bench`\ntool.\n\n### Seed hash is computed on the fly.\n\nSeed hash is a sequence of keccak256 hashes applied the epoch number of times.\nTime needed to compute seed hash is negligible compared to time needed to build\nlight cache. Computing seed hash for epoch 10000 takes ~ 5 ms, building light\ncache for epoch 1 takes ~ 500 ms.\n\n### Dataset size is computed on the fly\n\nComputing the size of the full dataset and light cache requires finding the largest\nprime number given an upper bound. For similar reasons as with seed hash, this\nis computed on the fly. The procedure used is quite naive and forks well only\nup to 40-bit number, so some additional improvement can be done in the future.\n\n\n## Maintainer\n\nPaweł Bylica [@chfast]\n\n## License\n\nLicensed under the [Apache License, Version 2.0].\n\n\n[@chfast]: https://github.com/chfast\n[Apache License, Version 2.0]: LICENSE\n[ethash.hpp]: include/ethash/ethash.hpp\n[Ethash reference implementation]: https://github.com/ethereum/wiki/wiki/Ethash\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchfast%2Fethash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchfast%2Fethash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchfast%2Fethash/lists"}