v7.2.1 - 2026-10-05
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-columnsturns them off.--partial-data-columnsis deprecated and has no effect. [PR] - Proposer settings files take builder
auth_dataandbuilder_pubkeys(renamed frompubkeys) as 0x-hex instead of base64, matching the keymanager API. Review your builder settings before updating. [PR] - The default builder
auth_datais 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-factorand--builder-max-execution-paymentconfigure Gloas builders for all validators. Builder auth data can be appended to a URL as a#0x...hex fragment. [PR] --builder-bid-timeouton 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-limitnow 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-timeoutflag 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-factorand--builder-max-execution-paymentto configure Gloas builders for all validators from the command line. Builder auth data can be appended to a URL as a#0x...hex fragment. Before Gloas a non-empty--builder-urlslist 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_datafrom 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 fromGET /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]
GetFeeRecipientByPubKeynow reads the proposer preferences cache instead of the beacon DB.PrepareBeaconProposerhas 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-columnsto 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-limitsets 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-pubsubtov0.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 anExpiresfield 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-cacheis 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 theregistrationandfee-recipientbuckets. [PR] - Removed the
tools/eth1exporteraddress 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_BPSinstead of a hardcoded 2s cutoff when deciding to orphan a late head. [PR] - Serve the chain tip's execution payload envelope in
ExecutionPayloadEnvelopesByRangeresponses when fork choice selects the tip's full payload variant, per thePAYLOAD_STATUS_FULLhead 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 Contentfrom keymanagerDELETE /eth/v1/validator/{pubkey}/graffition success, as required by the keymanager API spec. [PR] - Initialize the finalized dependent root from the startup anchor block's parent root. [PR]
- gRPC
GetDutiesandGetDutiesV2read 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-checksnow exits the validator on the configured number of consecutive failed health checks instead of one check later. Setting--max-health-checks=1exits 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_dataandbuilder_pubkeys(renamed frompubkeys) as 0x-hex instead of base64, matching the keymanager API. [PR] - Keymanager API
GET /eth/v1/validator/{pubkey}/gas_limitnow 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]