Skip to content

Feature/virtual zkevm state proof v2#136

Merged
matkt merged 24 commits into
mainfrom
feature/virtual-zkevm-state-proof-v2
Feb 23, 2026
Merged

Feature/virtual zkevm state proof v2#136
matkt merged 24 commits into
mainfrom
feature/virtual-zkevm-state-proof-v2

Conversation

@matkt
Copy link
Copy Markdown
Collaborator

@matkt matkt commented Feb 12, 2026

PR Description

Fixed Issue(s)

Documentation

  • I thought about documentation and added the doc-change-required label to this PR if updates are required.

Changelog

  • I thought about adding a changelog entry, and added one if I deemed necessary.

Note

Medium Risk
Touches core world-state storage semantics and RPC/sync control flow; correctness depends on layered overlay read/delete behavior and trielog decoding matching Besu formats.

Overview
Adds a new JSON-RPC method rollup_getVirtualZkEVMStateMerkleProofV0 that simulates a transaction on top of a parent block (via Besu eth_simulateV1), decodes the returned trielog, and returns the generated zk trace plus parent/end zk state roots.

To support non-persistent simulation, introduces LayeredWorldStateStorage (overlay-on-parent snapshot with delete tracking) and ZkWorldStateArchive.generateVirtualTrace() which applies a TrieLogLayer against a cached parent snapshot using an ephemeral TraceManager.

Also improves compatibility and robustness: TrieLogLayerConverter now tolerates optional Besu metadata appended to trielogs, RPC clients handle JSON-RPC error responses, GetRawTrieLogClient reuses a shared Vertx, and TrieLogBlockingQueue.waitForNewElement() avoids tight loops and responds faster to shutdown; several new unit tests cover these behaviors.

Written by Cursor Bugbot for commit b9983e2. This will update automatically on new commits. Configure here.

garyschulte and others added 21 commits January 21, 2026 15:29
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
… not head

Signed-off-by: garyschulte <garyschulte@gmail.com>
…_getVirtualZkEVMStateMerkleProofV0

Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
…might potentially be a snapshot

Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
…onor interrupted exception

Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Comment thread trie/src/main/java/net/consensys/shomei/trie/ZKTrie.java
Comment thread .github/workflows/ci.yml Outdated
@matkt matkt force-pushed the feature/virtual-zkevm-state-proof-v2 branch from aa05211 to ceedb33 Compare February 23, 2026 07:35
fab-10
fab-10 previously approved these changes Feb 23, 2026
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 3 potential issues.

@matkt matkt merged commit 0c9fdb4 into main Feb 23, 2026
23 checks passed
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.

3 participants