Skip to content

Gate BPO hardfork support by L2 block number#121

Merged
karlb merged 2 commits intomainfrom
karlb/bpo-hardforks
Feb 10, 2026
Merged

Gate BPO hardfork support by L2 block number#121
karlb merged 2 commits intomainfrom
karlb/bpo-hardforks

Conversation

@karlb
Copy link
Contributor

@karlb karlb commented Jan 21, 2026

It works on Sepolia if used along with celo-org/op-succinct#107. To test the bpo enabled case, I need a post-Jovian block (e.g. on Chaos).

See also https://github.com/celo-org/celo-blockchain-planning/issues/1301

@karlb karlb force-pushed the karlb/bpo-hardforks branch from c07fbd5 to 26fe8b4 Compare February 4, 2026 12:43
@karlb karlb marked this pull request as ready for review February 4, 2026 12:44
See
https://github.com/celo-org/celo-kona/actions/runs/21671900641/job/62481683195?pr=121:
```
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /github/workspace/Cargo.lock:97:1
   │
97 │ bytes 1.11.0 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2026-0007
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0007
...
```
karlb added a commit to celo-org/op-succinct that referenced this pull request Feb 4, 2026
This is only a partial revert of
ca04a72, but the change described in
the title is fully reverted.

The BPO-stripping is done by the guest anyway, so we don't have to do it
on the host.
See also celo-org/celo-kona#121.
Copy link
Collaborator

@seolaoh seolaoh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I'm wondering if we need to choose BPO activation block to exactly align with the L2 block at which a game is created (e.g. 1800, 3600, ...), so that ideally proving remains successful across all games even during the BPO activation? For example, if one game is for L2 block 120 and the previous game is for 100, and the BPO activation happens on 110, proving for the game targeting L2 block 120 could potentially break, since actually 100 ~ 110 range is not BPO activated but this logic regards the whole range 100 ~ 120 as BPO activated. If it's the case, we need to keep that in mind.

karlb added a commit to celo-org/op-succinct that referenced this pull request Feb 10, 2026
…" (#108)

This is only a partial revert of
ca04a72, but the change described in
the title is fully reverted.

The BPO-stripping is done by the guest anyway, so we don't have to do it
on the host.
See also celo-org/celo-kona#121.
@karlb
Copy link
Contributor Author

karlb commented Feb 10, 2026

LGTM, I'm wondering if we need to choose BPO activation block to exactly align with the L2 block at which a game is created (e.g. 1800, 3600, ...), so that ideally proving remains successful across all games even during the BPO activation? For example, if one game is for L2 block 120 and the previous game is for 100, and the BPO activation happens on 110, proving for the game targeting L2 block 120 could potentially break, since actually 100110 range is not BPO activated but this logic regards the whole range 100120 as BPO activated. If it's the case, we need to keep that in mind.

Good point, this really is something to watch out for!

@karlb karlb merged commit e9a0640 into main Feb 10, 2026
12 checks passed
@karlb karlb deleted the karlb/bpo-hardforks branch February 10, 2026 13:49
karlb added a commit to celo-org/optimism that referenced this pull request Feb 16, 2026
When Ethereum L1 activates Fusaka, the BPO blob schedule changes the
blob base fee calculation. For Celo chains, we missed that and now have
to keep using the Prague blob parameters until Jovian activates on L2.

This matches celo-org/celo-kona#121.

Closes celo-org/celo-blockchain-planning#1301
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants