Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: ProgPoW v0.9.2 support #111

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

WIP: ProgPoW v0.9.2 support #111

wants to merge 14 commits into from

Conversation

hackmod
Copy link

@hackmod hackmod commented Nov 25, 2018

WIP: support both ethash / ProgPoW spec v0.9.1 v0.9.2 (12/10)

used by open-ethereum-pool

minimal fix needed to work with the ProgPoW-ethminer fork.

See also #110

TODO

  • support both ethash / ProgPoW

references

screenshot

open-ethereum-pool (with small fix) with ProgPoW-ethminer fork miner
image

mancoast and others added 7 commits November 22, 2018 20:00
This improves performance using 512bit SIMD instructions.
It looks like older versions of GCC have slightly unreliable logic for array out-of-bounds detection.
Code in ethash which uses unions and arrays is firing a warning in both Debian Jesse (8.5) and in the ARM Linux cross-builds.
Debian Jesse uses GCC 4.9.2.   The cross-builds are using GCC 4.8.4.
Other distros are using GCC 5.x or even GCC 6.x (Arch).
The issue is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273 and was fixed in GCC 5.0 and backported to 4.9.3.

Updated comments.
With this change we will be able to remove a global warning suppression from our CMake files.
 * Add the ProgPow code for client
 * fix a mem crash, which results from light is NULL in full node mode. So I pass blocknumber from EthashAux to ethash_full_compute and ethash_hash
 * misunderstanding mix and result before. fix
@chfast
Copy link
Member

chfast commented Nov 30, 2018

As I said in #112, this is not maintained. Can you consider using https://github.com/chfast/ethash instead? It has better API, it faster and has ProgPoW support in place (although not exposed by proper API yet).

I don't have control over this repo, so I cannot merge any changes.

@hackmod
Copy link
Author

hackmod commented Nov 30, 2018

thank you for your kind reply!

my work is almost the same as the reference implementation by ifelsedef with small fix.
as you can see, the open-ethereum-pool is the only reason for me to try to fix this repo.
(open-ethereum-pool use golang wrapper of the ethereum/ethash)

I will try to adapt your chfast/ethash sooner or later.

@chfast
Copy link
Member

chfast commented Nov 30, 2018

Oh, if you need Go bindings I can add them to chfast/ethash directly.

@chfast
Copy link
Member

chfast commented Nov 30, 2018

But there is also pure Go implementation in https://github.com/ethereum/go-ethereum/tree/master/consensus/ethash.

 * unique sources for random math by ifdefelse - ifdefelse/ProgPOW@824cd79
 * test cases from : chfast/ethash#116 by chfast
temporally fixed golang wrapper
@hackmod hackmod changed the title WIP: ProgPoW v0.9.1 support WIP: ProgPoW v0.9.2 support Dec 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants