Skip to content

Commit a5f1dc3

Browse files
committed
adding more detailed notice on the blob fee bug
1 parent c2ce585 commit a5f1dc3

File tree

3 files changed

+98
-0
lines changed

3 files changed

+98
-0
lines changed

pages/notices/_meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"blob-fee-bug": "Superchain testnets' blob fee bug",
23
"pectra-changes": "Preparing for Pectra breaking changes",
34
"holocene-changes": "Preparing for Holocene breaking changes",
45
"sdk-deprecation": "Preparing for Optimism SDK deprecation",

pages/notices/blob-fee-bug.mdx

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
title: Superchain testnets' blob fee bug
3+
description: Learn about the blob fee bug that effects OP Stack testnets on the Superchain and how to fix it.
4+
lang: en-US
5+
content_type: guide
6+
topic: l1-cost-blob-schedule-bug
7+
personas:
8+
- chain-operator
9+
- node-operator
10+
categories:
11+
- security
12+
- protocol
13+
- infrastructure
14+
is_imported_content: 'false'
15+
---
16+
17+
import { Steps, Callout } from 'nextra/components'
18+
import Image from 'next/image'
19+
20+
21+
# Superchain testnets' blob fee bug
22+
23+
At the time of writing, all OP Stack testnets are currently sequencing a "wrong" chain. The L1 Block's blob base fee is calculated with pre-Prague blob schedule parameters. This is not a critical security issue on any OP Sepolia (or Holesky) chain. However, when L1 blob base fees rise to 100 Mwei or higher on the L1 testnet, there is a temporary liveness risk, because we'd be overcharge L1 fees.
24+
25+
This was fixed on the `develop` branch with this [PR](https://github.com/ethereum-optimism/optimism/pull/14500) and there will be no impact on any mainnet chains. Mainnet chains will just need to update their binaries to the latest release prior to the activation of Pectra on Ethereum, so the bug isn't triggered when Pectra activates.
26+
27+
The following sections describe the impact of this bug and how to fix it on your testnet.
28+
29+
## Impact
30+
31+
### Testnet L1 cost overcharging
32+
33+
All OP Stack testnet chains are currently sequencing an unintended chain. The L1 Block's blob base fee is calculated with pre-Prague blob schedule parameters. The L1 Block's blob base fee is calculated with pre-Prague schedule parameters. This has little impact as long as blob base fees on Sepolia are low, but as they rise, we exponentially overcharge. More concretely, our blob base fee calculation is off by an exponential of 1.5:
34+
35+
```
36+
BBF_Cancun = BBF_Prague^1.5
37+
```
38+
39+
This has a huge impact as fees grow:
40+
41+
<Image
42+
src="/img/notices/blob-fee-plot.png"
43+
alt="Blob Fee Bug Graph"
44+
width={600}
45+
height={600}
46+
/>
47+
48+
| BBF Prague (actual) | BBF Cancun (we charge) |
49+
|---------------------|----------------------------|
50+
| 1 Mwei | 1 Gwei |
51+
| 10 Mwei | 31.6 Gwei |
52+
| 100 Mwei | 1 Twei |
53+
| 1 Gwei | 31.6 Twei (31.6e12) |
54+
| 10 Gwei | 1e15 Wei = 1 PetaWei |
55+
| 100 Gwei | 31.6e15 PetaWei |
56+
| 1 Twei | 1e18 Wei = 1 ExaWei |
57+
58+
59+
## For chain and node operators
60+
61+
All chain operators will need to coordinate with their node operators to schedule a hardfork activation time to utilize the correct blob base fee calculation. The following is a list of chains who have opted into the Superchain [hardfork activation inheritance behavior](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/hardfork-activation-inheritance.md) are `OP Sepolia`, `Soneium Minato`, `Zora Sepolia`, `Unichain Sepolia`, `Base Sepolia`, `Mode Sepolia`, `Metal Sepolia`, `Creator Chain Sepolia`, `Ink Sepolia`, and `Ethernity Sepolia`.
62+
63+
These chains will inherit the `Thu Mar 20 16:00:00 UTC 2025` (`1742486400`) hardfork activation time if they're configuring their op-node to use `--network` and `op-geth` with the `--op-network` flags.
64+
65+
The following chains are in the Superchain Registry and are not opted into the hardfork activation inheritance behavior: `Arena-Z Sepolia`, `Cyber Sepolia`, `Funki Sepolia`, `Lisk Sepolia`, `Pivotal Sepolia`, `Race Sepolia`, `Shape Sepolia`, `TBN Sepolia`, and `Worldchain Sepolia`. These chains and any other OP Stack testnet that is not included in the lists above will need to manually set the hardfork activation time for their network to activate on. These following steps are necessary for every node operator:
66+
67+
<Steps>
68+
### Update to the latest release
69+
70+
<Callout type="warning">
71+
You must configure your op-node to utilize the activation timestamp outlined in step 2 at the same time as upgrading your node binary. This is to ensure that the hardfork is activated uniformly across the network. If the Pectra Blob Schedule flag is not set, your node will either not start or automatically apply the hardfork at startup causing the node to fork from the rest of the network.
72+
</Callout>
73+
74+
The following `op-node/v1.12.2` adds a kill-switch to op-node to print an error at startup if the Pectra Blob Schedule Fix time is not set for a Sepolia or Holesky chain. The check only happens if the chain's genesis is before the Holesky/Sepolia Pectra activation time. The check can be disabled with a hidden flag.
75+
76+
The purpose of the kill-switch is to make sure that node operators don't accidentally upgrade their nodes without scheduling the fix because most Holesky and Sepolia chains were running a sequencer that ran into the Pectra Blob Schedule bug. So it's better to not start op-node in such cases at all rather than accidentally forking the chain.
77+
78+
The `op-node/v1.12.1` and `op-node/v1.12.0` binaries do not have this kill-switch and will automatically apply the hardfork at startup if there is no Pectra Blob Schedule Fix time set.
79+
80+
* `op-node` at [`v1.12.2`](https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.12.2)
81+
* `op-geth` at [`v1.101503.1`](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101503.1)
82+
83+
### Update the hardfork activation time
84+
85+
<Callout type="warning">
86+
If you are operating a node for an OP Chain that has opted into the [hardfork activation inheritance behavior](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/hardfork-activation-inheritance.md), the Pectra Blob Schedule Fix activation date is part of the op-node node. So, no action is needed for the sequencer after upgrading to the latest release, assuming you're using the network flags.
87+
88+
That is: `OP Sepolia`, `Soneium Minato`, `Zora Sepolia`, `Unichain Sepolia`, `Base Sepolia`, `Mode Sepolia`, `Metal Sepolia`, `Creator Chain Sepolia`, `Ink Sepolia`, and `Ethernity Sepolia`.
89+
</Callout>
90+
91+
For chains that are not opted into the hardfork activation inheritance behavior, you will need to manually set the hardfork activation time. This can be done one of two ways:
92+
93+
* **Option 1:** Set the activation time in the `rollup.json` for `op-node`. You do not need to set any configurations in `op-geth`.
94+
* **Option 2:** Set the activation time via overrides (CLI) in the `op-node`. These will need to be set on `op-node` for the sequencer and all other nodes. The override flag looks like this: `--override.pectrablobschedule=1742486400`.
95+
96+
97+
</Steps>
184 KB
Loading

0 commit comments

Comments
 (0)