go-ethereum/eth
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
..
catalyst core/types: use new atomic types in caches (#29411) 2024-04-04 16:50:31 +03:00
downloader all: use timer instead of time.After in loops, to avoid memleaks (#29241) 2024-04-09 08:51:54 +02:00
ethconfig all: remove duplicate word in comments (#29531) 2024-04-15 08:34:31 +02:00
fetcher eth/fetcher: using slices.Contains (#29383) 2024-04-02 21:17:34 +02:00
filters eth/filters: enforce topic-limit early on filter criterias (#29535) 2024-04-15 17:35:35 +02:00
gasestimator all: use uint256 in state (#28598) 2024-01-23 14:51:58 +01:00
gasprice all: remove dependency on golang.org/exp (#29314) 2024-03-25 07:50:18 +01:00
protocols core, eth/protocols/snap, trie: fix cause for snap-sync corruption, implement gentrie (#29313) 2024-04-16 09:05:36 +02:00
tracers core/vm: better error-info for vm errors (#29354) 2024-04-06 12:22:55 +02:00
api_admin.go eth: ignore genesis block on importChain (#27956) 2023-08-21 13:32:34 -04:00
api_backend.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
api_debug_test.go all: remove dependency on golang.org/exp (#29314) 2024-03-25 07:50:18 +01:00
api_debug.go miner: refactor the miner, make the pending block on demand (#28623) 2024-03-06 14:45:03 +02:00
api_miner.go miner: refactor the miner, make the pending block on demand (#28623) 2024-03-06 14:45:03 +02:00
backend.go all: use big.Sign to compare with zero (#29490) 2024-04-09 12:14:30 +02:00
bloombits.go eth: move eth.Config to a common package (#22205) 2021-02-05 13:51:15 +01:00
handler_eth_test.go eth: fix typo (#29320) 2024-03-25 10:16:44 +08:00
handler_eth.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
handler_snap.go eth: check snap satelliteness, delegate drop to eth (#22235) 2021-02-02 10:44:36 +02:00
handler_test.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
handler.go eth: simplify peer counting logic (#29420) 2024-04-03 14:08:52 +08:00
peer.go eth: remove admin.peers[i].eth.head and difficulty (#26804) 2023-03-06 09:27:46 +02:00
peerset.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
state_accessor.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
sync_test.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00
sync.go consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169) 2024-03-05 16:13:28 +02:00