go-ethereum/rlp
rjl493456442 f51870e40e
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
rlp, trie, triedb/pathdb: compress trienode history (#32913)
This pull request introduces a mechanism to compress trienode history by
storing only the node diffs between consecutive versions.

- For full nodes, only the modified children are recorded in the history;
- For short nodes, only the modified value is stored;

If the node type has changed, or if the node is newly created or
deleted, the entire node value is stored instead.

To mitigate the overhead of reassembling nodes from diffs during history
reads, checkpoints are introduced by periodically storing full node values.

The current checkpoint interval is set to every 16 mutations, though
this parameter may be made configurable in the future.
2026-01-08 21:58:02 +08:00
..
internal/rlpstruct all: fix docstrings 2022-10-04 09:18:02 +02:00
rlpgen rlp/rlpgen: implement package renaming support (#31148) 2025-08-01 18:30:48 +02:00
decode.go rlp: remove workaround for Value.Bytes (#32433) 2025-08-15 14:08:27 +02:00
decode_tail_test.go all: update license information 2016-04-15 09:48:05 +02:00
decode_test.go rlp: fix typo in decode test message (#32554) 2025-09-09 09:56:53 +08:00
doc.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
encbuffer.go rlp: refactor to use maths.ReadBits (#32432) 2025-08-21 09:37:08 +08:00
encbuffer_example_test.go rlp/rlpgen: RLP encoder code generator (#24251) 2022-02-16 18:14:12 +01:00
encode.go rlp: remove workaround for Value.Bytes (#32433) 2025-08-15 14:08:27 +02:00
encode_test.go rlp: remove duplicate optionalAndTailField test case (#32614) 2025-09-15 16:16:06 +02:00
encoder_example_test.go rlp/rlpgen: RLP encoder code generator (#24251) 2022-02-16 18:14:12 +01:00
iterator.go rlp: finalize listIterator on parse error to prevent non-advancing loops (#33245) 2025-11-26 11:30:05 +01:00
iterator_test.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
raw.go rlp, trie, triedb/pathdb: compress trienode history (#32913) 2026-01-08 21:58:02 +08:00
raw_test.go rlp, trie, triedb/pathdb: compress trienode history (#32913) 2026-01-08 21:58:02 +08:00
typecache.go rlp: using maps.Clone (#29434) 2024-04-02 10:47:15 +02:00