Skip to content

chore(deps): update ethereum el/cl client updates#658

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
renovate/ethereum-clients
Open

chore(deps): update ethereum el/cl client updates#658
github-actions[bot] wants to merge 1 commit into
mainfrom
renovate/ethereum-clients

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
erigontech/erigon minor v3.4.3v3.5.0
ethereum/go-ethereum patch v1.17.3v1.17.4
sigp/lighthouse minor v8.1.3v8.2.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

erigontech/erigon (erigontech/erigon)

v3.5.0

Compare Source

Erigon 3.5.0 is a major release headlined by parallel block execution becoming the default and initial support for Ethereum's upcoming Glamsterdam hardfork. It is a drop-in upgrade for 3.4.x users — no re-sync required; existing datadirs upgrade their prune configuration automatically (see Breaking Changes).

Key Features
  • Parallel block execution, on by default. Erigon now executes EVM transactions across multiple cores by default, using the Block-STM (software transactional memory) design pioneered by Aptos: transactions run optimistically in parallel and are re-validated against a multi-version state, re-executing only on conflict (#​21591 by @​mh0lt, closes #​17630). Revert to serial with EXEC3_PARALLEL=false or --exec.serial.
  • Glamsterdam devnet support. Initial implementation of Ethereum's next hardfork: Block-Level Access Lists (EIP-7928), enshrined Proposer-Builder Separation / "Gloas" (EIP-7732) in Caplin, gas repricings (EIP-8037, EIP-7976, EIP-7981), larger contracts (EIP-7954), transfer logs (EIP-7708), and the eth/71 Block Access List wire protocol (EIP-8159). Devnet/testing only — not scheduled on mainnet or any public testnet.
  • debug_executionWitness. Stateless execution-witness generation (EIP-7928/8025) with reth-compatible output, for zkEVM and stateless clients (#​20205 by @​antonis19, #​21629 by @​awskii).
  • More aggressive history pruning by default. --prune.mode=full now follows the EIP-8252 reorg-retention window (~36 days / 262,144 blocks) — see Breaking Changes.
  • GraphQL API revival. Broad resolver coverage restored — queries, logs, call, sendRawTransaction, estimateGas, gasPrice, storage, and EIP-4844 fields.
Breaking Changes
--prune.mode=full: EIP-8252 retention window replaces pre-merge history-expiry

Full mode now retains state and block data for the last 262,144 blocks (~36.4 days), matching EIP-8252's REORG_RETENTION_WINDOW (#​21342). Previously full mode pruned only pre-merge block data (EIP-4444 history-expiry) and kept the last 100,000 blocks of state history.

What changed:

Before After
State history retention last 100,000 blocks last 262,144 blocks
Block data retention pre-merge pruned, all post-merge kept (EIP-4444) last 262,144 blocks

Migration: existing datadirs upgrade automatically and silently. To keep the old "retain all post-merge block data" behavior, set --prune.distance.blocks=18446744073709551615.

Note: physical deletion of frozen snapshot files is not implemented yet (see #​21306), so existing on-disk historical blocks persist for now, though the new cutoff is already recorded at the config level.

In practice, this means only freshly synced full nodes will have a reduced disk footprint.

--prune.mode=blocks: state history retention bumped to 262,144 blocks

--prune.mode=blocks keeps the same shape as before (all block data retained), but its state history retention also bumps from 100,000 to 262,144 blocks. --prune.mode=minimal is unchanged — both block and state history retain the 100,000-block window, deliberately sub-EIP-8252 for disk-constrained operators. See #​21342 for details.


Single p2p listener: --p2p.allowed-ports removed, all eth versions multiplex on --port

Erigon now opens a single TCP listener on --port (default 30303) carrying every configured eth protocol version, instead of one listener per protocol on 30303/30304/30305. This fixes a discovery-DHT race that left inbound peers stuck at a fraction of --maxpeers for multi-protocol deployments: per-protocol ENRs collided under one Node ID, so only one survived in the DHT and peers dialed the wrong listener (#​21335).

What changed:

Aspect Before After
Inbound peer ports 30303, 30304, 30305, … (one per eth version) 30303 only
--p2p.allowed-ports flag Picked one port per protocol from this list Removed — passing it now errors
--maxpeers semantics Per-protocol cap; actual ceiling ≈ N × maxpeers Honest total cap
Default --maxpeers 32 64 (compensates for the now-honest cap)
Enode database directory <datadir>/nodes/eth68, <datadir>/nodes/eth69, … <datadir>/nodes/eth

Migration:

  • Remove --p2p.allowed-ports=... from CLI args / config files; it is no longer recognised.
  • Firewall, Kubernetes Service, and monitoring rules that explicitly opened 30304/30305 can drop those entries — only --port is bound now.
  • If you previously lowered --maxpeers because you knew the per-protocol multiplication inflated the real ceiling, raise it back to the target total (the cap is now what the flag says).
  • First run after upgrade loses the warm peer cache in nodes/eth{68,69,…} — nothing on disk is deleted, the directories are simply no longer read; discovery rebuilds the peer set from bootnodes within a few minutes.

Standalone sentry binary (cmd/sentry) and --sentry.api.addr (remote sentry over gRPC) are unaffected — neither had the bug.


debug_trace* RPC: enableMemory / enableReturnData replace disableMemory / disableReturnData

Aligns Erigon with the execution-apis specification (ethereum/execution-apis#762) and Geth behavior.

What changed:

Field Before (Erigon) After (Erigon / Geth / Spec)
Memory in trace disableMemory (default: included) enableMemory (default: excluded)
Return data in trace disableReturnData (default: included) enableReturnData (default: excluded)

Both the key and its default changed: disable*enable*, and memory and return data are now excluded unless explicitly enabled — matching the spec and Geth.

Migration: memory and return data are now excluded by default. To include them, add the new opt-in key (omit it to keep the default):

  • Memory: { "enableMemory": true }
  • Return data: { "enableReturnData": true }

Affected RPC methods: debug_traceTransaction, debug_traceBlockByHash, debug_traceBlockByNumber, debug_traceCall.


Clique PoA consensus engine removed

The legacy Clique proof-of-authority engine has been removed (#​20532 by @​yperbasis). --chain=dev now runs on an embedded proof-of-stake consensus instead of Clique (#​20451 by @​mh0lt), matching how all live networks operate post-Merge. Networks or tooling that still depended on Clique are no longer supported.


Silkworm integration removed

The optional Silkworm C++ execution-backend integration and its --silkworm.* flags have been removed (#​19662 by @​canepat). Erigon uses its native Go execution engine exclusively.


Glamsterdam (Devnet Support)

3.5.0 adds an initial implementation of Ethereum's next hardfork — Glamsterdam (consensus-layer "Gloas" + execution-layer "Amsterdam") — for devnet testing and validation. It is not scheduled on mainnet or any public testnet, and these code paths are inert on production networks until an activation time is configured.

Added
RPC
CLI & Operations
Changed
RPC
Networking & P2P
  • New eth/70 wire protocol: partial block receipt lists (EIP-7975, #​19755) — by @​yperbasis
  • All eth protocol versions now multiplex on a single TCP listener (see Breaking Changes, #​21335) — by @​lystopad
  • Peer hygiene / DoS hardening: cap and rate-limit inbound NewBlockHashes (#​21557), enforce the 4096-hash limit on NewPooledTransactionHashes (#​20577), drop peers failing blob KZG verification (#​21421), and bound fan-out stream buffers (#​20783) — by @​yperbasis
  • Skip chain-specific bootnodes on genesis-hash mismatch (#​19807); honour an explicitly empty --bootnodes (#​20630) — by @​yperbasis
TxPool
  • Proactive dormancy-based eviction of stale queued transactions (#​19862) — by @​lystopad
  • Transaction parsing migrated onto the shared execution/types transaction types (#​19757); malformed EIP-7702 authorization tuples are now tolerated rather than rejected wholesale (#​20809) — by @​yperbasis
Caplin (Consensus Layer)
  • Unified Engine API client for standalone mode (#​20035) — by @​mh0lt
  • Fork-choice and ENR-stability fixes — recovery from a post-Gloas fork-choice stall and a persistent node key for stable ENR across restarts (#​21228, #​21276) — by @​domiwei
  • Block production: give the EL builder a build window before stopping it, fixing near-empty proposed blocks (~0–2% gas) on otherwise-healthy validators (#​21990) — by @​lystopad
Storage & Performance
Removed
Security

Full Changelog: erigontech/erigon@v3.4.4...v3.5.0


v3.4.4

Compare Source

Erigon 3.5.0 is a major release headlined by parallel block execution becoming the default and initial support for Ethereum's upcoming Glamsterdam hardfork. It is a drop-in upgrade for 3.4.x users — no re-sync required; existing datadirs upgrade their prune configuration automatically (see Breaking Changes).

Key Features
  • Parallel block execution, on by default. Erigon now executes EVM transactions across multiple cores by default, using the Block-STM (software transactional memory) design pioneered by Aptos: transactions run optimistically in parallel and are re-validated against a multi-version state, re-executing only on conflict (#​21591 by @​mh0lt, closes #​17630). Revert to serial with EXEC3_PARALLEL=false or --exec.serial.
  • Glamsterdam devnet support. Initial implementation of Ethereum's next hardfork: Block-Level Access Lists (EIP-7928), enshrined Proposer-Builder Separation / "Gloas" (EIP-7732) in Caplin, gas repricings (EIP-8037, EIP-7976, EIP-7981), larger contracts (EIP-7954), transfer logs (EIP-7708), and the eth/71 Block Access List wire protocol (EIP-8159). Devnet/testing only — not scheduled on mainnet or any public testnet.
  • debug_executionWitness. Stateless execution-witness generation (EIP-7928/8025) with reth-compatible output, for zkEVM and stateless clients (#​20205 by @​antonis19, #​21629 by @​awskii).
  • More aggressive history pruning by default. --prune.mode=full now follows the EIP-8252 reorg-retention window (~36 days / 262,144 blocks) — see Breaking Changes.
  • GraphQL API revival. Broad resolver coverage restored — queries, logs, call, sendRawTransaction, estimateGas, gasPrice, storage, and EIP-4844 fields.
Breaking Changes
--prune.mode=full: EIP-8252 retention window replaces pre-merge history-expiry

Full mode now retains state and block data for the last 262,144 blocks (~36.4 days), matching EIP-8252's REORG_RETENTION_WINDOW (#​21342). Previously full mode pruned only pre-merge block data (EIP-4444 history-expiry) and kept the last 100,000 blocks of state history.

What changed:

Before After
State history retention last 100,000 blocks last 262,144 blocks
Block data retention pre-merge pruned, all post-merge kept (EIP-4444) last 262,144 blocks

Migration: existing datadirs upgrade automatically and silently. To keep the old "retain all post-merge block data" behavior, set --prune.distance.blocks=18446744073709551615.

Note: physical deletion of frozen snapshot files is not implemented yet (see #​21306), so existing on-disk historical blocks persist for now, though the new cutoff is already recorded at the config level.

In practice, this means only freshly synced full nodes will have a reduced disk footprint.

--prune.mode=blocks: state history retention bumped to 262,144 blocks

--prune.mode=blocks keeps the same shape as before (all block data retained), but its state history retention also bumps from 100,000 to 262,144 blocks. --prune.mode=minimal is unchanged — both block and state history retain the 100,000-block window, deliberately sub-EIP-8252 for disk-constrained operators. See #​21342 for details.


Single p2p listener: --p2p.allowed-ports removed, all eth versions multiplex on --port

Erigon now opens a single TCP listener on --port (default 30303) carrying every configured eth protocol version, instead of one listener per protocol on 30303/30304/30305. This fixes a discovery-DHT race that left inbound peers stuck at a fraction of --maxpeers for multi-protocol deployments: per-protocol ENRs collided under one Node ID, so only one survived in the DHT and peers dialed the wrong listener (#​21335).

What changed:

Aspect Before After
Inbound peer ports 30303, 30304, 30305, … (one per eth version) 30303 only
--p2p.allowed-ports flag Picked one port per protocol from this list Removed — passing it now errors
--maxpeers semantics Per-protocol cap; actual ceiling ≈ N × maxpeers Honest total cap
Default --maxpeers 32 64 (compensates for the now-honest cap)
Enode database directory <datadir>/nodes/eth68, <datadir>/nodes/eth69, … <datadir>/nodes/eth

Migration:

  • Remove --p2p.allowed-ports=... from CLI args / config files; it is no longer recognised.
  • Firewall, Kubernetes Service, and monitoring rules that explicitly opened 30304/30305 can drop those entries — only --port is bound now.
  • If you previously lowered --maxpeers because you knew the per-protocol multiplication inflated the real ceiling, raise it back to the target total (the cap is now what the flag says).
  • First run after upgrade loses the warm peer cache in nodes/eth{68,69,…} — nothing on disk is deleted, the directories are simply no longer read; discovery rebuilds the peer set from bootnodes within a few minutes.

Standalone sentry binary (cmd/sentry) and --sentry.api.addr (remote sentry over gRPC) are unaffected — neither had the bug.


debug_trace* RPC: enableMemory / enableReturnData replace disableMemory / disableReturnData

Aligns Erigon with the execution-apis specification (ethereum/execution-apis#762) and Geth behavior.

What changed:

Field Before (Erigon) After (Erigon / Geth / Spec)
Memory in trace disableMemory (default: included) enableMemory (default: excluded)
Return data in trace disableReturnData (default: included) enableReturnData (default: excluded)

Both the key and its default changed: disable*enable*, and memory and return data are now excluded unless explicitly enabled — matching the spec and Geth.

Migration: memory and return data are now excluded by default. To include them, add the new opt-in key (omit it to keep the default):

  • Memory: { "enableMemory": true }
  • Return data: { "enableReturnData": true }

Affected RPC methods: debug_traceTransaction, debug_traceBlockByHash, debug_traceBlockByNumber, debug_traceCall.


Clique PoA consensus engine removed

The legacy Clique proof-of-authority engine has been removed (#​20532 by @​yperbasis). --chain=dev now runs on an embedded proof-of-stake consensus instead of Clique (#​20451 by @​mh0lt), matching how all live networks operate post-Merge. Networks or tooling that still depended on Clique are no longer supported.


Silkworm integration removed

The optional Silkworm C++ execution-backend integration and its --silkworm.* flags have been removed (#​19662 by @​canepat). Erigon uses its native Go execution engine exclusively.


Glamsterdam (Devnet Support)

3.5.0 adds an initial implementation of Ethereum's next hardfork — Glamsterdam (consensus-layer "Gloas" + execution-layer "Amsterdam") — for devnet testing and validation. It is not scheduled on mainnet or any public testnet, and these code paths are inert on production networks until an activation time is configured.

Added
RPC
CLI & Operations
Changed
RPC
Networking & P2P
  • New eth/70 wire protocol: partial block receipt lists (EIP-7975, #​19755) — by @​yperbasis
  • All eth protocol versions now multiplex on a single TCP listener (see Breaking Changes, #​21335) — by @​lystopad
  • Peer hygiene / DoS hardening: cap and rate-limit inbound NewBlockHashes (#​21557), enforce the 4096-hash limit on NewPooledTransactionHashes (#​20577), drop peers failing blob KZG verification (#​21421), and bound fan-out stream buffers (#​20783) — by @​yperbasis
  • Skip chain-specific bootnodes on genesis-hash mismatch (#​19807); honour an explicitly empty --bootnodes (#​20630) — by @​yperbasis
TxPool
  • Proactive dormancy-based eviction of stale queued transactions (#​19862) — by @​lystopad
  • Transaction parsing migrated onto the shared execution/types transaction types (#​19757); malformed EIP-7702 authorization tuples are now tolerated rather than rejected wholesale (#​20809) — by @​yperbasis
Caplin (Consensus Layer)
  • Unified Engine API client for standalone mode (#​20035) — by @​mh0lt
  • Fork-choice and ENR-stability fixes — recovery from a post-Gloas fork-choice stall and a persistent node key for stable ENR across restarts (#​21228, #​21276) — by @​domiwei
  • Block production: give the EL builder a build window before stopping it, fixing near-empty proposed blocks (~0–2% gas) on otherwise-healthy validators (#​21990) — by @​lystopad
Storage & Performance
Removed
Security

Full Changelog: erigontech/erigon@v3.4.4...v3.5.0


ethereum/go-ethereum (ethereum/go-ethereum)

v1.17.4: Flexible Polymer Casing (v1.17.4)

Compare Source

This is a maintenance release with accumulated bug fixes and improvements, and is recommended for all users. It also continues the implementation work for the upcoming Amsterdam hardfork.

One thing worth highlighting:

Fork Implementation (Amsterdam)
Geth
RPC
  • eth_baseFee has been added, returning the base fee of the next block (#​34904, #​35023)

  • eth_capabilities has been added, letting clients discover which historical data a node can serve (#​33886)

  • debug_clearTxpool has been added to clear the transaction pool (#​33347, #​35130)

  • State-reading methods (eth_getBalance, eth_getCode, eth_getStorageAt, etc.) now default the block parameter to latest when omitted (#​35100)

  • Fixes for eth_simulateV1: an incorrect "base fee too low" error code and a pre-Shanghai withdrawal regression (#​34951, #​34939)

  • debug_setHead now propagates rewind errors instead of silently ignoring them (#​35001)

  • EIP-7702 transactions with a nil To address are now rejected (#​35094)

  • HTTP RPC responses now always set Content-Length, and a WebSocket handshake status-code bug was fixed (#​35072, #​35111)

  • The client can now configure trace-context propagation via the traceparent header, and response writes are now traced (#​35132, #​35049)

GraphQL
  • GraphQL request bodies are now limited to 5 MiB (#​35034)
  • Log-range queries with begin > 0 and end == 0 are now rejected (#​35032)
  • The Block.raw resolver now returns empty bytes when the block body is missing (#​35027)
Core
  • A global cache for JUMPDEST bitmaps speeds up EVM execution (#​34850)
  • EVM stack operations are now computed in place, avoiding per-operand copies (#​35156)
  • New code-cache hit/miss meters have been added (#​34821)
  • A shutdown race in snapshot generation has been fixed (#​33540)
Engine API & Blobs
  • Engine API JSON encoding for large blob payloads has been optimized, and gzip is disabled on the engine API (#​33969, #​35057)
  • engine_hasBlobs has been added, and engine_getBlobs now counts only actually-available blobs (#​34859, #​35028)
  • A cache for GetBlobs requests reduces engine API latency, and otel tracing has been added to the GetBlobs endpoints (#​35124, #​35026)
  • Reorged v0 blob sidecar transactions are now dropped rather than converted (#​35099)
  • testing_commitBlockV1 has been added as the write companion to testing_buildBlockV1 (#​34995)
  • New payloads are now imported at genesis regardless of sync status (#​32673)
Networking
  • NAT STUN discovery no longer fails on IPv6 servers (#​35084)
  • Several snap-sync robustness fixes: uncovered state is removed before resuming, a catch-up stall was fixed, sync restarts when the required BAL is unavailable, and the pivot is frozen once state download completes (#​35159)

For a full rundown of the changes please consult the Geth 1.17.4 release milestone.


As with all our previous releases, you can find the:

sigp/lighthouse (sigp/lighthouse)

v8.2.0: Mr. Goldenfold

Compare Source

Summary

⚠️ Lighthouse v8.2.0 is a high-priority release containing fixes for several security vulnerabilities, as well as optimisations and new features.

All beacon node users should upgrade as soon as practical. Validator client users should review the fee-recipient and graffiti changes below before upgrading.

This release also contains substantial Gloas preparation, Fulu data-availability networking improvements, and new standard API support.

Upgrade Notes

  • Mandatory fee recipient: Validator clients now refuse to startup when an enabled validator has no suggested_fee_recipient field in validator_definitions.yml and no global --suggested-fee-recipient fallback is configured. This prevents validator income from being lost accidentally.
  • Validator graffiti: Lighthouse beacon nodes now append client version information to user graffiti by default. To opt-out use the --graffiti-append false flag with Lighthouse VC or set graffiti that is between 30-32 bytes long. There is no change in behaviour if you are already using the --private flag for the beacon node.
  • 💾 Database schema v29: Lighthouse beacon nodes will automatically migrate the database from schema v28 to v29 on startup. A downgrade back to v28 is available prior to the Gloas hard fork, follow the instructions in the [Lighthouse Book](https://lighthouse-book.sigmaprime.io/advanced_

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 6am on monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@github-actions github-actions Bot force-pushed the renovate/ethereum-clients branch 2 times, most recently from acc1737 to e9b21d3 Compare June 22, 2026 12:07
@github-actions github-actions Bot force-pushed the renovate/ethereum-clients branch from e9b21d3 to 2f66e99 Compare June 26, 2026 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants