• Felix Lange's avatar
    consensus/ethash: improve cache/dataset handling (#15864) · 924065e1
    Felix Lange authored
    * 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
    924065e1
Name
Last commit
Last update
.github Loading commit data...
accounts Loading commit data...
bmt Loading commit data...
build Loading commit data...
cmd Loading commit data...
common Loading commit data...
compression/rle Loading commit data...
consensus Loading commit data...
console Loading commit data...
containers Loading commit data...
contracts Loading commit data...
core Loading commit data...
crypto Loading commit data...
dashboard Loading commit data...
eth Loading commit data...
ethclient Loading commit data...
ethdb Loading commit data...
ethstats Loading commit data...
event Loading commit data...
internal Loading commit data...
les Loading commit data...
light Loading commit data...
log Loading commit data...
metrics Loading commit data...
miner Loading commit data...
mobile Loading commit data...
node Loading commit data...
p2p Loading commit data...
params Loading commit data...
rlp Loading commit data...
rpc Loading commit data...
swarm Loading commit data...
tests Loading commit data...
trie Loading commit data...
vendor Loading commit data...
whisper Loading commit data...
.dockerignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
COPYING.LESSER Loading commit data...
Dockerfile Loading commit data...
Dockerfile.alltools Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
VERSION Loading commit data...
appveyor.yml Loading commit data...
circle.yml Loading commit data...
interfaces.go Loading commit data...