Skip to content

Conversation

@Bashmunta
Copy link
Contributor

The flushAlloc() routine used a hard-coded check against types.EmptyRootHash to decide whether to commit state to triedb. This is incorrect when the trie is Verkle, where the empty root is types.EmptyVerkleHash. As a result, an empty Verkle genesis (no alloc) would still trigger triedb.Commit, which can fail because there are no diff layers to persist. This change compares the computed root against the scheme-appropriate emptyRoot selected earlier in the function, ensuring we do not commit a truly empty state for both MPT and Verkle.

@rjl493456442 rjl493456442 added this to the 1.16.8 milestone Nov 13, 2025
@rjl493456442 rjl493456442 merged commit fa16c89 into ethereum:master Nov 13, 2025
5 of 6 checks passed
atkinsonholly pushed a commit to atkinsonholly/ephemery-geth that referenced this pull request Nov 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants