This is a maintenance release with continued progress on the Amsterdam fork implementation. It also introduces ETH/70, which is now live on the network.
Breaking change for tracing APIs (debug_trace*), specifically the structLog (opcode) tracer. The following response fields now follow the newly established client-wide spec (ethereum/execution-apis#762) and reexec has been removed from the tracing config:
memory: words are 0x-prefixed and padded to 32 bytesstorage: keys and values are 0x-prefixederror: omitted when empty (previously serialized as "")
Geth
- Add retry mechanism for checkpoint init in blsync (#33966)
- Add subcommand for offline binary tree conversion (#33740)
- Add code exporter for db export (#34696)
Core
- Amsterdam fork updates:
- Prerequisites of EIP-7928: Block-Level Access Lists (#34064, #34644, #34726, #34776, #34799, #33737)
- Prerequisites of EIP-8037: State Creation Gas Cost Increase (#34691, #34712, #34841)
- EIP-7976: Increase Calldata Floor Cost (#34748)
- EIP-7981: Increase Access List Cost (#34755)
- EIP-7610: Reject contract creation when storage is non-empty (#34718)
- Update state tests (#34671)
- Implement stack arena (#33960)
- Implement EIP-7975: eth/70 partial block receipt lists (#33153)
- Prerequisites of
snap/2protocol (#34083, #34649, #34654, #34874) - Implement history index pruner for path-mode archive nodes (#33999)
- Add Prague chain segment pruning point for Hoodi (#34714)
- Allow reorging head to parent within 32 blocks under ePBS (#34767)
- Stop serving chain segment requests when data is unavailable (#34787)
- Drop peers sending invalid bodies or receipts (#34745, #34870)
- Add kzg4844 cell-related functions (#34766)
- State database refactoring (#33102, #34700, #34763, #34724)
- Binary trie improvements (#34055, #34110, #34670, #34676, #34680, #34690, #34754, #34758, #34777, #34794)
- Merge EIP-4762 access events for all system calls (#34637)
- Reject duplicate layers in the path database (#34642)
- Omit empty
slotNumberand fix block value collection in pre-Amsterdam engine API payloads (#34704) - Include the operand in EIP-8024 error messages (#34635)
- Fix vmodule downgrades and propagate verbosity changes to derived loggers (#33111)
- Fix incorrect fsync ordering for index file truncation (#34728)
- Fix file descriptor leak in freezer error paths (#34735)
- Fix size calculation in path database (#34828)
- Fix gapped queue size cap in blobpool (#34831)
- Improve txpool pending concurrency by using read-only locking (#32924)
- Replace deprecated TypeMux with Feed (#32585)
- Continue blob retrieval when individual cell proof extraction fails (#34891)
- Use uint256 in core Message for faster gas calculations (#34934)
Networking
- Fix early exit of timeout loop when removing expired matchers (#34743, #34878)
- Prevent data races by copying discover buffers before unhandled read errors (#34888)
- Fix discover waitForNodes deadlock by decoupling nodeFeed from table mutex (#34898)
Cryptography
- Validate hash length in nocgo signature verification (#33839)
RPC
- Fix structLog JSON output format and drop
reexecfrom tracing config (#34093) - Apply block overrides (gasLimit, blobBaseFee) in
eth_estimateGas(#34081) - Apply block overrides to header in
eth_call(#34842) - Add
MaxUsedGastoeth_simulatecall results (#34820) - Integrate trienode history indexing progress into
eth_syncing(#34633) - Return -32602 from log RPCs (
eth_getLogs,eth_getFilterLogs, …) when the block range limit is exceeded (#34647)
Others
- Fix prestate tracer to distinguish cleared code from unchanged in EIP-7702 (#34675)
- Emit logs for EIP-7708 ETH burns in tracer (#34623)
- Forward V2 state hooks through mux tracer (#34869)
- Send WebSocket close frame on client disconnect (#33909)
- Omit empty address/topics fields in RPC filter requests (#33884)
- Add package-level error for event signature mismatch (#34076, #34868)
- Add gRPC transport for OTLP trace export (#33941)
- Add system call tracing in t8n command (#34862)
- Stream t8n alloc output to reduce memory use (#34785)
- Enable fsnotify watcher on linux/arm64 (#34834)
- Fix FreeBSD build (#34784)
- Fix disconnect decoding in RLPx ping (#34781)
- Fix hive test for discv5 findnode results (#34043)
- Fix truncation of opening parenthesis in clef (#33702)
For a full rundown of the changes please consult the Geth 1.17.3 release milestone.
As with all our previous releases, you can find the:
- Pre-built binaries for all platforms on our downloads page.
- Docker images published under
ethereum/client-go(use "stable" tag). - Ubuntu packages in our Launchpad PPA repository.
- macOS packages in our Homebrew Tap repository.