Dies ist ein Wartungsrelease mit gesammelten Fehlerbehebungen und Verbesserungen, das allen Nutzern empfohlen wird. Es setzt die Implementierungsarbeiten für den bevorstehenden Amsterdam-Hardfork fort. Besonders hervorzuheben: Der Standardwert von GOGC wurde von 20 auf 50 erhöht, was einen höheren Speicherverbrauch gegen geringere Garbage-Collection-Overhead eintauscht. Mit --gogc=20 kann das alte Verhalten beibehalten werden. Pebble v2 wird jetzt als Schlüssel-Wert-Datenbank-Backend unterstützt. Pebble v2 kommt zum Einsatz, wenn Geth von Grund auf neu gestartet wird, und greift bei einer bestehenden Datenbank auf Pebble v1 zurück. Mit geth db pebble-upgrade kann eine ältere Pebble-v1-Datenbank explizit auf v2 aktualisiert werden.
Implementierung des Forks
Mehrere Amsterdam EIPs wurden implementiert oder aktualisiert: EIP-2780 (Ressourcenbasierte intrinsische Transaktionsgaskosten), EIP-8037 (Erhöhung der Gas-Kosten für State-Erstellung), EIP-8038 (Aktualisierung der Gas-Kosten für State-Zugriffe), EIP-8246 (Entfernen von SELFDESTRUCT Burn), EIP-8282 (Builder Execution Requests), EIP-7997 (Deterministic Factory Contract), EIP-7954 (Erhöhung der maximalen Vertragsgröße) und EIP-7928 (Block-Level Access Lists).
Darüber hinaus wurde die Testabdeckung für den Amsterdam-Fork verbessert, das --override.amsterdam-Flag eingeführt, benannte Hardforks aus dem BPO-Plan entfernt und der Bogota-Fork in die Chain-Konfiguration aufgenommen.
Core
Der Blob-Transaktionspool wurde optimiert: Ein spärlicher Blobpool reduziert den Speicherverbrauch, bestehende „Limbo“-Einträge werden beim Start in das neue zellbasierte Sidecar-Format migriert, und die Unterstützung für v0-Blob-Sidecars wurde entfernt.
Leistungsverbesserungen umfassen die Inline-Gasabrechnung zur Behebung einer Leistungsregression, die Wiederverwendung des JUMPDEST-Caches während der Payload-Erstellung sowie die Optimierung der Blockvalidierung. Verschiedene Korrekturen im Snap-Sync beheben das Fehlschlagen beim Nachladen von Blöcken mit fehlenden Canonical-Hash-Mappings und deaktivieren den Snap-Sync-Modus nach dem Committen des Pivot-Blocks. debug_setHead wurde beschleunigt und weist nicht wiederherstellbare Ziele zurück.
Pebble v2 wird als Datenbank-Backend unterstützt, und .ere-Dateien werden im Era-Store akzeptiert. Die neue trie.UpdateBatch-API wurde eingeführt, und die Entwicklung des binären Tries fortgesetzt. Ein Fehler beim Abschneiden des Freezers nach unsauberem Herunterfahren wurde behoben, ebenso wie die Berichterstattung zur Wiederherstellbarkeit des States unter Berücksichtigung des Sync-Status.
Weitere Korrekturen betreffen die Dekodierung des leeren Markers für Eth/71-Block-Access-Listen, die fälschlicherweise Peers getrennt hat, das Prefetching von nicht vorhandenen Konten und die Transaktionsgrößenberechnung. Zudem gab es zahlreiche Allokationsverbesserungen und Snap-v2-Fixes.
Netzwerk
Hochwertige Peers werden nun anhand von Transaktions-Inklusionsstatistiken vor zufälligen Verbindungsabbrüchen geschützt. Ungültige und nicht erreichbare Knoten werden aus den DNS-Discovery-Bäumen entfernt. Ein Dual-Stack-Discovery-Listener in devp2p wird unterstützt, begleitet von mehreren entsprechenden Korrekturen.
RPC
Das neue Flag --rpc.http-body-limit erlaubt die Konfiguration der maximalen HTTP-Request-Body-Größe. Die Kombination von gasPrice mit einer authorizationList wird nun abgelehnt, ebenso wie ein Block-Parameter ohne Nummer oder Hash. Das Autorisierungsschema wird jetzt case-insensitiv abgeglichen.
Tracing
Das konfigurierte Log-Limit wird nun im Struct-Logger respektiert. Tracing-Frames werden gemäß EIP-2780 ausgegeben. Der ERC-7562-Tracer schließt jetzt den Log-Index ein, und es wurde ein Fehler behoben, bei dem der Log-Tracer fälschlicherweise callcode-Transfers erfasste.
Engine API
Über die Engine API wird nun TargetGasLimit übergeben. Die maximale Reorg-Tiefe ist jetzt konfigurierbar. engine_getPayloadBodiesV2 liefert Block-Access-Listen zurück, und das vom Miner konfigurierte MaxBlobsPerBlock wird auf das Protokoll-Limit begrenzt.
Geth & Tooling
Ein --gogc-Flag wurde eingeführt und der Standard-GOGC auf 50 erhöht. geth export schreibt nun Block-Level-Access-Listen. Metrik-Tag-Werte, die = enthalten, werden korrekt bewahrt. Die EELS-Tests wurden auf Version 20.0.0 aktualisiert.
Accounts & ABI
Die Blob-Gebührenobergrenze wird jetzt an externe Signierer weitergeleitet. Abigen v2 generiert jetzt eine GetABI()-Methode für Contract-Bindings, und Abigen v1 wurde korrigiert, um die Bereitstellung von Bibliotheksabhängigkeiten zu unterstützen.
Build
Die ckzg-Abhängigkeit wurde aktualisiert und die Bootstrap-Go-Version für -dlgo auf 1.25.12 angehoben.
Eine vollständige Liste aller Änderungen findet sich im Geth-1.17.5-Release-Meilenstein.
Wie bei allen vorherigen Versionen finden Sie vorkompilierte Binärdateien für alle Plattformen auf unserer Download-Seite, Docker-Images unter ethereum/client-go (mit dem Tag „stable“), Ubuntu-Pakete in unserem Launchpad-PPA-Repository und macOS-Pakete in unserem Homebrew-Tap-Repository.



