• 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
sealer.go 4.91 KB