go-ethereum/core
rjl493456442 35e0525bf4 core, eth/protocols/snap, trie: fix cause for snap-sync corruption, implement gentrie (#29313)
This pull request defines a gentrie for snap sync purpose.

The stackTrie is used to generate the merkle tree nodes upon receiving a state batch. Several additional options have been added into stackTrie to handle incomplete states (either missing states before or after).

In this pull request, these options have been relocated from stackTrie to genTrie, which serves as a wrapper for stackTrie specifically for snap sync purposes.

Further, the logic for managing incomplete state has been enhanced in this change. Originally, there are two cases handled:

-    boundary node filtering
-    internal (covered by extension node) node clearing

This changes adds one more:

- Clearing leftover nodes on the boundaries.

This feature is necessary if there are leftover trie nodes in database, otherwise node inconsistency may break the state healing.
2024-04-17 07:22:00 +02:00
..
asm eth/tracers/js: fix isPush for push0 (#28520) 2023-11-14 13:14:38 +01:00
bloombits core: fix typos (#28218) 2023-09-29 10:52:22 +03:00
forkid params, core/forkid: add mainnet timestamp for Cancun (#28958) 2024-02-08 19:36:38 +01:00
rawdb core/rawdb: add sanity-limit to header accessor (#29534) 2024-04-17 07:22:00 +02:00
state core, eth/protocols/snap, trie: fix cause for snap-sync corruption, implement gentrie (#29313) 2024-04-17 07:22:00 +02:00
txpool core/txpool: elevate the 'already reserved' error into a constant (#29095) 2024-02-27 13:27:50 +02:00
types core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
vm core/vm, params: ensure order of forks, prevent overflow (#29023) 2024-02-19 16:29:59 +01:00
.gitignore Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
bench_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
block_validator.go core/types: support for optional blob sidecar in BlobTx (#27841) 2023-08-14 10:13:34 +02:00
block_validator_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
blockchain.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
blockchain_insert.go core, eth, trie: expose more detailed dirty ram tracking for diff layers (#27971) 2023-08-23 14:08:39 +03:00
blockchain_reader.go all: remove the dependency from trie to triedb (#28824) 2024-02-13 14:49:53 +01:00
blockchain_repair_test.go core/rawdb, ethdb/pebble: avoid fsync db in tests (#27836) 2023-08-23 20:43:55 +02:00
blockchain_sethead_test.go all: remove the dependency from trie to triedb (#28824) 2024-02-13 14:49:53 +01:00
blockchain_snapshot_test.go core/rawdb, ethdb/pebble: avoid fsync db in tests (#27836) 2023-08-23 20:43:55 +02:00
blockchain_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
blocks.go core: typos and comments improve 2017-05-25 17:14:33 +03:00
bloom_indexer.go core: preallocate batch size in bloomIndexer (#25289) 2022-08-03 17:02:09 +02:00
chain_indexer.go core,console: replace noarg fmt.Errorf with errors.New (#27332) 2023-05-25 08:24:09 -04:00
chain_indexer_test.go core: fix potential race in chainIndexerTest (#22346) 2021-03-19 13:32:57 +01:00
chain_makers.go all: remove the dependency from trie to triedb (#28824) 2024-02-13 14:49:53 +01:00
chain_makers_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
dao_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
error.go internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
events.go eth/filters: remove use of event.TypeMux for pending logs (#20312) 2019-12-10 12:39:14 +01:00
evm.go all: use uint256 in state (#28598) 2024-01-23 14:51:58 +01:00
forkchoice.go core: clarify code in forkchoice (#26257) 2022-11-28 11:07:25 +01:00
gaspool.go core, miner: revert block gas counter in case of invalid transaction (#26799) 2023-03-07 05:23:52 -05:00
gen_genesis.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
genesis.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
genesis_alloc.go cmd, core, params: add support for the Holesky testnet (#28007) 2023-08-25 18:11:40 +03:00
genesis_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
headerchain.go all: remove ethash pow, only retain shims needed for consensus and tests (#27178) 2023-05-03 12:58:39 +03:00
headerchain_test.go all: remove the dependency from trie to triedb (#28824) 2024-02-13 14:49:53 +01:00
mkalloc.go cmd, core, params: add support for the Holesky testnet (#28007) 2023-08-25 18:11:40 +03:00
rlp_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
sender_cacher.go all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
state_prefetcher.go core/types, params: add blob transaction type, RLP encoded for now (#27049) 2023-04-21 12:52:02 +03:00
state_processor.go all: use uint256 in state (#28598) 2024-01-23 14:51:58 +01:00
state_processor_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
state_transition.go core/txpool: fix typo (#29036) 2024-02-21 10:00:01 +02:00
txindexer.go core: cache transaction indexing tail in memory (#28908) 2024-02-06 10:44:42 +08:00
txindexer_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
types.go core: use atomic type (#27011) 2023-03-30 06:53:32 -04:00