aboutsummaryrefslogtreecommitdiffstats
path: root/trie/trie_test.go
Commit message (Collapse)AuthorAgeFilesLines
* trie: add start key to NodeIterator constructorsFelix Lange2017-04-251-1/+1
| | | | | | | | | The 'step' method is split into two parts, 'peek' and 'push'. peek returns the next state but doesn't make it current. The end of iteration was previously tracked by setting 'trie' to nil. End of iteration is now tracked using the 'iteratorEnd' error, which is slightly cleaner and requires less code.
* trie: clean up iterator constructorsFelix Lange2017-04-251-1/+1
| | | | | | | Make it so each iterator has exactly one public constructor: - NodeIterators can be created through a method. - Iterators can be created through NewIterator on any NodeIterator.
* trie, whisper/whisperv5: use math/rand Read functionFelix Lange2017-03-231-17/+1
|
* all: fix ineffectual assignments and remove uses of crypto.Sha3Felix Lange2017-01-091-2/+4
| | | | | go get github.com/gordonklaus/ineffassign ineffassign .
* trie: ensure dirty flag is unset for embedded child nodesFelix Lange2016-10-181-15/+28
| | | | This was caught by the new invariant check.
* trie: ensure resolved nodes stay loadedFelix Lange2016-10-181-21/+70
| | | | | | | | Commit 40cdcf1183 broke the optimisation which kept nodes resolved during Get in the trie. The decoder assigned cache generation 0 unconditionally, causing resolved nodes to get flushed on Commit. This commit fixes it and adds two tests.
* trie, core/state: improve memory usage and performance (#3135)Felix Lange2016-10-151-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * trie: store nodes as pointers This avoids memory copies when unwrapping node interface values. name old time/op new time/op delta Get 388ns ± 8% 215ns ± 2% -44.56% (p=0.000 n=15+15) GetDB 363ns ± 3% 202ns ± 2% -44.21% (p=0.000 n=15+15) UpdateBE 1.57µs ± 2% 1.29µs ± 3% -17.80% (p=0.000 n=13+15) UpdateLE 1.92µs ± 2% 1.61µs ± 2% -16.25% (p=0.000 n=14+14) HashBE 2.16µs ± 6% 2.18µs ± 6% ~ (p=0.436 n=15+15) HashLE 7.43µs ± 3% 7.21µs ± 3% -2.96% (p=0.000 n=15+13) * trie: close temporary databases in GetDB benchmark * trie: don't keep []byte from DB load around Nodes decoded from a DB load kept hashes and values as sub-slices of the DB value. This can be a problem because loading from leveldb often returns []byte with a cap that's larger than necessary, increasing memory usage. * trie: unload old cached nodes * trie, core/state: use cache unloading for account trie * trie: use explicit private flags (fixes Go 1.5 reflection issue). * trie: fixup cachegen overflow at request of nick * core/state: rename journal size constant
* trie: fix delete bug for values contained in fullNodeFelix Lange2016-09-301-35/+124
| | | | | | | | | Delete crashed if a fullNode contained a valueNode directly. This bug is very unlikely to occur with SecureTrie, but can happen with regular tries. This commit also introduces a randomised test which triggers all trie operations, which should prevent such bugs in the future. Credit for finding this bug goes to Github user @rjl493456442.
* core, trie: replace state caches with trie journalFelix Lange2016-09-281-41/+0
|
* core, core/state, trie: enterprise hand-tuned multi-level cachingPéter Szilágyi2016-05-261-1/+1
|
* all: fix go vet warningsFelix Lange2016-04-151-1/+1
|
* cmd, eth, ethdb, node: prioritise chaindata for resources, bump cachePéter Szilágyi2016-03-091-1/+1
|
* trie: added error handlingzsfelfoldi2015-12-011-1/+74
| | | | Created alternate versions of Trie and SecureTrie functions that can return a MissingNodeError (used by ODR services)
* core, trie: new trieFelix Lange2015-09-231-124/+140
|
* trie: improve benchmarksFelix Lange2015-09-231-34/+72
|
* all: fix license headers one more timeFelix Lange2015-07-241-1/+1
| | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-231-4/+4
| | | | | All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library".
* all: update license informationFelix Lange2015-07-071-0/+16
|
* trie: dirty trackingJeffrey Wilcke2015-07-041-1/+1
|
* trie: fixed testsobscuren2015-06-211-1/+1
|
* Fixed mkdnode & added some testsobscuren2015-03-191-1/+10
|
* Moved ethutil => commonobscuren2015-03-161-11/+11
|
* Merge branch 'develop' into poc-9obscuren2015-03-061-1/+1
|\
| * Start at 0obscuren2015-03-061-2/+1
| |
* | Delet => Deleteobscuren2015-03-031-0/+32
| |
* | Secure trieobscuren2015-03-011-1/+0
|/
* Fixed iteratorobscuren2015-02-081-0/+39
|
* Moved ptrie => trie. Removed old trieobscuren2015-01-081-298/+161
|
* Refactored ethutil.Config.Db outobscuren2015-01-071-53/+2
|
* Fixed tests for 'types'obscuren2014-11-191-0/+2
|
* Merge branch 'tests' into poc8obscuren2014-11-191-173/+116
|\
| * update imports order per goimportsTaylor Gerring2014-11-161-1/+2
| |
| * Merge branch 'develop' of https://github.com/tgerring/go-ethereum into testsTaylor Gerring2014-11-151-7/+4
| |\ | | | | | | | | | | | | | | | Conflicts: p2p/messenger_test.go trie/trie_test.go
| | * Convert trie tests to gocheckTaylor Gerring2014-11-131-164/+111
| | |
| * | Merge branch 'develop' of https://github.com/tgerring/go-ethereumTaylor Gerring2014-11-151-166/+111
| | |
* | | j => iobscuren2014-11-181-1/+0
| | |
* | | added output testobscuren2014-11-181-1/+2
| | |
* | | Added some comparison tests for the new ptrieobscuren2014-11-181-0/+56
|/ /
* / Transaction execution fixesobscuren2014-11-121-1/+13
|/
* ethtrie => trieobscuren2014-10-311-0/+434