op-reth: apply RISE patches - #2
Open
silver-rise wants to merge 2 commits into
Open
Conversation
The RISE sequencer raises three revm CfgEnv limits for every block it builds: deployed code size to 256 KiB (EIP-170 default is 24 KiB), initcode size to 512 KiB (EIP-3860 default is 48 KiB), and no per-transaction gas cap. A node running the vanilla limits rejects transactions the sequencer accepted and forks off the canonical chain. Observed on RISE mainnet at L2 block 19548399: a contract creation carrying 84,302 bytes of initcode was dropped by a vanilla replica, which built a 576-transaction block against the canonical 577. Apply the overrides in all three EvmEnv constructors -- evm_env (historical replay, executor, RPC), next_evm_env (block building from DA-derived payload attributes, the path that dropped the transaction above) and evm_env_for_payload (engine_newPayload). Patching a subset only defers the fork to whichever path is hit next. The ConfigureEngineEvm<OpExecData> impl in reth-optimism-payload delegates to evm_env_for_payload, so it is covered. Mirrors RiseEvmConfig in risechain/rise, execution/crates/core/src/evm.rs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two upstream defaults are unreachable for RISE and make a vanilla op-node derive a different chain than the one RISE published. DAFootprintGasScalarDefault: RISE commits a zero DA footprint gas scalar in every L1-attributes transaction. Upstream reads 0 as "unset" and substitutes 400 before encoding, and no system-config value can produce a committed 0. Feeding real mainnet inputs through upstream's own encoder reproduces 176 of 178 bytes; only the trailing scalar differs (0000 against 0190). MaxFrameLen: RISE posts frames through EigenDA, whose maximum payload is 16,252,897 bytes. Larger payloads encode to a 32 MiB blob and are rejected at dispersal. Calldata is [1 version byte] + [23 byte frame header] + [frame payload], so frames run up to 16,252,873 bytes -- well past the 1 MB upstream cap, which would reject them outright. Also add RISE.md at the repo root describing the EL and CL deltas carried on this branch, and the two base-tag traps: track RISE's deployed version rather than their default branch, and the datadir is locked to a storage layout. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
No description provided.