-
Notifications
You must be signed in to change notification settings - Fork 520
WIP: ProgPoW v0.9.2 support #111
base: master
Are you sure you want to change the base?
Conversation
This improves performance using 512bit SIMD instructions.
Fixes #4115.
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
* and support progpow_light_compute() * remove duplication codes. * fixed misc bugs. * See also: - chfast/ethash#108 - ethereum/go-ethereum#17731 - https://github.com/ifdefelse/cpp-ethereum/tree/a998c9e9335f4f8bfc89a4f9598d1cce8fad3330
based on "EIP-1057 algorithm clarifications" ethereum/EIPs#1618
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. |
thank you for your kind reply! my work is almost the same as the reference implementation by ifelsedef with small fix. I will try to adapt your chfast/ethash sooner or later. |
Oh, if you need Go bindings I can add them to chfast/ethash directly. |
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
WIP: support both ethash / ProgPoW spec
v0.9.1v0.9.2 (12/10)used by open-ethereum-pool
minimal fix needed to work with the ProgPoW-ethminer fork.
See also #110
TODO
references
screenshot
open-ethereum-pool (with small fix) with ProgPoW-ethminer fork miner
![image](https://user-images.githubusercontent.com/32324335/48980786-ef381180-f110-11e8-8943-d6317ef231f8.png)