* squash commits
* enable storage cache
* make linter happy
* fix subtree prefix len check
* save cahnges to test master
* remove restriction on prefix len
* fix comparison of last bits
* fix wrong alignment
* remove debug prints
* commit current state
* commit current state
* avoid changing state of resolver from multiwalk
* remove debug code
* remove debug code
* remove debug code
* remove unnecessary copy
* make code more readable
* reduce rebuildHashes initial resolution
* fix test after rebase to master
* make code more readable
* improve pruner
* pruner add IntermediateCache bucket
* fix panic in Walk on short keys
* reduce allocations for storage keys decompression by increasing default buffer size
* re-run CI
* fix iterator behaviour
* rename cache to hash for unification
* re-run ci
* avoid using underlying DB
* hash all subtree nodes before unload
* fix getNode method
* need to check node type, not parent - before put to hashBucket
* return back parent type check, doesn't work without it.
* don't recalculate hash again
* move unloadFunc from trie to pruner
* rename bucket to shorter name
* rename bucket to shorter name
* clean
* rebase to master
* Enable testGetNodeData by default
* Crude TestHashMapLeak
* nodeFlag ->nodeRef
* linter
* accountNode shouln't be in hashMap since only branch and short nodes are the standart ones
* Finalize hash eviction logic
* small changes to TestHashMapLeak
* Fix for the incorrect hash
Co-authored-by: ledgerwatch <akhounov@gmail.com>
* Use TrieDbState for tx pool
* Not initialise tx pool until state is loaded
* Add preimage
* Fix account
* Print codehash
* Print correct code hash
* Print incarnatin
* Print incarnatin
* Use proper incarnation
* Print dbValue
* Actually fix
* Actually fix
* Fix verifySnapshot
* readAccount to get code hash
* Next incarnation
* Print addrHashes with 0 incarnations
* Print storage history
* Print storage history
* Print storage history
* Print storage history
* Print all storage history
* print change set keys
* print change set keys
* print change set keys
* print change set keys
* Not print codebucket info
* Fixes
* Fix for incarnation
* Fix for storage history bucket
* Try to fix the leak
* Try to fix the leak
* Try to fix the leak
* Try to fix the leak
* Try to fix the leak
* Try to fix the leak
* Try to fix the leak
* Fix embedded nodes
* Hasher
* Fix
* Test fixes
* Add experimental debug flag
* Fix tx_pool_test
* Disable GetNodeData test unless in experiment
* Fix more tests
* Fix lint and revert some changes
* Fix lint
* Fix lint
* add env INTERMEDIATE_TRIE_CACHE
* try to use assert.New() pattern
* Fix "maligned" linter warnings to reduce space consumption of structs:
core/types/accounts/account.go:18:14: struct of size 136 bytes could be of size 128 bytes (maligned)
type Account struct {
--
trie/node.go:44:10: struct of size 80 bytes could be of size 72 bytes (maligned)
duoNode struct {
--
trie/resolve_set.go:28:17: struct of size 56 bytes could be of size 48 bytes (maligned)
type ResolveSet struct {
--
trie/resolver.go:34:15: struct of size 88 bytes could be of size 72 bytes (maligned)
type Resolver struct {
--
trie/visual.go:32:17: struct of size 104 bytes could be of size 96 bytes (maligned)
type VisualOpts struct {
* save state
* remove repair
* save state
* remove emptydb check
* save state
* add walkAsOf test
* add WalkAsOf and MultiWalkAsOf tests
* deployed contracts counter
* reference counter for contract code
* drop storage root&contract hash for changesets
* start incarnation is 1(save state)
* fix ReorgOverSelfDestruct test
* hack fix TestReorgOverSelfDestruct
* test benchmark
* cleanup
* remove useless debug
* remove print trie
* return remove subtrie call to updateTrieRoot
* save state
* add mutation test
* remove useless test
* fix
* added mutation commit test
* rename experiment to thin history
* thin history mutation commit test
* fix ethdb tests
* getAsOf test
* add test&fix history index
* fix test
* make test for index search
* compute trie root incarnation fix
* tests fixes
* done job in case of panic
* fix lint
* fix&test for bad incarnation
* fix initial incarnation for genesis
* fix lint
* fix changeset test
* fix storage ranges test
* fix lint
* move set incarnation to create contract
* add comment
Co-authored-by: ledgerwatch <akhounov@gmail.com>
Co-authored-by: Evgeny Danilenko <6655321@bk.ru>