merkle-patricia-tree v4.1.0
This release comes with a reworked checkpointing mechanism (PR #1030 and subsequently PR #1035). Instead of copying over the whole DB on checkpoints the operations in between checkpoints are now recorded in memory and either applied in batch on a Trie.checkpoint()
call or discarded along a Trie.revert()
. This more fine-grained operational mode leads to a substantial performance gain (up to 50x) when working with larger tries.
Another performance related bug has been fixed along PR #127 removing an unnecessary double-serialization call on nodes. This gives a general performance gain of 10-20% on putting new values in a trie.
Other changes:
New Features
A new exported WalkController
class has been added and trie.walkTrie()
has been made a public method along. This allows for creating own custom ways to traverse a trie. PR #135
Refactoring, Development and Documentation
- Better
Trie
code documentation, PR #125 - Internal
Trie
function reordering & partial retwrite, PR #125 - Added simple integrated profiling, PR #128
- Reworked benchmarking to be based on
benchmark.js
, basic CI integration, PR #130 - Upgrade to
ethereumjs-config
2.0
libs for linting and formatting, PR #133 - Switched coverage from
coverall
tocodecov
, PR #137