tl;dr: In den letzten Tagen haben einige L2s bemerkt, dass ihre Einsätze auf Sepolia nicht mehr richtig funktionierten. Das liegt daran EIP-7594 wodurch das Format für Beweise geändert wird. Im Hinblick auf Fusaka fordern wir alle Blob-Ersteller dringend auf, ihre Erstellungssoftware zu aktualisieren Zellbeweise statt Blob-Proofs.
Hintergrund
Ein unterdiskutierter Aspekt von EIP-7549 (PeerDAS) besteht darin, dass das Format für Beweise von Blob-Beweisen zu Zellenbeweisen geändert wird. Dies ermöglicht das Herunterladen eines bestimmten Teils des Blobs anstelle des gesamten Blobs zur Datenverfügbarkeitsstichprobe.
Diese Änderung kann dazu führen, dass Benutzeranwendungen, die Blob-Transaktionen senden, nicht funktionieren. Bereits signierte Transaktionen sind jedoch weiterhin gültig, es müssen lediglich die Zellnachweise neu berechnet werden. Einige Clients (insbesondere Go-Ethereum) erledigen dies über den RPC eth_sendTransaction Und eth_sendRawTransaction (1). Diese Konvertierung von Blob-Proofs zu Zell-Proofs dauert etwa eine Sekunde. Daher empfehlen wir den Urhebern von Blob-Transaktionen, auf Zell-Proofs umzusteigen, um den Overhead auf RPC-Ebene zu reduzieren.
Transaktionen, die sich zum Zeitpunkt der Verzweigung im txpool befinden, werden von einigen Implementierungen verworfen, während andere Implementierungen sie in Zellnachweise umwandeln. Daher wäre es ratsam, Ihre Transaktionen kurz nach der Abzweigung erneut mit Mobilfunknachweisen zu senden, wenn sie nicht in die Kette einbezogen werden. Einige Implementierungen ermöglichen aus Stabilitätsgründen die Verteilung von Blob-Proof-Transaktionen bis zu einigen Minuten nach dem Hard Fork auf der Netzwerkebene.
Umsetzbare Änderungen
Wenn Sie ein Absender einer Blob-Transaktion sind (z. B. ein L2), sollten Sie Ihren Transaktionssendecode aktualisieren, um Zellnachweise zu erstellen.
Alle wichtigen Client-Bibliotheken stellen Funktionen zum Erstellen dieser Beweise bereit ComputeCellsAndKZGProofs() das in allen wichtigen Sprachen verfügbar ist (2). Anwendungsbeispiele finden Sie auch in allen wichtigen Sprachen in den Client-Bibliotheken (3).
Ausblick
Wir werden versuchen, diese Änderungen, die sich auf die Benutzer auswirken, künftig klarer über den Ethereum-Blog zu kommunizieren und die Community stärker zu erreichen, um zu verhindern, dass Benutzer von Ethereum von Änderungen im Protokoll überrascht werden.
Wir ermutigen außerdem L2s und andere Unternehmen, die stark von der Ethereum-Roadmap abhängen, dem ACD-Prozess zu folgen und direkter mit der Community zusammenzuarbeiten. Wir möchten Teams außerdem dazu ermutigen, ihre Verträge und Testinfrastruktur auf den Devnets bereitzustellen, kurz bevor wir zu den ersten Testnets wechseln. Ein weiteres großartiges Tool, um Ihre Änderungen auf dem neuesten Stand zu halten, ist die Verwendung des von Kurtosis bereitgestellten Ethereum-Pakets, mit dem Sie lokale Netzwerke mit den neuesten Spezifikationen erstellen können (4).
Es ist zwar bedauerlich, dass Blob-Ersteller so spät im Hard-Fork-Prozess erfahren haben, aber es zeigt auch, dass der Testnet-Prozess sehr gut funktioniert und diese Probleme erkannt werden, lange bevor sie überhaupt im Mainnet auftreten.
(1): go-ethereum führt nur die Konvertierung durch eth_sendRawTransaction ab dem aktuellen Master und v1.16.5
(2): siehe https://github.com/search?q=repo%3Aethereum%2Fc-kzg-4844%20ComputeCellsAndKZGProofs&type=code
(3) Beispiel für go-ethereum: https://github.com/ethereum/go-ethereum/blob/7c107c2691fa66a1da60e2b95f5946c3a3921b00/crypto/kzg4844/kzg4844_test.go#L194
(4) Ethereum-Paket für Kurtosis: https://github.com/ethpandaops/ethereum-package

