Benchmark MEL Native + WASM Replay Over an Extremely Large ETH Block#4671
Open
ganeshvanahalli wants to merge 3 commits intomel-validator-createvalidationentryfrom
Open
Benchmark MEL Native + WASM Replay Over an Extremely Large ETH Block#4671ganeshvanahalli wants to merge 3 commits intomel-validator-createvalidationentryfrom
ganeshvanahalli wants to merge 3 commits intomel-validator-createvalidationentryfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## mel-validator-createvalidationentry #4671 +/- ##
========================================================================
- Coverage 49.12% 34.22% -14.91%
========================================================================
Files 513 513
Lines 61424 61424
========================================================================
- Hits 30177 21023 -9154
- Misses 26290 36744 +10454
+ Partials 4957 3657 -1300 |
Contributor
❌ 21 Tests Failed:
View the top 3 failed tests by shortest run time
📣 Thoughts on this report? Let Codecov know! | Powered by Codecov |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MEL Validation Input Load Testing
Context
MEL validation records every parent-chain receipt and transaction trie node as a Keccak256 preimage, bundles them into an
InputJSON, and sends that JSON to the arbitrator replay binary for WASM validation.On a busy L1 with heavy logs, this preimage set can grow very large. This PR adds stress tests to answer whether the arbitrator can load a worst-case preimage set without OOMs, JSON parse errors, or preimage-table failures.
No L2 message extraction is performed here. These tests exclusively exercise the preimage encode → decode → load path.
What’s tested
Two complementary tests were added in
system_tests/mel_validation_input_stress_test.go, gated by themel_validation_input_stressbuild tag:TestMELValidationInputStressLOG4events of 512 bytesTestMELValidationInputStressMaxReceiptLOG4of ~1.35 MBEach test:
The JSON is consumable by crates/bench/src/bin.rs (benchbin) which spins up the WAVM machine with the preimages loaded and runs timed steps.
Results
Medium-receipt run (TestMELValidationInputStress)
Max-receipt run (TestMELValidationInputStressMaxReceipt)
Both runs terminate with Machine too far in benchbin — expected, because we feed no real L2 inbox messages or valid start state, so the replay binary wanders into unreachable territory. What matters for this test is that the preimage resolver is built successfully and serves lookups through the initial replay steps.
Key Findings / Notes
How to Run
Resolves NIT-4719