erigon-pulse/consensus/ethash
Felix Lange 924065e19d consensus/ethash: improve cache/dataset handling (#15864)
* consensus/ethash: add maxEpoch constant

* consensus/ethash: improve cache/dataset handling

There are two fixes in this commit:

Unmap the memory through a finalizer like the libethash wrapper did. The
release logic was incorrect and freed the memory while it was being
used, leading to crashes like in #14495 or #14943.

Track caches and datasets using simplelru instead of reinventing LRU
logic. This should make it easier to see whether it's correct.

* consensus/ethash: restore 'future item' logic in lru

* consensus/ethash: use mmap even in test mode

This makes it possible to shorten the time taken for TestCacheFileEvict.

* consensus/ethash: shuffle func calc*Size comments around

* consensus/ethash: ensure future cache/dataset is in the lru cache

* consensus/ethash: add issue link to the new test

* consensus/ethash: fix vet

* consensus/ethash: fix test

* consensus: tiny issue + nitpick fixes
2018-01-23 12:05:30 +02:00
..
algorithm_go1.7.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
algorithm_go1.8_test.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
algorithm_go1.8.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
algorithm_test.go all: switch gas limits from big.Int to uint64 2018-01-03 14:45:35 +02:00
algorithm.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
consensus_test.go accounts, consensus, core, eth: make chain maker consensus agnostic (#15497) 2017-12-22 14:37:50 +02:00
consensus.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
ethash_test.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
ethash.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
sealer.go consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00