tl;dr: During the last couple of days, some L2s seen that their deployments on Sepolia did not work correctly anymore. This is because of EIP-7594 which adjustments the format for proofs. In anticipation of Fusaka, we urge all blob originators to replace their software program to create Cell Proofs as a substitute of blob proofs.
Background
One underdiscussed facet of EIP-7594 (PeerDAS) is that it adjustments the format for proofs from blob proofs to cell proofs. This enables for downloading a selected a part of the blob as a substitute of the entire blob for information availability sampling.
This modification would possibly break person purposes that ship blob transactions. Already signed transactions are nonetheless legitimate although, they only must recompute the cell proofs. Some purchasers (most notably go-ethereum) will do that through the RPC on eth_sendTransaction and eth_sendRawTransaction (1). This conversion from blob proofs to cell proofs takes about one second, so we encourage blob transaction originators to maneuver to cell proofs so as to cut back overhead on the RPC stage.
Transactions which might be within the txpool on the time of the fork will likely be dropped by some implementations, whereas different implementations will convert them to cell proofs. So it could be prudent to resend your transactions with cell proofs shortly after the fork, if they aren’t being included by the chain. Some implementations permit for the distribution of blob proof transactions up to a couple minutes after the exhausting fork on the networking layer for stability functions.
Actionable adjustments
If you’re a blob transaction originator (e.g. an L2), it’s best to replace your transaction sending code to create cell proofs.
All main shopper libraries expose performance to create these proofs through ComputeCellsAndKZGProofs() which is offered in all main languages (2). Utilization examples will also be present in all main languages within the shopper libraries (3).
Outlook
We are going to attempt to talk these adjustments that affect customers extra clearly through the Ethereum weblog going ahead and attempt to do extra neighborhood outreach to stop customers of Ethereum from feeling blindsided by adjustments within the protocol.
We additionally encourage L2s and different entities that closely depend upon the Ethereum roadmap to comply with the ACD course of and to have interaction extra straight with the neighborhood. We’d additionally prefer to encourage groups to deploy their contracts and check infrastructure on the devnets shortly earlier than we transfer to the primary testnets.
One other useful gizmo for maintaining your adjustments updated is to make use of the Ethereum bundle offered by Kurtosis which can be utilized to create native networks with the most recent specs (4).
Whereas it’s unlucky that blob originators discovered this late within the exhausting fork course of, it additionally reveals that the testnet course of works very nicely and these points are caught lengthy earlier than they might ever seem on mainnet.
(1): go-ethereum will solely do the conversion on eth_sendRawTransaction from present grasp and v1.16.5 onwards
(2): see https://github.com/ethereum/c-kzg-4844 (c)
https://github.com/crate-crypto/go-eth-kzg (go)
https://github.com/crate-crypto/rust-eth-kzg (rust)
(3) Instance for go-ethereum: https://github.com/ethereum/go-ethereum/blob/7c107c2691fa66a1da60e2b95f5946c3a3921b00/crypto/kzg4844/kzg4844_test.go#L194
(4) Ethereum bundle for kurtosis: https://github.com/ethpandaops/ethereum-package
