Skip to content

chore(deps): update consensus layer client updates - #82

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/consensus-layer-client-updates
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/consensus-layer-client-updates

Conversation

@renovate

@renovate renovate Bot commented Oct 6, 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
chainsafe/lodestar minor v1.42.0 → v1.50.1
consensys/teku (source) minor 26.4.0 → 26.10.3
gcr.io/prysmaticlabs/prysm/beacon-chain minor v7.1.3 → v7.3.1
sifrai/grandine patch 2.0.4 → 2.0.6
sigp/lighthouse minor v8.1.3 → v8.3.2

Release Notes

Consensys-Incorporated/teku (consensys/teku)

v26.10.3

Compare Source

This is a recommended update addressing the recent CVE-2026-111943 (eMudhra compromised keys)

For more information, read our security advisory.

Additions and Improvements
  • Docker images no longer trust the emSign ECC Root CA - G3, emSign Root CA - G1, emSign Root CA - G2 or AAA Certificate Services roots, which OpenJDK removed after the eMudhra intermediate certificate authorities were compromised in October 2026. The Eclipse Temurin base images do not include this fix yet.

v26.10.2

Compare Source

This is a REQUIRED update for Hoodi network. It unschedules the prior activation date of Gloas in the network.

This is an optional update for other networks containing improvements and bugfixes.

Additions and Improvements
  • Removed the Gloas fork schedule for the HOODI network (previously epoch 132352, 26 Oct 2026); Gloas is unscheduled on HOODI again.

v26.10.1

Compare Source

This is a recommended update containing improvements and bugfixes.

This is a required update for Hoodi Glamsterdam fork (epoch 132352, which is 26 Oct 2026 17:42:48 UTC).

Downloads
  • Available as 26.10.1 on Dockerhub
  • Download the binary distribution from the Assets links below
Breaking Changes

N/A

Additions and Improvements
  • Scheduled Gloas fork for the HOODI network at epoch 132352, which is 26 Oct 2026 17:42:48 UTC.
Bug Fixes
  • Peer selection now gives each peer identity at most one connection slot per search, even when the candidates include more than one record for it. #​11424
  • Gossip subscription announcements carrying up to 500 topics in one RPC are now accepted (previously 200). #​11482
  • Discovered peers whose node record advertises only a QUIC address are no longer ignored. Nodes with QUIC disabled skip them instead of dialing an address they do not have. #​11420
  • Nodes with TCP disabled no longer dial, or fall back to, a discovered peer's TCP address; such candidates are skipped before peer selection and counted in the new peer_candidate_count_total metric. #​11421
Upcoming Breaking Changes

N/A

v26.10.0

Compare Source

This is a recommended update containing improvements and bug fixes.

Downloads
  • Available as 26.10.0 on Dockerhub
  • Download the binary distribution from the release assets below.

Note: We will stop publishing binaries to Cloudsmith in upcoming releases. If you have any automation that relies on the binaries being available there, you should update to consume the binaries from the GitHub releases page

Breaking Changes

N/A

Additions and Improvements
  • Added gossipsub metrics libp2p_gossip_gossipsub_* (off by default; enable them with --Xmetrics-additional-categories=LIBP2P_GOSSIP).
  • Block production now resends forkchoiceUpdated when the execution layer returned no payloadId (e.g. SYNCING) for the one sent ahead of the proposal slot, instead of missing the proposal. A warning is logged when no payloadId is returned.
  • Set gossip max_total_fields limit to 32768. See #​11341.
Bug Fixes
  • The validator client now sends the required Eth-Consensus-Version header when submitting gloas proposer preferences to the beacon node.
  • The validator client now sends the required Eth-Consensus-Version header when submitting gloas payload attestation messages to the beacon node.
  • The ENR eth2 field now advertises the current fork version as next_fork_version when a BPO fork is scheduled before the next hard fork, as the Fulu p2p specification requires.
  • A block production request that fails no longer keeps its preparation for the slot, so a retry within the same slot starts from a fresh preparation.
  • Fixed valid voluntary exits and slashings referring to an earlier fork being rejected on gossip, which wrongly penalised the peers forwarding them.
  • Peers discovered with both QUIC and TCP addresses are now dialed over TCP when the QUIC dial fails, instead of being retried over QUIC only. #​11397
Upcoming Breaking Changes

N/A

v26.9.1

Compare Source

This is a recommended update containing improvements and bugfixes.

This is a required update for the Sepolia network for the upcoming Glamsterdam (Gloas) fork at epoch 353024 (October 6, 2026 13:53:36 UTC).

Downloads
  • Available as 26.9.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 2510817b1ad128e62eef79129dba13158d750f584a1191424d616862e59d523f)
    • zip (sha256: f522a6e7bf0308dd282757bfb9a3c047922ffe4eabaef2f9c2f4d462fc64a3a3)

Note: We will stop publishing binaries to Cloudsmith in upcoming releases. If you have any automation that relies on the binaries being available there, you should update to consume the binaries from the GitHub releases page

Additions and Improvements
  • Scheduled the Glamsterdam (Gloas) upgrade on Sepolia for epoch 353024 (October 6, 2026 13:53:36 UTC).
  • Updated aircompressor to 3.8 and made it the only Snappy implementation for gossip and RPC (removed snappy-xerial dependency)
  • GET /eth/v1/events now responds with 400 when a requested topic is not recognised, instead of opening a stream which never delivers any events.
Bug Fixes
  • Fixed status, event, validator and database log messages being written twice when --log-destination is set to CONSOLE or FILE.
  • Fixed an out of memory error when a sync stopped while the chain head was still far behind. The node no longer reports itself as in sync in that case.
  • Fixed cases where Teku kept running, or hung while shutting down, after an out of memory error instead of exiting. It can now exit with code 3 as well as the usual code 1; both mean the node can be restarted.
  • POST /eth/v1/validator/{pubkey}/graffiti now responds with 202 instead of 204 on success, as required by the keymanager API spec.

v26.9.0

Compare Source

This is a recommended update containing bug fixes and breaking changes.

Downloads
  • Available as 26.9.0 on Dockerhub
  • Binaries available in this GitHub Release page
  • (legacy) Download the binary distribution from Cloudsmith:
    • tar.gz (sha256: 5ec8d07baa1fd870dcf6b6ee5401c2e40401ef8d2c7346d162c5cc6bb9b4cc96)
    • zip (sha256: b8affcccbeb3444b0cf35206c28782f8d3316dc3b416b9c1adeaeabc4de41ca9)

Note: We will stop publishing binaries to Cloudsmith in upcoming releases. If you have any automation that relies on the binaries being available there, you should update to consume the binaries from the GitHub releases page

Breaking Changes
  • Promoted --Xvalidators-external-signer-concurrent-limit to non-experimental --validators-external-signer-concurrent-limit, and imposed maximum limit of 1024
  • Removed the --deposit-snapshot-enabled and --Xdeposit-snapshot CLI options along with the bundled deposit tree snapshots.
Known Issues
  • Some logging configurations are causing a few log messages to be duplicated. Already fixed in b3cb932 and will be part of our next release.
Additions and Improvements
  • Enabled aircompressor-v3 by default for gossip and RPC snappy encoding/decoding. The experimental flags --Xp2p-gossip-snappy-aircompressor-enabled and --Xp2p-rpc-snappy-aircompressor-enabled can be used to revert to snappy-java if needed.
  • Increased the default value of --p2p-target-subnet-subscriber-count from 2 to 3.
  • Added native support for the Plataberget testnet. Use --network=plataberget to join the network.
  • --validator-keys now accepts <KEY_DIR>:<PASS_FILE>, using a single password file for all keystores found in the directory.
  • Improved debug/beacon/states endpoint to allow searching of the finalized state root, to assist third party products searching on roots.
Bug Fixes
  • Fixed validator duties for the first epoch of a fork scheduled after genesis failing with Expected a Gloas state but got: BeaconStateFuluImpl, which left validators without attestation duties for that epoch.
  • Fixed startup from a Gloas genesis state (e.g. a devnet with GLOAS_FORK_EPOCH: 0), which failed with Genesis block root ... does not match genesis state latest block root. The Gloas genesis block body now embeds the state's latest_execution_payload_bid, matching the ethpandaops genesis generator, Lighthouse and Lodestar.
  • Fixed data_column_sidecar gossip decoding to use the schema of the topic's fork instead of the highest supported milestone. Previously, on networks with Gloas scheduled, every Fulu-era column sidecar received via gossip failed deserialization.
  • Validate BeaconBlocksByRoot responses against the requested block roots before accepting them.
  • Fixed a regression where archive nodes using leveldb-tree storage would take an extremely long time to start up.
  • Post-Electra, the committee_index query parameter in GET /eth/v1/validator/attestation_data is now ignored instead of rejected when non-zero, matching the behaviour of other consensus clients.
  • Trigger an immediate peer search when publishing sync committee messages fails because there are no peers available on the required gossip topic.
  • Fixed gossip wire validator to reject inbound messages containing the key field.
  • Fixed the gossip message size gate comparing the compressed payload size against the uncompressed MAX_PAYLOAD_SIZE.

v26.8.0

Compare Source

This is a recommended update containing bug fixes and breaking changes.

Downloads
  • Available as 26.8.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 19d6b3a5e65e8608d0809877973e8ce2bcdca912c13d43e2d41a472d70d98ea4)
    • zip (sha256: e29759d182442ea26096188796f69bbb8d46d987534128edf27ffb5e955bfeb4)
Known Issues
  • If you are using an archive node with a leveldb-tree database, an issue has been introduced where startup takes a very long time. You may be better off avoiding this release if your beacon/db/db.version is leveldb-tree.
Breaking Changes
  • Removed the legacy web3j-based Eth1/PoW deposit-log fetching. A node no longer requires an Eth1 JSON-RPC endpoint to run; deposits are sourced from the finalized deposit-tree snapshot and in-protocol (EIP-6110) execution requests. The following CLI options have been removed: --eth1-endpoints / --eth1-endpoint, --eth1-deposit-contract-max-request-size.
  • Removed the non-production validator-tools send-deposits and validator-tools generate-and-send-deposits internal subcommands (web3j-based deposit submission). validator-tools generate-keys is unaffected.
  • Removed the GetDepositSnapshot RPC endpoint, which has been deprecated and removed since v3.0.0 of the Beacon API spec.
Bug Fixes
  • Fixed Beacon REST API socket retention when clients cancel pending asynchronous requests. Requests now time out after 30 seconds.
  • Fix an edge case on BeaconBlocksByRange where a request for a single block would return an empty response instead of the block.

v26.7.1

Compare Source

This is a strongly recommended update containing security fixes

Downloads
  • Available as 26.7.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 87aab8a34e17276d6cd12d485af98e16696a79752d7bc2cf4e0c7b227d618704)
    • zip (sha256: de3bf274ca05f6fa885505db01c591cc5a5f92699edc28e21abf7d92eff3895f)
Additions and Improvements
  • Added ssz output for validator balances api.
Bug Fixes
  • Updated Libp2p to remove handshake info message.
  • Dual-stack P2P nodes can now bind IPv4 and IPv6 listeners to the same port.
  • Updated third party libraries.
  • Addressed several reported adversarial scenarios.

v26.7.0

Compare Source

This is a recommended update containing the QUIC p2p protocol.

Downloads
  • Available as 26.7.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: d51015a98e0f749acc0c76825975cf1e66fb703b623cc1e1bd3c29d233cbb650)
    • zip (sha256: 27c411fc03d68b11e1dfd1142c3e42dbc6a8044ed6dd88763a6b494e62ea20e3)
Breaking Changes
  • Windows is no longer supported.
  • JDK 25 required from v26.6.0.
Known Issues
  • An extra info message is shown by QUIC, Handshake completed with remote peer id ... which for users is logging noise. This will be removed in the next release. (#​10919)
Additions and Improvements
  • QUIC p2p protocol enabled by default (Port 9001 ip4, 9091 ip6)
    • Note that this is a new UDP port and should be added to Firewall rules, otherwise incoming QUIC peers will not be able to establish a connection.
  • CLI options added for configuration of QUIC
    • --p2p-quic-port (default 9001),
    • --p2p-quic-port-ipv6 (default 9091)
    • --p2p-advertised-quic-port
    • --p2p-advertised-quic-port-ipv6
Bug Fixes
  • Prevent RPC rate-limited peers from immediately reconnecting inbound.
  • Fixed missing process_cpu_seconds_total metric in the Docker images by adding the jdk.management module to the custom Java runtime.

v26.6.1

Compare Source

This is a recommended update containing improvements and security fixes.

NOTE: For users that successfully upgraded to 26.6.0, this release is OPTIONAL.

Downloads
  • Available as 26.6.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: eed089c8d24e39a094047f0541f7305ec6dea0c06388f1b39f7ce881997f1d17 )
    • zip (sha256: a8dce0202a9989ab85d735ef06d1eb663258497148c792c8d548735d53a59b81 )
26.6.1
Bug Fixes
  • Fixed an issue loading snappy native libraries affecting some users
26.6.0
Breaking Changes

JDK 25 is now required. Please update to JDK 25, or your node will fail to start up.

Additions and Improvements
  • Added the Gloas POST /eth/v1/beacon/states/{state_id}/builders Beacon API endpoint from ethereum/beacon-APIs#614, with JSON and SSZ response support.
  • Updated draft Gloas execution payload REST endpoints to match ethereum/beacon-APIs#613:
    GET /eth/v1/beacon/execution_payload_envelope/{block_id} is now
    GET /eth/v1/beacon/execution_payload_envelopes/{block_id}, and
    GET /eth/v1/validator/execution_payload_bid/{slot}/{builder_index} is now
    GET /eth/v1/validator/execution_payload_bids/{slot}/{builder_index}.
Bug Fixes
  • Fixed a scenario where keys added via validator-api that rely on external signer are not slashing-protected locally until the node is restarted.
    To work around this issue, users should either keep slashing protection enabled on the external signer or restart the node after calling the add api.
  • Fixed automatic detection of local node IPv6 address
  • Make sure sync committee duties are retried while the EL is optimistic.
  • Fixed a potential issue in importing blocks when data is not available.
  • Fixed potential NPE when SSE are not closed correctly.
  • Improved pruning for data column sidecars.
  • Delayed DVT attestation selection proof submissions until the target epoch starts, preventing lookahead duties from being submitted too early and ensuring stale pending batches are cancelled when duties are rescheduled.
Upcoming Breaking Changes

Windows support will be removed in the following release.

v26.6.0

Compare Source

This is a recommended update containing JDK25, security fixes, and general improvements.

Known Issues
  • Some users are experiencing issues following the chain after upgrading. 26.6.1 resolves this issue. If you do use 26.6.0, please ensure you check you are following the chain after upgrading. 26.6.1 is identical to 26.6.0, except references an older snappy library.
Downloads
  • Available as 26.6.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: a05b15eef07f7dd961e173d00f4b2151e1a1840c6706c81c32a22a4fc62a2b09)
    • zip (sha256: 58591aab5364230f94eea524e34497ba4a8d2f3fd1408137c3c772e5ea0b5dac)
Breaking Changes

JDK 25 now is now required. Please update to JDK 25, or your node will fail to start up.

Additions and Improvements
  • Added the Gloas POST /eth/v1/beacon/states/{state_id}/builders Beacon API endpoint from ethereum/beacon-APIs#614, with JSON and SSZ response support.
  • Updated draft Gloas execution payload REST endpoints to match ethereum/beacon-APIs#613:
    GET /eth/v1/beacon/execution_payload_envelope/{block_id} is now
    GET /eth/v1/beacon/execution_payload_envelopes/{block_id}, and
    GET /eth/v1/validator/execution_payload_bid/{slot}/{builder_index} is now
    GET /eth/v1/validator/execution_payload_bids/{slot}/{builder_index}.
Bug Fixes
  • Fixed a scenario where keys added via validator-api that rely on external signer are not slashing protected locally until the node is restarted.
    To work around this issue, users should either keep slashing protection enabled on the external signer or restart the node after calling the add api.
  • Fixed automatic detection of local node IPv6 address
  • Make sure sync committee duties are retried while the EL is optimistic.
  • Fixed a potential issue in importing blocks when data is not available.
  • Fixed potential NPE when SSE are not closed correctly.
  • Improved pruning for data column sidecars.
  • Delayed DVT attestation selection proof submissions until the target epoch starts, preventing lookahead duties from being submitted too early and ensuring stale pending batches are cancelled when duties are rescheduled.
Upcoming Breaking Changes

Windows support will be removed in the following release.

prysmaticlabs/prysm (gcr.io/prysmaticlabs/prysm/beacon-chain)

v7.3.1

Compare Source

This is a patch release with a single PR to unschedule Hoodi testnet Glamsterdam fork activation. Mainnet operators do not need to update to this release if they are running v7.3.0 already.

For more information about Hoodi testnet fork activation delay, please read the Ethereum Foundation blog post on this topic.

Changed

v7.3.0

Compare Source

This release schedules the Gloas fork on Hoodi at epoch 132352 (2026-10-26 17:42:48 UTC), with a 200M gas limit from the fork. Hoodi operators must update their beacon nodes and validator clients before then.

On networks that have forked into Gloas, beacon nodes and validator clients must be upgraded together. The V1 GetExecutionPayloadEnvelope and PublishExecutionPayloadEnvelope gRPC endpoints now return FAILED_PRECONDITION, so an older validator client cannot sign envelopes against this beacon node. Pre-Gloas networks are unaffected.

This release also includes fixes that apply to mainnet. We recommend that mainnet operators update their beacon nodes to this release.

Release highlights:

  • Gloas fork on Hoodi at epoch 132352, with a 200M gas limit schedule entry. [PR]
  • Validator client duty-aware shutdown: on SIGINT/SIGTERM the validator client waits up to 8 seconds for the current slot's rewarded duties to finish. A second interrupt stops immediately. --disable-duty-aware-shutdown turns it off. [PR]
  • --enable-archive runs the beacon node as an archive node. It backfills blocks to --archive-origin-state (genesis by default) and regenerates every historical state. [PR]
  • Checkpoint sync from an unfinalized checkpoint. [PR]
  • Gloas builder circuit breaker per direct connection endpoint, with new --builder-* failure and blacklist flags. [PR]
  • New Beacon API endpoints for Gloas: ptc, proposer_preferences, builder_pending_withdrawals and builder_pending_payments. See the Added section below.
  • P2P fixes. See the Fixed section below.
  • --dev, --holesky, the terminal total difficulty and block hash override flags, and several flag aliases are deprecated. They still work. [PR]
  • Consensus spec v1.7.0-beta.4. [PR]
Added
  • Add beacon_payload_gas_limit and beacon_payload_gas_used metrics, set from each received execution payload (block body before Gloas, payload envelope from Gloas). [PR]
  • Log the gas utilization in the Synced execution payload envelope log. [PR]
  • Validator client: duty-aware shutdown. On SIGINT/SIGTERM, postpone the shutdown until the rewarded duties (attestation, sync committee message, block proposal) of the current slot are done, and either at least 3 seconds are left before the next slot or the next slot has no rewarded duty, so that a quick restart does not miss any rewarded duty. The shutdown is postponed by at most 8 seconds. A second interrupt stops immediately. Use --disable-duty-aware-shutdown to opt out. [PR]
  • Broadcast a pending block on the fork digest of its own slot instead of the current fork's, so a block resolved from the pending queue after a fork transition is not sent on a topic where peers cannot decode it. [PR]
  • Support for checkpoint syncing from an unfinalized checkpoint. [PR]
  • Added GET /eth/v1/beacon/states/{state_id}/builder_pending_withdrawals and GET /eth/v1/beacon/states/{state_id}/builder_pending_payments Beacon API endpoints for Gloas states (beacon-APIs#655). [PR]
  • Gloas builder circuit breaker now tracks which builder indices each direct connection endpoint serves. [PR]
  • New beacon flags --builder-allowed-failures, --builder-critical-failures, --builder-blacklist-period, --builder-critical-blacklist-period, --builder-relay-blacklist-period, --builder-failure-backoff-period and --builder-critical-failed-builders. [PR]
  • New --disable-builder-relay-circuit-breaker flag to turn endpoint tracking off, and builder_relays_banned_count / builder_collateral_blacklisted_count metrics. [PR]
  • From Gloas onwards, the SSE block event includes builder_index and block_hash from the block's execution payload bid, per beacon-APIs#641. [PR]
  • Add safe_block_hash and finalized_block_hash to the payload_attributes SSE event from Gloas onwards, per beacon-APIs #​638. [PR]
  • Add GET /eth/v1/beacon/states/{state_id}/ptc endpoint returning the payload timeliness committee for a slot, with JSON and SSZ responses, per beacon-APIs #​657. [PR]
  • --enable-archive turns the node into an archive node: it backfills blocks down to --archive-origin-state (genesis by default) and regenerates every historical state into the state-diff tree. Implies --enable-state-diff and --enable-backfill. [PR]
  • Custom types for more compact representation (marshaled ssz byte slice) of ExecutionPayload.Transactions. [PR]
  • GetExecutionPayloadEnvelopeV2 and PublishExecutionPayloadEnvelopeV2 gRPC endpoints using these new types. [PR]
  • Schedule the Gloas fork on Hoodi at epoch 132352 (2026-10-26 17:42:48 UTC) with a 200M gas limit schedule entry. [PR]
  • Add HEZE_FORK_VERSION and HEZE_FORK_EPOCH config placeholders for the Heze fork, set to far-future on all networks, so upcoming Heze features (EIP-7805, EIP-8015, EIP-8365) can be gated on the fork epoch. [PR]
  • Added GET /eth/v1/beacon/proposer_preferences Beacon API endpoint to retrieve known signed proposer preferences (beacon-APIs#659). [PR]
Changed
  • BeaconState* (Phase0 through Gloas), HistoricalBatch, SigningData, ForkData, DepositMessage and PowBlock in proto/prysm/v1alpha1 are now hand-written SSZ structs and no longer implement proto.Message. Use .Copy() and equality.DeepEqual instead of proto.Clone and proto.Equal. On-disk and wire formats are unchanged. [PR]
  • StateSummary, PendingAttestation and SyncAggregatorSelectionData moved out of the deleted beacon_state.proto into beacon_core_types.proto, attestation.proto and sync_committee.proto (same Go package, field numbers and wire format). [PR]
  • Request Gloas builder-API execution payload bids in parallel with the local payload. [PR]
  • Fall back to the best of the builder-API bid and the cached P2P bid when the local payload is unavailable during a Gloas proposal. [PR]
  • Align data_column_sidecars_by_range batch sizing with the blocks and blob sidecars by range handlers. [PR]
  • Reworded the validator client warning for builders with no max_execution_payment to state the default of 0 and that their bids may lose to the local payload. [PR]
  • Consolidate the Gloas envelope-matching helpers into BlockBuiltOnParentEnvelope. The initial-sync fetcher consistency check now also requires the envelope's beacon block root to equal the block's parent root. [PR]
  • Replace the per-call Broadcasted data column sidecars debug log with a Broadcasted data column sidecars summary log, aggregated per block root and emitted once no column was broadcast for this root during 100 ms. [PR]
  • Decode gossiped beacon blocks under the block validation lock. [PR]
  • Decode gossiped execution payload envelopes under a validation lock. [PR]
  • Remove the experimental status of the --enable-state-diff flag. [PR]
  • ExecutionPayloadGloas.transactions is now a ProgressiveTransactionList under a new protobuf field tag; tag 14 is reserved. Any external code that imports ExecutionPayload and interacts with the Transactions field expecting a [][]byte will need to be updated. [PR]
  • Note: Validator clients and beacon nodes must be upgraded together on networks that have forked into Gloas networks; pre-Gloas networks are unaffected. The V1 GetExecutionPayloadEnvelope and PublishExecutionPayloadEnvelope gRPC endpoints now return FAILED_PRECONDITION. A validator client that still calls them predates the new encoding and would otherwise sign envelopes with an empty transaction list. [PR]
  • Remove the MAX_DATA_COLUMN_SIDECAR_SIZE and MAX_PARTIAL_DATA_COLUMN_SIDECAR_SIZE presets dropped by the spec. [PR]
  • Prettify --help. [PR]
  • Bump consensus spec to v1.7.0-beta.4. [PR]
  • Doppelganger: Remove the enable-doppelganger feature flag warning, log the startup check at info level, and log its duration when done. [PR]
  • Update gossip payload envelope signature verification. [PR]
Deprecated
  • Deprecate the --dev beacon node flag. It still works, and is now listed in the deprecated section of the help. [PR]
  • Deprecate the beacon node flag aliases --subscribe-all-data-subnets, --enable-experimental-backfill, --extend-blob-retention-epoch and --max-goroutines. They still work, and are now listed in the deprecated section of the help. [PR]
  • Deprecate the --holesky flag, as the Holesky testnet has been shut down. It still works, and is now listed in the deprecated section of the beacon node and validator client help. [PR]
  • Deprecate the --terminal-total-difficulty-override, --terminal-block-hash-override and --terminal-block-hash-epoch-override flags, as the merge is complete. They still work, and are now listed in the deprecated section of the help. [PR]
Removed
  • proto/prysm/v1alpha1/beacon_state.proto and the unused CheckPtInfo message. [PR]
  • Removed the tools/beacon-fuzz state map generator. It only existed to package beacon states for the Fuzzit service, which shut down in 2020, and nothing in the repository used it. [PR]
  • Removed the tools/unencrypted-keys-gen and tools/interop/convert-keys interop key tools. The validator no longer accepts the unencrypted keys JSON they produced, and the interop keymanager was removed in #​17164. [PR]
Fixed
  • REST validator client: no longer drop an attestation or a sync committee message when no beacon node answers before the attestation due time. A slow answer is now used instead of no answer at all. [PR]
  • Do not treat a missing signing root as the all-zero signing root when converting a minimal slashing protection database into a complete one, or when exporting proposal history. #​17516. [PR]
  • Do not blacklist a public key when an EIP-3076 interchange file lists the same attestation twice without a signing root, or when the same file is imported twice. #​17516. [PR]
  • Apply the MAXIMUM_GOSSIP_CLOCK_DISPARITY allowance to Gloas payload attestation, bid, and proposer preferences gossip slot checks. [PR]
  • Fix GetAttestationData returning the pre-import head root with the post-import payload bit when a request arrives during block import. [PR]
  • Validator client: at the first slot of an epoch, the duties of the slot used the deadline of the last slot of the epoch instead of the deadline of the slot. [PR]
  • Checkpoint sync no longer makes justified == finalized. [PR]
  • SaveOrigin now verifies that the origin block matches the origin state's latest_block_header rather than trusting the pair. [PR]
  • Trim whitespace when parsing Accept header media types for SSZ responses, so types listed after a comma and space (e.g. application/json;q=0, application/octet-stream) are no longer ignored. [PR]
  • Update execution payload envelopes by-range request handling. [PR]
  • Settle the builder payment before processing the parent execution requests. [PR]
  • Backfill no longer gets stuck on a Gloas block whose payload is empty: data availability is not checked for columns that were never downloaded. [PR]
  • Backfill no longer gets stuck when the last block of a batch is a Gloas block with an empty payload: whether its payload was revealed is now decided once its child is known. [PR]
  • Clear every pending builder payment of a slashed proposer from both slashing paths. [PR]
  • Stop emitting a chain_reorg event, log and metrics when a post-Gloas head is re-saved for the same block root because its payload status flipped between empty and full. [PR]
  • Use the target epoch's shuffling dependent root to decide whether the head state can validate an attestation, so previous-epoch and next-epoch attestations on a compatible branch no longer fall back to state regeneration. [PR]
  • Read the head state under the same lock as the head root in GetAttestationData. [PR]
  • Build on the empty payload when the PTC majority votes the parent's blob data unavailable. [PR]
  • Update data column sidecar gossip validation. [PR]
  • Update proposer_preferences gossip validation. [PR]
  • Update RPC request size checks. [PR]
  • Fix existing data column files not being indexed by the warm cache on Windows. [PR]
  • Update partial data column header validation. [PR]
  • Subtract same-payload withdrawals from the builder balance in the builders sweep. [PR]
  • Enforce LMD/FFG vote consistency for block and pool attestations before applying them to fork choice. [PR]
  • Initial sync now marks a Gloas block's payload as present only after it verifies that block's payload envelope. A batch with an envelope that matches none of its blocks is rejected. [PR]
  • REST validator client: pad or truncate the block graffiti to 32 bytes. Before, graffiti from proposer settings or the keymanager API that was not 32 bytes caused a 400 and a missed proposal. [PR]
  • Reject graffiti longer than 32 bytes in the keymanager API POST /eth/v1/validator/{pubkey}/graffiti with status 400. Before, the value was stored and then truncated or rejected at proposal time. [PR]
  • REST validator client: request sync committee duties for the epoch of slot + 1, so that the last slot of a sync committee period uses the next committee, the same as gRPC. [PR]
  • Validator client over the REST API now signs voluntary exits with the Capella fork version after Deneb (EIP-7044). Before, the beacon node rejected these exits with "signature did not verify". [PR]

v7.2.1

Compare Source

This release focuses on Gloas builder configuration in the validator client. If you are testing Gloas builders, update to this release so your builder auth configuration is read correctly: proposer settings files now take builder auth_data and builder_pubkeys as 0x-hex, matching the keymanager API, instead of base64.

Partial data columns are now on by default: data columns are gossiped at the cell level, so nodes can send and receive the cells they have instead of whole columns. To fall back to full column gossip, use --disable-partial-data-columns. --partial-data-columns is deprecated and has no effect.

This release also adds the Sepolia GAS_LIMIT_SCHEDULE, so validators default to a 200M gas limit from the Sepolia Gloas fork (epoch 353024, October 6, 2026, 13:53:36 UTC). This needs no action. To use a different gas limit, set gas_limit in your proposer settings, set it through the keymanager API, or use --suggested-gas-limit.

Release highlights:

  • Partial data columns (cell-level PeerDAS dissemination) are on by default. --disable-partial-data-columns turns them off. --partial-data-columns is deprecated and has no effect. [PR]
  • Proposer settings files take builder auth_data and builder_pubkeys (renamed from pubkeys) as 0x-hex instead of base64, matching the keymanager API. Review your builder settings before updating. [PR]
  • The default builder auth_data is derived from the builder URL's hostname instead of the full URL, per builder-specs#168. Builder URLs without a hostname are rejected. [PR]
  • New validator client flags --builder-urls, --builder-min-bid, --builder-boost-factor and --builder-max-execution-payment configure Gloas builders for all validators. Builder auth data can be appended to a URL as a #&#8203;0x... hex fragment. [PR]
  • --builder-bid-timeout on the beacon node sets how long to wait for builder bids. The default wait is now 600ms, up from 300ms. [PR]
  • Sepolia GAS_LIMIT_SCHEDULE: 200M gas limit at epoch 353024. --suggested-gas-limit now also applies from Gloas on, where it overrides the schedule. [PR] [PR]
  • Gloas fixes, including block production for the first Gloas block and historical state replay when hierarchical diffs are missing. See the Fixed section below.
Added
  • Added support for Gloas Partial Columns. [PR]
  • Add --builder-bid-timeout flag to the beacon node, making the time spent waiting for execution payload bids from builder relays configurable. Only effective from the Gloas fork onward. [PR]
  • Gloas-compatible light-client proof generation for progressive SSZ containers. [PR]
  • Validator client flags --builder-urls, --builder-min-bid, --builder-boost-factor and --builder-max-execution-payment to configure Gloas builders for all validators from the command line. Builder auth data can be appended to a URL as a #&#8203;0x... hex fragment. Before Gloas a non-empty --builder-urls list also enables builder registration. Default builder settings, from these flags or a settings file, apply per run; a restart without them does not carry them over from the validator DB. [PR]
  • Gloas: reject proposer preferences whose dependent block is after the shuffling dependent slot. [PR]
  • Add Gloas light-client protobuf and SSZ types, wrappers, and fork-specific branch accessors. [PR]
  • Sepolia GAS_LIMIT_SCHEDULE: 200M gas limit at epoch 353024 (Gloas fork), matching eth-clients/sepolia. [PR]
Changed
  • Derive the default builder auth_data from the builder URL's hostname instead of the full URL bytes, per builder-specs#168. [PR]
  • Reject builder URLs without a hostname (https://:8080) or with a non-ASCII one. Internationalized hostnames must be punycode-encoded. [PR]
  • Marshal states directly behind their DB version key when saving, removing one full copy of the state bytes per save. [PR]
  • Return 400 instead of 500 from GET /eth/v1/beacon/blinded_blocks/{block_id} for Gloas blocks, and from GET /eth/v3/validator/blocks/{slot} for Gloas slots, per beacon-APIs#651. [PR]
  • Increase the default Gloas builder bid wait from 300ms to 600ms. [PR]
  • GetFeeRecipientByPubKey now reads the proposer preferences cache instead of the beacon DB. PrepareBeaconProposer has written to that cache rather than the DB for some time, so the endpoint returned the default fee recipient on any node that never ran an older Prysm. [PR]
  • Cell-level dissemination for PeerDAS data columns (partial data columns) is now enabled by default. Use --disable-partial-data-columns to fall back to full column gossip. [PR]
  • Deprecated --partial-data-columns; partial data columns are now the default, so the flag is a no-op. [PR]
  • Reuse cached level-zero state-diff snapshots when their slot matches the requested snapshot, avoiding a database read. [PR]
  • --suggested-gas-limit sets the default gas limit from the Gloas fork onward as well, where it overrides the network gas limit schedule (EIP-8261); remove the flag to follow the schedule. The validator client warns at startup when the flag is set on a network with Gloas scheduled, and when the value exceeds the highest scheduled gas limit. Like the builder defaults, the default gas limit applies per run. [PR]
  • Made state diff cache anchors slot aware, so it's possible to identify slot missmatch before decompressing. [PR]
  • Updated go-libp2p-pubsub to v0.18.0. [PR]
  • Avoid rescanning appended values in multi-value slices by using cached per-object lengths. [PR]
  • Skip payloads the execution client no longer has when serving Gloas execution payload envelopes by root instead of failing the whole request. [PR]
  • Use EL validation instead of forkchoice for optimistic status of incoming payload. [PR]
  • Refreshed .well-known/security.txt: the security contact is now prysm@offchainlabs.com, two stale PGP keys were removed, and an Expires field was added as required by RFC 9116. [PR]
  • Check required hierarchical diff records before loading full snapshots to avoid repeated large decodes while searching for available historical states. [PR]
Deprecated
  • --disable-registration-cache is deprecated and now has no effect. The validator registration cache is always used; registrations are no longer persisted to the beacon DB. [PR]
Removed
  • Removed the unreachable validator registration and fee recipient beacon DB paths: RegistrationByValidatorID, SaveRegistrationsByValidatorIDs, FeeRecipientByValidatorID, SaveFeeRecipientsByValidatorIDs, and the registration and fee-recipient buckets. [PR]
  • Removed the tools/eth1exporter address balance Prometheus exporter. It was unrelated to beacon chain eth1data handling, had no build, CI, or deployment wiring outside a manual Bazel image target, and defaulted to the retired Holesky endpoint. [PR]
Fixed
  • Join every data column topic before broadcasting a proposal's columns, so partial columns on topics the proposer is not subscribed to are actually sent instead of silently reaching no peers. [PR]
  • Use PROPOSER_REORG_CUTOFF_BPS instead of a hardcoded 2s cutoff when deciding to orphan a late head. [PR]
  • Serve the chain tip's execution payload envelope in ExecutionPayloadEnvelopesByRange responses when fork choice selects the tip's full payload variant, per the PAYLOAD_STATUS_FULL head condition of consensus-specs#5608. [PR]
  • The validator client REST server now returns 404 for unknown paths (including unknown /api/* paths) instead of an empty 200 when the web UI is disabled. [PR]
  • Return 204 No Content from keymanager DELETE /eth/v1/validator/{pubkey}/graffiti on success, as required by the keymanager API spec. [PR]
  • Initialize the finalized dependent root from the startup anchor block's parent root. [PR]
  • gRPC GetDuties and GetDutiesV2 read dependent roots from the state used for duties, including history before the checkpoint-sync anchor, without forkchoice lookups. [PR]
  • Fix Windows cross-compilation with Bazel by passing target platform settings to SSZ code generation. [PR]
  • --max-health-checks now exits the validator on the configured number of consecutive failed health checks instead of one check later. Setting --max-health-checks=1 exits on the first failed check. [PR]
  • Accept late previous-fork attestations on the current fork's attestation subnet topic. [PR]
  • Reject Builder-API bids whose block hash equals the parent block hash. [PR]
  • Apply block-carried PTC votes to every seat the voter holds and skip votes for a block from an earlier slot. [PR]
  • Reject Gloas data column sidecars by root whose slot does not match the block. [PR]
  • Reject PTC lookups and payload attestations for pre-Gloas slots at the fork epoch. [PR]
  • Enforce execution request and payload withdrawal count limits when validating execution payload envelopes. [PR]
  • Synchronize proposer settings snapshot reads with runtime updates in the validator client. [PR]
  • Reject Gloas blocks on gossip whose bid does not build on the parent's execution head. [PR]
  • REST validator client with several beacon nodes: prefer a beacon node that saw the payload when producing a payload attestation. [PR]
  • REST validator client with several beacon nodes: a lagging beacon node no longer downgrades the tracked head from full to empty. [PR]
  • Proposer settings files now take builder auth_data and builder_pubkeys (renamed from pubkeys) as 0x-hex instead of base64, matching the keymanager API. [PR]
  • Keymanager API GET /eth/v1/validator/{pubkey}/gas_limit now returns the scheduled network gas limit from Gloas on when the validator has no gas limit of its own, matching what the validator client signs. [PR]
  • Do not use background context in upgradeToGloas. [PR]
  • Fix block production for the first Gloas block when its payload ID is not cached. [PR]
  • Replay historical states from an earlier available state when required hierarchical diffs or snapshots are missing, without treating corrupt records as missing or skipping required ancestors. [PR]
  • Ignore cached anchors for empty hierarchical diff levels without skipping required ancestor diffs. [PR]

v7.2.0

[Compare Source](https://redirect.github.com/prysmaticlabs/pr

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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 was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a team as a code owner October 6, 2026 18:35
@renovate
renovate Bot force-pushed the renovate/consensus-layer-client-updates branch 2 times, most recently from f41c770 to 2d87404 Compare October 12, 2026 14:28
@renovate
renovate Bot force-pushed the renovate/consensus-layer-client-updates branch 6 times, most recently from d733329 to a190a72 Compare October 22, 2026 22:38
@renovate
renovate Bot force-pushed the renovate/consensus-layer-client-updates branch from a190a72 to 33cdfd9 Compare October 23, 2026 04:43
@renovate
renovate Bot force-pushed the renovate/consensus-layer-client-updates branch from 33cdfd9 to 6b90de8 Compare October 27, 2026 04:30
@sonarqubecloud

Copy link
Copy Markdown

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