go-ethereum/core
rjl493456442 d3c4466edd
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-16 09:05:36 +02:00
..
asm all: fix mismatched names in comments (#29348) 2024-03-26 21:01:28 +01:00
bloombits all: use timer instead of time.After in loops, to avoid memleaks (#29241) 2024-04-09 08:51:54 +02:00
forkid all: remove dependency on golang.org/exp (#29314) 2024-03-25 07:50:18 +01:00
rawdb core/rawdb: add sanity-limit to header accessor (#29534) 2024-04-15 14:54:51 +02:00
state core, eth/protocols/snap, trie: fix cause for snap-sync corruption, implement gentrie (#29313) 2024-04-16 09:05:36 +02:00
tracing core/tracing: add changelog (#29388) 2024-04-09 12:12:02 +02:00
txpool core/txpool: repair the limbo Billy too on unclean shutdowns (#29451) 2024-04-04 16:51:10 +03:00
types signer: implement blob txs sendtxargs, enable blobtx-signing (#28976) 2024-04-05 19:29:44 +02:00
vm all: remove duplicate word in comments (#29531) 2024-04-15 08:34:31 +02:00
.gitignore
bench_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
block_validator_test.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
block_validator.go core: fix typo (#29438) 2024-04-08 13:02:56 +02:00
blockchain_insert.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
blockchain_reader.go core: add txlookup lock (#29343) 2024-04-09 08:37:18 +02:00
blockchain_repair_test.go cmd: use package filepath over path for file system operations (#29227) 2024-03-12 10:00:34 +01:00
blockchain_sethead_test.go all: replace path.Join with filepath.Join (#29479) 2024-04-08 12:29:49 +03:00
blockchain_snapshot_test.go cmd: use package filepath over path for file system operations (#29227) 2024-03-12 10:00:34 +01:00
blockchain_test.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
blockchain.go core: add txlookup lock (#29343) 2024-04-09 08:37:18 +02: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_test.go core: fix potential race in chainIndexerTest (#22346) 2021-03-19 13:32:57 +01:00
chain_indexer.go core,console: replace noarg fmt.Errorf with errors.New (#27332) 2023-05-25 08:24:09 -04:00
chain_makers_test.go params: use the same variable name as EIP-4788 (#29195) 2024-03-15 09:14:31 +01:00
chain_makers.go core: add an end-to-end verkle test (#29262) 2024-03-26 21:25:41 +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 big.Sign to compare with zero (#29490) 2024-04-09 12:14:30 +02: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_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
genesis.go core: fix dev mode genesis difficulty (#29469) 2024-04-08 13:01:22 +02:00
headerchain_test.go all: remove the dependency from trie to triedb (#28824) 2024-02-13 14:49:53 +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
mkalloc.go all: remove dependency on golang.org/exp (#29314) 2024-03-25 07:50:18 +01: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_test.go core: add an end-to-end verkle test (#29262) 2024-03-26 21:25:41 +01:00
state_processor.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
state_transition.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
txindexer_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
txindexer.go core: cache transaction indexing tail in memory (#28908) 2024-02-06 10:44:42 +08:00
types.go core: use atomic type (#27011) 2023-03-30 06:53:32 -04:00