openethereum/ethcore/src
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
..
client Add Statetest support for Constantinople Fix (#10323) 2019-02-11 17:13:36 +01:00
engines Deprecate account management (#10213) 2019-02-07 14:34:24 +01:00
ethereum ethash: implement Progpow (#9762) 2019-02-20 10:05:11 +01:00
json_tests ethash: implement Progpow (#9762) 2019-02-20 10:05:11 +01:00
miner Revive parity_setMinGasPrice RPC call (#10294) 2019-02-11 18:08:12 +01:00
snapshot Deprecate account management (#10213) 2019-02-07 14:34:24 +01:00
spec Add EIP-1283 disable transition (#10214) 2019-01-21 12:22:29 +01:00
state Additional error for invalid gas (#10327) 2019-02-11 22:20:51 +00:00
tests misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
trace Fix #9822: trace_filter does not return failed contract creation (#10140) 2019-01-11 18:08:58 +01:00
verification fix(add helper for timestamp overflows) (#10330) 2019-02-12 14:16:23 +00:00
account_db.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
block.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
builtin.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
error.rs fix(add helper for timestamp overflows) (#10330) 2019-02-12 14:16:23 +00:00
executed.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
executive.rs Additional error for invalid gas (#10327) 2019-02-11 22:20:51 +00:00
externalities.rs Handle the case for contract creation on an empty but exist account with storage items (#10065) 2019-01-15 10:21:44 +01:00
factory.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
lib.rs Revive parity_setMinGasPrice RPC call (#10294) 2019-02-11 18:08:12 +01:00
machine.rs Remove CallContract and RegistryInfo re-exports from `ethcore/client` (#10205) 2019-01-17 16:43:08 +01:00
pod_account.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
pod_state.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
state_db.rs Skip locking in statedb for non-canon blocks (#10141) 2019-01-15 01:33:10 +11:00
test_helpers.rs Deprecate account management (#10213) 2019-02-07 14:34:24 +01:00
transaction_ext.rs misc: bump license header to 2019 (#10135) 2019-01-07 11:33:07 +01:00
tx_filter.rs Remove CallContract and RegistryInfo re-exports from `ethcore/client` (#10205) 2019-01-17 16:43:08 +01:00