openethereum/ethcore
André Silva b457f46c81 ethash: implement Progpow (#9762)
* ethash: initial implementation of progpow

* progpow: use wrapping arithmetic

* progpow: cleanup comments

* progpow: fix keccak_f800

* progpow: reorder definitions

* progpow: general fixing

* progpow: add basic tests from geth

* progpow: generate c_dag and add test

* progpow: fix progpow_init and progpow_loop

* progpow: fix and add new test

* progpow: tabify

* progpow: add shared testvectors from geth and aleth

* progpow: add benchmarks

* progpow: don't read bytes from dag

* ethash: use criterion for progpow benchmarks

* progpow: dont borrow hash on fnv1a_hash

* progpow: don't borrow operand on progpow merge

* progpow: hardcode dag lookup function

we only support light verification anyway

* progpow: read double words directly from the dag

* progpow: inline some small functions

* progpow: remove some bounds checking from the main loop

* progpow: remove unreachable match cases

* progpow: remove bounds check in keccak_f800_round

* progpow: fix ptr::swap

* progpow: force loop unroll in keccak_f800_round

* progpow: remove unnecessary branching in progpow_loop

* progpow: force loop unroll in fill_mix

* progpow: silence unused warning

* progpow: dont run last keccak_f800_round out of the loop

rustc generates the same assembly, it unrolls the loop

* progpow: fix output of keccak_f800_short

* ethcore: support progpow in ethash engine

* ethash: fix typo

* ethcore, ethash: fix tests

* json: fix ethash spec tests

* ethash: update quick_get_difficulty for progpow

* ethash: drop light cache on progpow transition block

* ethash: fix quick_get_difficulty tests

* progpow: update to spec v0.9.0

* progpow: update to spec v0.9.1

* progpow: update to spec v0.9.2

* ethash: rename progpow benchmarks

* fix Cargo.lock bad merge

* ethash: only export modules for benchmarks

* ethash: progpow: remove unsafe unchecked indexing

* ethash: create enum for pow algorithm

* ethash: box the progpow cdag

* ethash: skip slow progpow test vectors on ci

* ethash: don't skip progpow test vectors

they don't take too long when running in release mode which is the case
for CI.

* ethash: progpow: update copyright date

Co-Authored-By: andresilva <andre.beat@gmail.com>

* ethcore: remove verification of ci-skip-tests on non-test builds
2019-02-20 10:05:11 +01:00
..
benches misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
blockchain Adds cli interface to allow reseting chain to a particular block (#9782) 2019-01-16 16:37:26 +01:00
call-contract Extract CallContract and RegistryInfo traits into their own crate (#10178) 2019-01-16 19:52:21 +01:00
db misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
evm Additional error for invalid gas (#10327) 2019-02-11 22:20:51 +00:00
light Additional error for invalid gas (#10327) 2019-02-11 22:20:51 +00:00
node-filter Remove caching for node connections (#10143) 2019-01-08 11:31:26 +11:00
private-tx Fixed misstype (#10351) 2019-02-14 12:25:44 +01:00
res Add Statetest support for Constantinople Fix (#10323) 2019-02-11 17:13:36 +01:00
service Deprecate account management (#10213) 2019-02-07 14:34:24 +01:00
src ethash: implement Progpow (#9762) 2019-02-20 10:05:11 +01:00
sync Bundle protocol and packet_id together in chain sync (#10315) 2019-02-13 09:20:33 +01:00
types misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
vm misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
wasm Replace ethcore-logger with env-logger. (#10102) 2019-01-08 15:07:20 +01:00
Cargo.toml ethash: implement Progpow (#9762) 2019-02-20 10:05:11 +01:00