Skip to content

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

Merged
rjl493456442 merged 5 commits into
ethereum:masterfrom
gballet:rebase-add-transition-tree
Aug 15, 2025
Merged

trie, core/state: add the transition tree (verkle transition part 2)#32366
rjl493456442 merged 5 commits into
ethereum:masterfrom
gballet:rebase-add-transition-tree

Conversation

@gballet
Copy link
Copy Markdown
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
Comment thread trie/transition.go
// 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
Copy Markdown
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
Copy Markdown
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)
  ...
gballet added a commit to gballet/go-ethereum that referenced this pull request Sep 11, 2025
…thereum#32366)

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

---------

Signed-off-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
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