Skip to content

trie, core/state: add the transition tree (verkle transition part 2) #32366

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 15, 2025

Conversation

gballet
Copy link
Member

@gballet gballet commented Aug 7, 2025

This add some of the changes that were missing from #31634. It introduces the TransitionTrie, which is a façade pattern between the current MPT trie and the overlay tree.

@gballet gballet force-pushed the rebase-add-transition-tree branch from 8658f91 to 496ed49 Compare August 13, 2025 20:56
// existing value is deleted from the trie. The value bytes must not be modified
// by the caller while they are stored in the trie.
func (t *TransitionTrie) UpdateStorage(address common.Address, key []byte, value []byte) error {
var v []byte
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand correctly, the length of slot will never be longer than 32 bytes.

common.TrimLeftZeroes(value[:])

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indeed

@rjl493456442 rjl493456442 changed the title trie, core/state: add the transition tree (verkle transition part 2 redux) trie, core/state: add the transition tree (verkle transition part 2) Aug 15, 2025
@rjl493456442 rjl493456442 added this to the 1.16.3 milestone Aug 15, 2025
@rjl493456442 rjl493456442 merged commit ea3a717 into ethereum:master Aug 15, 2025
2 of 3 checks passed
yzang2019 added a commit to yzang2019/go-ethereum that referenced this pull request Aug 15, 2025
* master: (57 commits)
  core/vm: fix EIP-7823 modexp input length check (ethereum#32363)
  rlp: remove workaround for Value.Bytes (ethereum#32433)
  consensus/misc/eip4844: use blob parameters of current header (ethereum#32424)
  crypto/bn256: refactor to use bitutil.TestBytes (ethereum#32435)
  core/vm: refactor to use bitutil.TestBytes (ethereum#32434)
  cmd/evm: use PathScheme in blockrunner (ethereum#32444)
  trie, core/state: add the transition tree (verkle transition part 2) (ethereum#32366)
  build: remove unused functions (ethereum#32393)
  crypto/secp256k1: use ReadBits from common/math (ethereum#32430)
  build: upgrade -dlgo version to Go 1.25.0 (ethereum#32412)
  .github: upgrade workflows to Go 1.25 (ethereum#32425)
  p2p: refactor to use time.Now().UnixMilli() in golang std lib (ethereum#32402)
  eth/syncer: fix typo (ethereum#32427)
  eth/tracers: Adds codeHash to prestateTracer's response (ethereum#32391)
  rlp: optimize intsize (ethereum#32421)
  node: remove unused err var (ethereum#32398)
  eth: abort `requiredBlocks` check if peer handler terminated (ethereum#32413)
  cmd: fix inconsistent function name in comment (ethereum#32411)
  trie: refactor to use slices.Concat (ethereum#32401)
  consensus: fix ambiguous invalid gas limit error (ethereum#32405)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants