core: fix unconditional MPT collapsing

It should depend on EnableStateRoot.
This commit is contained in:
Roman Khimov 2020-06-24 14:41:57 +03:00
parent 6d5e70163d
commit ea17793aee

View file

@ -877,12 +877,12 @@ func (bc *Blockchain) storeBlock(block *block.Block) error {
}
if bc.config.EnableStateRoot {
bc.dao.MPT.Flush()
}
// Every persist cycle we also compact our in-memory MPT.
persistedHeight := atomic.LoadUint32(&bc.persistedHeight)
if persistedHeight == block.Index-1 {
// 10 is good and roughly estimated to fit remaining trie into 1M of memory.
bc.dao.MPT.Collapse(10)
// Every persist cycle we also compact our in-memory MPT.
persistedHeight := atomic.LoadUint32(&bc.persistedHeight)
if persistedHeight == block.Index-1 {
// 10 is good and roughly estimated to fit remaining trie into 1M of memory.
bc.dao.MPT.Collapse(10)
}
}
bc.topBlock.Store(block)
atomic.StoreUint32(&bc.blockHeight, block.Index)