feat(core,miner): implement EIP-7934 - RLP execution block size limit #31990#2237
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Implements the EIP-7934 RLP-encoded block size cap (activated at Osaka) by introducing a protocol constant, enforcing the cap during block validation, and adding miner-side packing heuristics plus a regression test.
Changes:
- Add
params.MaxBlockSizeprotocol constant for the maximum RLP-encoded block size. - Enforce oversized block rejection in
core.BlockValidator.ValidateBody(Osaka+). - Add miner-side transaction packing limit and a unit test covering oversized block validation at the Osaka fork boundary.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| params/protocol_params.go | Adds MaxBlockSize protocol constant used for the new cap. |
| core/error.go | Introduces ErrBlockOversized for block-size validation failures. |
| core/block_validator.go | Enforces the RLP block size cap from Osaka onward. |
| core/block_validator_test.go | Adds a test ensuring oversized blocks are rejected only post-Osaka. |
| miner/worker.go | Tracks approximate assembled size and stops including txs when near the cap. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| for _, tx := range specialTxs { | ||
| if !w.txFitsSize(tx) { | ||
| log.Debug("Skipping oversized transaction", "hash", tx.Hash(), "size", tx.Size()) | ||
| continue | ||
| } |
There was a problem hiding this comment.
Miner-side enforcement of the new Osaka block-size cap isn’t covered by tests in this PR. Since miner/worker_test.go exists and this change affects transaction selection behavior, please add a unit test that activates Osaka and asserts oversized transactions are skipped (and that normal-sized transactions are still included).
c1dab06 to
2819ebc
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Proposed changes
Ref: ethereum#31990
Types of changes
What types of changes does your code introduce to XDC network?
Put an
✅in the boxes that applyImpacted Components
Which parts of the codebase does this PR touch?
Put an
✅in the boxes that applyChecklist
Put an
✅in the boxes once you have confirmed below actions (or provide reasons on not doing so) that