Skip to content

Commit 81a2985

Browse files
authored
Merge pull request #16298 from nixorokish/dev
rearranged page to fit upcoming blog post structure, added non-core EIPs
2 parents e8e4086 + 88312bc commit 81a2985

File tree

5 files changed

+90
-40
lines changed

5 files changed

+90
-40
lines changed

app/[locale]/community/page.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations"
1616
import CommunityPage from "./_components/community"
1717
import CommunityJsonLD from "./page-jsonld"
1818

19-
export default async function Page({
20-
params,
21-
}: {
22-
params: { locale: Lang }
23-
}) {
19+
export default async function Page({ params }: { params: { locale: Lang } }) {
2420
const { locale } = params
2521

2622
setRequestLocale(locale)
36.2 KB
Loading

public/content/roadmap/fusaka/index.md

Lines changed: 73 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,10 @@ The Fusaka upgrade is only a single step in Ethereum's long-term development goa
1616

1717
## Improvements in Fusaka {#improvements-in-fusaka}
1818

19-
### Data availability & L2 scaling {#data-availability-and-l2-scaling}
19+
### Scale blobs {#scale-blobs}
2020

2121
#### PeerDAS {#peerdas}
2222

23-
Specification: https://eips.ethereum.org/EIPS/eip-7594
24-
25-
Resources: [PeerDAS, Lion DappLion: Scaling Ethereum Today | ETHSofia 2024](https://youtu.be/bONWd1x2TjQ?t=328)
26-
2723
This is the _headliner_ of the Fusaka fork, the main feature added in this upgrade. Layer 2s currently post their data to Ethereum in blobs, the ephemeral data type created specifically for layer 2s. Pre-Fusaka, every full node has to store every blob to ensure that the data exists. As blob throughput rises, having to download all of this data becomes untenably resource-intensive.
2824

2925
With [data availability sampling](https://notes.ethereum.org/@fradamt/das-fork-choice) , instead of having to store all of the blob data, each node will be responsible for a subset of the blob data. Blobs are uniformly randomly distributed across nodes in the network with each full node holding only 1/8th of the data, therefore enabling theoretical scale up to 8x. To ensure availability of the data, any portion of the data can be reconstructed from any existing 50% of the whole with methods that drive down the probability of wrong or missing data to a cryptographically negligible level (~one in 10²⁰ to one in 10²⁴).
@@ -37,9 +33,7 @@ This keeps hardware and bandwidth requirements for nodes tenable while enabling
3733
- [DappLion on PeerDAS: Scaling Ethereum Today | ETHSofia 2024](https://youtu.be/bONWd1x2TjQ?t=328)
3834
- [Academic: A Documentation of Ethereum’s PeerDAS (PDF)](https://eprint.iacr.org/2024/1362.pdf)
3935

40-
#### Blob parameter only forks {#blob-parameter-only-forks}
41-
42-
Specification: https://eips.ethereum.org/EIPS/eip-7892
36+
#### Blob-Parameter-Only forks {#blob-parameter-only-forks}
4337

4438
Layer 2s scale Ethereum - as their networks grow, they need to post more data to Ethereum. This means that Ethereum will need to increase the number of blobs available to them as time goes on. Although PeerDAS enables scaling blob data, it needs to be done gradually and safely.
4539

@@ -49,11 +43,15 @@ These coordinated upgrades generally include a lot of changes, require a lot of
4943

5044
Blob parameter only forks can be set by clients, similarly to other configuration like gas limit. Between major Ethereum upgrades, clients can agree to increase the `target` and `max` blobs to e.g. 9 and 12 and then node operators will update to take part in that tiny fork. These blob parameter only forks can be configured at any time.
5145

52-
#### Blob base-fee bounded by execution costs {#blob-base-fee-bounded-by-execution-costs}
46+
When blobs were first added to the network in the Dencun upgrade, the target was 3. That was increased to 6 in Pectra and, after Fusaka, that can now be increased at a sustainable rate independently of these major network upgrades.
47+
48+
![Chart showing average blob count per block and increasing targets with upgrades](./average-blob-count-per-block.webp)
5349

54-
Specification: https://eips.ethereum.org/EIPS/eip-7918
50+
Graph source: [Ethereum Blobs - @hildobby, Dune Analytics](https://dune.com/hildobby/blobs)
5551

56-
Storybook explainer: https://notes.ethereum.org/@anderselowsson/AIG
52+
**Resources**: [EIP-7892 technical specification](https://eips.ethereum.org/EIPS/eip-7892)
53+
54+
#### Blob base-fee bounded by execution costs {#blob-base-fee-bounded-by-execution-costs}
5755

5856
Layer 2s pay two bills when they post data: the blob fee and the execution gas needed to verify those blobs. If execution gas dominates, the blob fee auction can spiral down to 1 wei and stop being a price signal.
5957

@@ -63,89 +61,129 @@ EIP-7918 pins a proportional reserve price under every blob. When the reserve is
6361
- layer 2s pay at least a meaningful slice of the compute they force on nodes
6462
- base-fee spikes on the EL can no longer strand the blob fee at 1 wei
6563

66-
### Gas limits, fees & DoS hardening {#gas-limits-fees-and-dos-hardening}
64+
**Resources**:
65+
- [EIP-7918 technical specification](https://eips.ethereum.org/EIPS/eip-7918)
66+
- [Storybook explainer](https://notes.ethereum.org/@anderselowsson/AIG)
6767

68-
#### Set upper bounds for MODEXP {#set-upper-bounds-for-modexp}
6968

70-
Specification: https://eips.ethereum.org/EIPS/eip-7823
69+
### Scale L1 {#scale-l1}
70+
71+
#### History expiry and simpler receipts {#history-expiry}
72+
73+
In July 2025, Ethereum execution clients [began to support partial history expiry](https://blog.ethereum.org/2025/07/08/partial-history-exp). This dropped history older than [the Merge](https://ethereum.org/roadmap/merge/) in order to reduce the disk space required by node operators as Ethereum continues to grow.
74+
75+
This EIP is in a section apart from the "Core EIPs" because the fork doesn't actually implement any changes - it's a notice that client teams must support history expiry by the Fusaka upgrade. Practically, clients can implement this any time but adding it to the upgrade concretely put it on their to-do list and enabled them to test Fusaka changes in conjunction with this feature.
76+
77+
**Resources**: [EIP-7642 technical specification](https://eips.ethereum.org/EIPS/eip-7642)
78+
79+
#### Set upper bounds for MODEXP {#set-upper-bounds-for-modexp}
7180

7281
Until now, the MODEXP precompile accepted numbers of virtually any size. That made it hard to test, easy to abuse, and risky for client stability. EIP-7823 puts a clear limit in place: each input number can be at most 8192 bits (1024 bytes) long. Anything bigger is rejected, the transaction’s gas is burned, and no state changes occur. It very comfortably covers real-world needs while removing the extreme cases that complicated gas limit planning and security reviews. This change provides more security and DoS protection without affecting user or developer experience.
7382

74-
#### Transaction Gas Limit Cap {#transaction-gas-limit-cap}
83+
**Resources**: [EIP-7823 technical specification](https://eips.ethereum.org/EIPS/eip-7823)
7584

76-
Specification: https://eips.ethereum.org/EIPS/eip-7825
85+
#### Transaction Gas Limit Cap {#transaction-gas-limit-cap}
7786

7887
EIP-[7825](https://eips.ethereum.org/EIPS/eip-7825) adds a cap of 16,777,216 (2^24) gas per transaction. It’s proactive DoS hardening by bounding the worst-case cost of any single transaction as we raise the block gas limit. It makes validation and propagation easier to model to allow us to tackle scaling via raising the gas limit.
7988

8089
Why exactly 2^24 gas? It’s comfortably smaller than today’s gas limit, is large enough for real contract deployments & heavy precompiles, and a power of 2 makes it easy to implement across clients. This new maximum transaction size is a similar to pre-Pectra average block size, making it a reasonable limit for any operation on Ethereum.
8190

82-
#### MODEXP Gas Cost Increase {#modexp-gas-cost-increase}
91+
**Resources**: [EIP-7825 technical specification](https://eips.ethereum.org/EIPS/eip-7825)
8392

84-
Specification: https://eips.ethereum.org/EIPS/eip-7883
93+
#### `MODEXP` gas cost increase {#modexp-gas-cost-increase}
8594

8695
MODEXP is a precompile built‑in function that calculates modular exponentiation, a type of large‑number math used in RSA signature verification and proof systems. It allows contracts to run these calculations directly without having to implement them themselves.
8796

8897
Devs and client teams identified MODEXP as a major obstacle to increasing the block gas limit because the current gas pricing often underestimates how much computing power certain inputs require. This means one transaction using MODEXP could take up most of the time needed to process an entire block, slowing down the network.
8998

90-
EIP‑7883 changes the pricing to match real computational costs by:
99+
This EIP changes the pricing to match real computational costs by:
91100

92101
- raising the minimum charge from 200 to 500 gas and removing the one‑third discount from EIP-2565 on the general cost calculation
93102
- increasing the cost more sharply when the exponent input is very long. if the exponent (the “power” number you pass as the second argument) is longer than 32 bytes / 256 bits, the gas charge climbs much faster for each extra byte
94103
- charging large base or modulus extra as well. The other two numbers (the base and the modulus) are assumed to be at least 32 bytes - if either one is bigger, the cost rises in proportion to its size
95104

96105
By better matching costs to actual processing time, MODEXP can no longer cause a block to take too long to validate. This change is one of several aimed at making it safe to increase Ethereum’s block gas limit in the future.
97106

107+
**Resources**: [EIP-7883 technical specification](https://eips.ethereum.org/EIPS/eip-7883)
108+
98109
#### RLP Execution Block Size Limit {#rlp-execution-block-size-limit}
99110

100-
Specification: https://eips.ethereum.org/EIPS/eip-7934
111+
This creates a ceiling on how big a block is allowed to be - this is a limit on what's *sent* over the network and is separate from the gas limit, which limits the *work* inside a block. The block size cap is 10 MiB, with a small allowance (2 MiB) reserved for consensus data so that everything fits and propagates cleanly. If a block shows up bigger than that, the clients reject it.
112+
This is needed because very large blocks take longer to spread and verify across the network and can create consensus issues or be abused as a DoS vector. Also, the consensus layer’s gossip already won’t forward blocks over ~10 MiB, so aligning the execution layer to that limit avoids weird “seen by some, dropped by others” situations.
101113

102-
Ethereum adds a hard cap on the [RLP](/developers/docs/data-structures-and-encoding/rlp/)-encoded execution block size: 10 MiB total, with a 2 MiB safety margin reserved for beacon-block framing. Practically, clients define `MAX_BLOCK_SIZE = 10,485,760` bytes and `SAFETY_MARGIN = 2,097,152` bytes, and reject any execution block whose RLP payload exceeds `MAX_RLP_BLOCK_SIZE = MAX_BLOCK_SIZE − SAFETY_MARGIN`. The goal is to bound worst-case propagation/validation time and align with CL gossip behavior (blocks over ~10 MiB aren’t propagated), reducing reorg/DoS risk without changing gas accounting.
114+
The nitty-gritty: this is a cap on the [RLP](/developers/docs/data-structures-and-encoding/rlp/)-encoded execution block size. 10 MiB total, with a 2 MiB safety margin reserved for beacon-block framing. Practically, clients define
103115

104-
#### Set default gas limit to XX million {#set-default-gas-limit-to-xx-million}
116+
`MAX_BLOCK_SIZE = 10,485,760` bytes and
117+
118+
`SAFETY_MARGIN = 2,097,152` bytes,
119+
120+
and reject any execution block whose RLP payload exceeds
121+
122+
`MAX_RLP_BLOCK_SIZE = MAX_BLOCK_SIZE − SAFETY_MARGIN`
123+
124+
The goal is to bound worst-case propagation/validation time and align with consensus layer gossip behavior, reducing reorg/DoS risk without changing gas accounting.
105125

106-
Specification: https://eips.ethereum.org/EIPS/eip-7935
126+
**Resources**: [EIP-7934 technical specification](https://eips.ethereum.org/EIPS/eip-7934)
127+
128+
#### Set default gas limit to XX million {#set-default-gas-limit-to-xx-million}
107129

108130
Prior to raising the gas limit from 30M to 36M in February 2025 (and subsequently to 45M), this value hadn’t changed since the Merge (September 2022). This EIP aims to make consistent scaling a priority.
109131

110132
EIP-7935 coordinates EL client teams to raise the default gas-limit above today’s 45M for Fusaka. It’s an Informational EIP, but it explicitly asks clients to test higher limits on devnets, converge on a safe value, and ship that number in their Fusaka releases.
111133

112134
Devnet planning targets ~60M stress (full blocks with synthetic load) and iterative bumps; research says worst-case block-size pathologies shouldn’t bind below ~150M. Rollout should be paired with the transaction gas-limit cap (EIP-7825) so no single transaction can dominate as limits rise.
113135

114-
### Preconfirmation support {#preconfirmation-support}
136+
**Resources**: [EIP-7935 technical specification](https://eips.ethereum.org/EIPS/eip-7935)
115137

116-
#### Deterministic proposer lookahead {#deterministic-proposer-lookahead}
138+
### Improve UX {#improve-ux}
117139

118-
Specification: https://eips.ethereum.org/EIPS/eip-7917
140+
#### Deterministic proposer lookahead {#deterministic-proposer-lookahead}
119141

120142
With EIP-7917, Beacon Chain will become aware of upcoming block proposers for the next epoch. Having a deterministic view on which validators will be proposing future blocks can enable [preconfirmations](https://ethresear.ch/t/based-preconfirmations/17353) - a commitment with the upcoming proposer that guarantees the user transaction will be included in their block without waiting for the actual block.
121143

122144
This feature benefits client implementations and security of the network as it prevents edge cases where validators could manipulate the proposer schedule. The lookahead also allows for less complexity of the implementation.
123145

124-
### Opcodes & precompiles (developer goodies) {#opcodes-and-precomliles}
146+
**Resources**: [EIP-7917 technical specification](https://eips.ethereum.org/EIPS/eip-7917)
125147

126148
#### Count leading zeros (CLZ) opcode {#count-leading-zeros-opcode}
127149

128-
Specification: https://eips.ethereum.org/EIPS/eip-7939
150+
This feature adds a small EVM instruction, **count leading zeroes (CLZ)**. Most everything in the EVM is represented as a 256-bit value—this new opcode returns how many zero bits are at the front. This is a common feature in many instruction set architectures as it enables more efficient arithmetic operations. In practice this collapses today’s hand-rolled bit scans into one step, so finding the first set bit, scanning bytes, or parsing bitfields becomes simpler and cheaper. The opcode is low, fixed-cost and has been benchmarked to be on par with a basic add, which trims bytecode and saves gas for the same work.
129151

130-
EIP-7939 adds a small EVM instruction, CLZ (“count leading zeros”). Given a 256-bit value, it returns how many zero bits are at the front — and returns 256 if the value is entirely zero. This is a common feature in many instruction set architectures as it enables more efficient arithmetic operations. In practice this collapses today’s hand-rolled bit scans into one step, so finding the first set bit, scanning bytes, or parsing bitfields becomes simpler and cheaper. The opcode is low, fixed-cost and has been benchmarked to be on par with a basic add, which trims bytecode and saves gas for the same work.
152+
**Resources**: [EIP-7939 technical specification](https://eips.ethereum.org/EIPS/eip-7939)
131153

132-
### Precompile for secp256r1 Curve Support {#secp256r1-precompile}
133-
134-
Specification: https://eips.ethereum.org/EIPS/eip-7951
154+
#### Precompile for secp256r1 Curve Support {#secp256r1-precompile}
135155

136156
Introduces a built-in, passkey-style secp256r1 (P-256) signature checker at the fixed address `0x100` using the same call format already adopted by many L2s and fixing edge cases, so contracts written for those environments work on L1 without changes.
137157

138158
UX upgrade! For users, this unlocks device-native signing and passkeys. Wallets can tap into Apple Secure Enclave, Android Keystore, hardware security modules (HSMs), and FIDO2/WebAuthn directly - no seed phrase, smoother onboarding, and multi-factor flows that feel like modern apps. This results in better UX, easier recovery, and account abstraction patterns that match what billions of devices do already.
139159

140160
For developers, it takes a 160-byte input and returns a 32-byte output, making it easy to port existing libraries and L2 contracts. Under the hood, it includes point-at-infinity and modular-comparison checks to eliminate tricky edge cases without breaking valid callers.
141161

142-
[More about RIP-7212](https://www.alchemy.com/blog/what-is-rip-7212) _(Note that EIP-7951 superseded RIP-7212)_
162+
**Resources**:
163+
- [EIP-7951 technical specification](https://eips.ethereum.org/EIPS/eip-7951)
164+
- [More about RIP-7212](https://www.alchemy.com/blog/what-is-rip-7212) _(Note that EIP-7951 superseded RIP-7212)_
165+
166+
### Meta {#meta}
167+
168+
#### `eth_config` JSON-RPC method {#eth-config}
169+
170+
This is a JSON-RPC call that allows you to ask your node what fork settings you're running. It returns three snapshots: `current`, `next`, & `last` so that validators and monitoring tools can verify that clients are lined up for an upcoming fork.
171+
172+
Practically speaking, this is to address a shortcoming discovered when the Pectra fork went live on the Holesky testnet in early 2025 with minor misconfigurations which resulted in a non-finalizing state. This helps testing teams and developers ensure that major forks will behave as expected when moving from devnets to testnets, and from testnets to Mainnet.
173+
174+
Snapshots include: `chainId`, `forkId`, planned fork activation time, which precompiles are active, precompile addresses, system contract dependencies, and the fork's blob schedule.
175+
176+
This EIP is in a section apart from the "Core EIPs" because the fork doesn't actually implement any changes - it's a notice that client teams must implement this JSON-RPC method by the Fusaka upgrade.
177+
178+
**Resources**: [EIP-7910 technical specification](https://eips.ethereum.org/EIPS/eip-7910)
179+
180+
## FAQ {#FAQ}
143181

144-
## Does this upgrade affect all Ethereum nodes and validators? {#does-this-upgrade-affect-all-ethereum-nodes-and-validators}
182+
### Does this upgrade affect all Ethereum nodes and validators? {#does-this-upgrade-affect-all-ethereum-nodes-and-validators}
145183

146184
Yes, the Fusaka upgrade requires updates to both [execution clients and consensus clients](/developers/docs/nodes-and-clients/). All main Ethereum clients will release versions supporting the hard fork marked as high priority. You can keep up with when these releases will be available in client Github repos, their [Discord channels](https://ethstaker.org/support), the [EthStaker Discord](https://dsc.gg/ethstaker), or by subscribing to the Ethereum blog for protocol updates. To maintain synchronization with the Ethereum network post-upgrade, node operators must ensure they are running a supported client version. Note that the information about client releases is time-sensitive, and users should refer to the latest updates for the most current details.
147185

148-
## How can ETH be converted after the hard fork? {#how-can-eth-be-converted-after-the-hardfork}
186+
### How can ETH be converted after the hard fork? {#how-can-eth-be-converted-after-the-hardfork}
149187

150188
- **No Action Required for Your ETH**: Following the Ethereum Fusaka upgrade, there is no need to convert or upgrade your ETH. Your account balances will remain the same, and the ETH you currently hold will remain accessible in its existing form after the hard fork.
151189
- **Beware of Scams!** <Emoji text="⚠️" /> **anyone instructing you to "upgrade" your ETH is trying to scam you.** There is nothing you need to do in relation to this upgrade. Your assets will stay completely unaffected. Remember, staying informed is the best defense against scams.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"/content/roadmap/fusaka/average-blob-count-per-block.webp": {
3+
"hash": "4d42e3c9",
4+
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAKCAIAAAAy3EnLAAAACXBIWXMAAAPoAAAD6AG1e1JrAAABPUlEQVR4nGPo7+1pa2nZunnL2dNnfn7/gYbu376DLP7l4weGL58+/8cNLt+4fv/Zk/dfv3z//fv///8/v/9g+Pn9B6a63bt379+/f+3atbcf3IeIPHv2DKrhy6fP8+fPb25unjhx4rZt2379+vX///9z587t37//3Llzl29c37hxY0xMzMSJExE23LlzB252VVVVY30dxNpHjx55+vlyc3MrKyvPmjXr0aNH8+fPB2lYuXr109cvw6IjFy5fevbSRQYw4OHjExQWkldUVAaDWbNmvX3z9siRIyAnQdyjrKwsIyMDIRUUFJSVlSEkXAPCSU5OThISEnA5BTDAp8Ha2hqiCAIgNiAzFBQUpk6dCtVweN/eQ/v2P7r/4NKFi4/uPzh7+gyEfPXixanjx9+/fQch37999+rFizPnTwEA0aM5TfhJOKYAAAAASUVORK5CYII="
5+
}
6+
}

0 commit comments

Comments
 (0)