go-ethereum/consensus
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
..
clique accounts, consensus, core, eth: make chain maker consensus agnostic (#15497) 2017-12-22 14:37:50 +02:00
ethash consensus/ethash: improve cache/dataset handling (#15864) 2018-01-23 12:05:30 +02:00
misc rlp, trie, contracts, compression, consensus: improve comments (#14580) 2017-06-12 14:45:17 +02:00
consensus.go accounts, consensus, core, eth: make chain maker consensus agnostic (#15497) 2017-12-22 14:37:50 +02:00
errors.go consensus/clique: Proof of Authority (#3753) 2017-04-10 12:24:12 +02:00