go-ethereum/trie
Qian Bin 65ed1a6871
rlp, trie: faster trie node encoding (#24126)
This change speeds up trie hashing and all other activities that require
RLP encoding of trie nodes by approximately 20%. The speedup is achieved by
avoiding reflection overhead during node encoding.

The interface type trie.node now contains a method 'encode' that works with
rlp.EncoderBuffer. Management of EncoderBuffers is left to calling code.
trie.hasher, which is pooled to avoid allocations, now maintains an
EncoderBuffer. This means memory resources related to trie node encoding
are tied to the hasher pool.

Co-authored-by: Felix Lange <fjl@twurst.com>
2022-03-09 14:45:17 +01:00
..
committer.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
database_test.go trie: there's no point in retrieving the metaroot 2019-04-05 13:09:28 +03:00
database.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
encoding_test.go trie: use stacktrie for Derivesha operation (#21407) 2020-09-29 17:38:13 +02:00
encoding.go trie: use stacktrie for Derivesha operation (#21407) 2020-09-29 17:38:13 +02:00
errors.go trie: more node iterator improvements (#14615) 2017-06-20 18:26:09 +02:00
hasher.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
iterator_test.go Merge pull request #24391 from rjl493456442/trie-iterator 2022-02-15 15:35:47 +02:00
iterator.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
node_enc.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
node_test.go add node.go unit test file node_test.go (#20028) 2020-01-07 10:31:20 +01:00
node.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
proof_test.go trie: test for edgecase in VerifyRangeProof (#24257) 2022-01-21 14:35:30 +01:00
proof.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
secure_trie_test.go cmd, core, eth, trie: get rid of trie cache generations (#19262) 2019-03-14 15:25:12 +02:00
secure_trie.go core/state: move state account to core/types + abstracted "write account to trie" (#23567) 2021-09-28 10:48:07 +02:00
stacktrie_test.go trie: more tests for stacktrie (#23936) 2021-11-22 08:49:18 +01:00
stacktrie.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
sync_test.go core, eth, les, trie: remove the sync bloom, used by fast sync 2021-12-03 12:32:41 +02:00
sync.go Merge pull request #24117 from holiman/db_has 2022-01-06 11:30:11 +02:00
trie_test.go rlp, trie: faster trie node encoding (#24126) 2022-03-09 14:45:17 +01:00
trie.go trie: implement NodeBlob API for trie iterator 2022-02-15 16:12:17 +08:00