v2.8.1 candidate#2243
Conversation
Reject GetWitnessMetadata packets carrying more hashes than MaxWitnessMetadataServe (1024) before iterating, matching the per-request item caps used by maxHeadersServe / maxBodiesServe / maxReceiptsServe in the eth protocol. Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
kurtosis-pos moved the setup and cleanup composite actions under .github/actions/kurtosis/, so the bor workflows fail with "Can't find action.yml" at the Pre/Post kurtosis run steps after checkout. Update both kurtosis-e2e.yml and kurtosis-stateless-e2e.yml to use ./.github/actions/kurtosis/setup and ./.github/actions/kurtosis/cleanup. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
There was a problem hiding this comment.
Pull request overview
Prepare the Bor v2.8.1 stable release by tightening eth/wit request limits, normalizing empty receipt handling across storage and p2p encoding, and ensuring state-sync EVM execution uses an explicit TxContext.
Changes:
- Cap
GetWitnessMetadatarequest hash count toMaxWitnessMetadataServe(1024) and add coverage. - Normalize empty/nil receipts to canonical RLP empty list (
0xc0) across DB writes and eth/68+69 receipt network encoding (with tests). - Set a minimal EVM
TxContextfor state-sync transactions; centralize Bor system transaction sender address inparams.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
params/version.go |
Bumps patch version to v2.8.1. |
params/protocol_params.go |
Introduces params.BorSystemAddress for Bor system/state-sync txs. |
eth/protocols/eth/receipt.go |
Treats nil/empty receipts as canonical empty list during eth/68 and eth/69 encoding. |
eth/protocols/eth/receipt_test.go |
Adds tests for empty/malformed receipts inputs for eth/68 and eth/69 encoding. |
eth/protocols/eth/handlers.go |
Ensures empty receipts are included as rlp.EmptyList in p2p responses. |
eth/handler_wit.go |
Adds MaxWitnessMetadataServe and rejects oversized metadata requests early. |
eth/handler_wit_test.go |
Adds unit test coverage for the witness metadata hash-count cap. |
core/evm.go |
Adds NewEVMTxContextForStateSync helper. |
core/blockchain.go |
Normalizes empty receipt storage to canonical rlp.EmptyList and keeps bor receipt slot nil when absent. |
core/blockchain_test.go |
Adds snap-sync receipt insertion tests validating empty-list normalization. |
consensus/bor/statefull/processor.go |
Uses params.BorSystemAddress and sets TxContext for state-sync EVM calls. |
consensus/bor/bor_test.go |
Adds a test validating ORIGIN/GASPRICE behavior for state-sync execution context. |
.github/workflows/kurtosis-stateless-e2e.yml |
Updates composite action paths for kurtosis setup/cleanup steps. |
.github/workflows/kurtosis-e2e.yml |
Updates composite action paths for kurtosis setup/cleanup steps. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
FYI: Issues reported by Govuln checks are fixed in develop. |
|
Codecov Report❌ Patch coverage is
❌ Your patch status has failed because the patch coverage (72.50%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #2243 +/- ##
==========================================
- Coverage 52.66% 52.27% -0.40%
==========================================
Files 885 885
Lines 156759 155776 -983
==========================================
- Hits 82562 81429 -1133
- Misses 68982 69111 +129
- Partials 5215 5236 +21
... and 34 files with indirect coverage changes
🚀 New features to boost your workflow:
|



Summary
Prepare bor v2.8.1 stable release