Skip to content
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

Fix weight limits in evm tracing runtimes #3210

Merged
merged 11 commits into from
Mar 10, 2025

Conversation

RomarQ
Copy link
Contributor

@RomarQ RomarQ commented Mar 8, 2025

What does it do?

The changes included in this pull request fix the weight limits used in evm tracing runtimes.

Runtimes with feature evm-tracing enabled introduce additional (ref_time) overhead, since they have special logic to trace ethereum transactions (emitting events for each component: gasometer, runtime, evm) that is then used to fill all the information for (debug_traceTransaction, trace_filter, ...) rpc calls.

Since the real ref_time in production runtimes is smaller, it means that we could reach the block weight limits when replaying a block in a evm-tracing runtime, and as result skip transactions traces. (Which was the case in moonbeam block 9770044)

What important points should reviewers know?

The fix consists in resetting the previously consumed weight before tracing each ethereum transaction, the fix only affects code under evm-tracing, which is not included in any production runtime.

@RomarQ RomarQ self-assigned this Mar 8, 2025
@RomarQ RomarQ added B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes D5-nicetohaveaudit⚠️ PR contains trivial changes to logic that should be properly reviewed. not-breaking Does not need to be mentioned in breaking changes labels Mar 8, 2025
Copy link
Contributor

github-actions bot commented Mar 8, 2025

WASM runtime size check:

Compared to target branch

Moonbase runtime: 2420 KB (no changes) 🚨

Moonbeam runtime: 2400 KB (no changes) ✅

Moonriver runtime: 2412 KB (no changes) 🚨

Compared to latest release (runtime-3501)

Moonbase runtime: 2420 KB (+468 KB compared to latest release) 🚨

Moonbeam runtime: 2400 KB (+460 KB compared to latest release) ⚠️

Moonriver runtime: 2412 KB (+472 KB compared to latest release) 🚨

Copy link
Contributor

github-actions bot commented Mar 8, 2025

Coverage Report

@@                         Coverage Diff                         @@
##           master   rq/fix-over-weight-when-tracing      +/-   ##
===================================================================
- Coverage   74.57%                            74.56%   -0.01%     
  Files         381                               381              
+ Lines       96700                             96746      +46     
===================================================================
+ Hits        72114                             72130      +16     
+ Misses      24586                             24616      +30     
Files Changed Coverage
/runtime/common/src/apis.rs 29.23% (+0.41%) 🔼

Coverage generated Sun Mar 9 19:52:00 UTC 2025

@RomarQ RomarQ added D3-trivial PR contains trivial changes in a runtime directory that do not require an audit and removed D5-nicetohaveaudit⚠️ PR contains trivial changes to logic that should be properly reviewed. labels Mar 9, 2025
@RomarQ RomarQ marked this pull request as ready for review March 9, 2025 19:03
@RomarQ RomarQ requested a review from manuelmauro March 9, 2025 19:17
@RomarQ RomarQ removed their assignment Mar 9, 2025
@RomarQ RomarQ requested review from TarekkMA, pLabarta and snowmead March 9, 2025 19:17
@RomarQ RomarQ merged commit a738b0f into master Mar 10, 2025
37 checks passed
@RomarQ RomarQ deleted the rq/fix-over-weight-when-tracing branch March 10, 2025 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes D3-trivial PR contains trivial changes in a runtime directory that do not require an audit not-breaking Does not need to be mentioned in breaking changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants