Releases: OffchainLabs/prysm
v7.1.2-rc.0
v7.1.2-rc.0 - 2025-12-22
Added
primitives.BuilderIndex: SSZuint64wrapper for builder registry indices. [PR]
Changed
- the /eth/v2/beacon/pool/attestations and /eth/v1/beacon/pool/sync_committees now returns a 503 error if the node is still syncing, the rest api is also working in a similar process to gRPC broadcasting immediately now. [PR]
validateDataColumn: Remove error logs. [PR]- Pending aggregates: When multiple aggregated attestations only differing by the aggregator index are in the pending queue, only process one of them. [PR]
Fixed
v7.1.1
v7.1.1 - 2025-12-18
Release highlights:
- Fixed potential deadlock scenario in data column batch verification
- Improved processing and metrics for cells and proofs
We are aware of an issue where Prysm struggles to sync from an out of sync state. We will have another release before the end of the year to address this issue.
Our postmortem document from the December 4th mainnet issue has been published on our documentation site
Added
- Track the dependent root of the latest finalized checkpoint in forkchoice. [PR]
- Proposal design document to implement graffiti. Currently it is empty by default and the idea is to have it of the form GE168dPR63af. [PR]
- Add support for detecting and logging per address reachability via libp2p AutoNAT v2. [PR]
- Static analyzer that ensures each
httputil.HandleErrorcall is followed by areturnstatement. [PR] - Prometheus histogram
cells_and_proofs_from_structured_computation_millisecondsto track computation time for cells and proofs from structured blobs. [PR] - Prometheus histogram
get_blobs_v2_latency_millisecondsto track RPC latency forgetBlobsV2calls to the execution layer. [PR]
Changed
- Optimise migratetocold by not doing brute force for loop. [PR]
- e2e sync committee evaluator now skips the first slot after startup, we already skip the fork epoch for checks here, this skip only applies on startup, due to altair always from 0 and validators need to warm up. [PR]
- Run
ComputeCellsAndProofsFromFlatin parallel to improve performance when computing cells and proofs. [PR] - Run
ComputeCellsAndProofsFromStructuredin parallel to improve performance when computing cells and proofs. [PR]
Removed
- Unnecessary copy is removed from Eth1DataHasEnoughSupport. [PR]
Fixed
- Incorrect constructor return type #16084. [PR]
- Fixed possible race when validating two attestations at the same time. [PR]
- Fix missing return after version header check in SubmitAttesterSlashingsV2. [PR]
- Fix deadlock in data column gossip KZG batch verification when a caller times out preventing result delivery. [PR]
- Fixed replay state issue in rest api caused by attester and sync committee duties endpoints. [PR]
- Do not error when committee has been computed correctly but updating the cache failed. [PR]
- Prevent blocked sends to the KZG batch verifier when the caller context is already canceled, avoiding useless queueing and potential hangs. [PR]
v7.1.0
v7.1.0 - 2025-12-10
This release includes several key features/fixes. If you are running v7.0.0 then you should update to v7.0.1 or later and remove the flag --disable-last-epoch-targets.
Release highlights:
- Backfill is now supported in Fulu. Backfill from checkpoint sync now supports data columns. Run with
--enable-backfillwhen using checkpoint sync. - A new node configuration to custody enough data columns to reconstruct blobs. Use flag
--semi-supernodeto custody at least 50% of the data columns. - Critical fixes in attestation processing.
A post mortem doc with full details on the mainnet attestation processing issue from December 4th is expected in the coming days.
Added
- add fulu support to light client processing. [PR]
- Record data column gossip KZG batch verification latency in both the pooled worker and fallback paths so the
beacon_kzg_verification_data_column_batch_millisecondshistogram reflects gossip traffic, annotated withpathlabels to distinguish the sources. [PR] - Implement Gloas state. [PR]
- Add initial configs for the state-diff feature. [PR]
- Add kv functions for the state-diff feature. [PR]
- Add supported version for fork versions. [PR]
- prometheus metric
gossip_attestation_verification_millisecondsto track attestation gossip topic validation latency. [PR] - Integrate state-diff into
State(). [PR] - Implement Gloas fork support in consensus-types/blocks with factory methods, getters, setters, and proto handling. [PR]
- Integrate state-diff into
HasState(). [PR] - Added
--semi-supernodeflag to custody half of a super node's datacolumn requirements but allowing for reconstruction for blob retrieval. [PR] - Data column backfill. [PR]
- Backfill metrics for columns: backfill_data_column_sidecar_downloaded, backfill_data_column_sidecar_downloaded_bytes, backfill_batch_columns_download_ms, backfill_batch_columns_verify_ms. [PR]
- prometheus summary
gossip_data_column_sidecar_arrival_millisecondsto track data column sidecar arrival latency since slot start. [PR]
Changed
- Improve readability in slashing import and remove duplicated code. [PR]
- Use dependent root instead of target when possible. [PR]
- Changed
--subscribe-all-data-subnetsflag to--supernodeand aliased--subscribe-all-data-subnetsfor existing users. [PR] - Use explicit slot component timing configs. [PR]
- Downgraded log level from INFO to DEBUG on PrepareBeaconProposer updated fee recipients. [PR]
- Change the logging behaviour of Updated fee recipients to only log count of validators at Debug level and all validator indices at Trace level. [PR]
- Stop emitting payload attribute events during late block handling when we are not proposing the next slot. [PR]
- Initialize the
ExecutionRequestsfield in gossip block map. [PR] - Avoid redundant WithHttpEndpoint when JWT is provided. [PR]
- Removed dead slot parameter from blobCacheEntry.filter. [PR]
- Added log prefix to the
genesispackage. [PR] - Added log prefix to the
paramspackage. [PR] WithGenesisValidatorsRoot: Use camelCase for log field param. [PR]- Move
Origin checkpoint found in dbfrom WARN to INFO, since it is the expected behaviour. [PR] - backfill metrics that changed name and/or histogram buckets: backfill_batch_time_verify -> backfill_batch_verify_ms, backfill_batch_time_waiting -> backfill_batch_waiting_ms, backfill_batch_time_roundtrip -> backfill_batch_roundtrip_ms, backfill_blocks_bytes_downloaded -> backfill_blocks_downloaded_bytes, backfill_batch_time_verify -> backfill_batch_verify_ms, backfill_batch_blocks_time_download -> backfill_batch_blocks_download_ms, backfill_batch_blobs_time_download -> backfill_batch_blobs_download_ms, backfill_blobs_bytes_downloaded -> backfill_blocks_downloaded_bytes. [PR]
- Move the "Not enough connected peers" (for a given subnet) from WARN to DEBUG. [PR]
blobsDataFromStoredDataColumns: Ask the use to use the--supernodeflag and shorten the error mesage. [PR]- Introduced flag
--ignore-unviable-attestations(replaces and deprecates--disable-last-epoch-targets) to drop attestations whose target state is not viable; default remains to process them unless explicitly enabled. [PR]
Removed
- Remove validator cross-client from end-to-end tests. [PR]
NUMBER_OF_COLUMNSconfiguration (not in the specification any more, replaced by a preset). [PR]MAX_CELLS_IN_EXTENDED_MATRIXconfiguration (not in the specification any more). [PR]
Fixed
- Nil check for block if it doesn't exist in the DB in fetchOriginSidecars. [PR]
- Fix proposals progress bar count #16020. [PR]
- Move
BlockGossipReceivedevent to the end of gossip validation. [PR] - Fix state diff repetitive anchor slot bug. [PR]
- Check the JWT secret length is exactly 256 bits (32 bytes) as per Engine API specification. [PR]
- http_error_count now matches the other cases by listing the endpoint name rather than the actual URL requested. This improves metrics cardinality. [PR]
- Fix array out of bounds in static analyzer. [PR]
- fixes E2E tests to be able to start from Electra genesis fork or future forks. [PR]
- Use head state to validate attestations for old blocks if they are compatible. [PR]
v7.0.1
v7.0.1 - 2025-12-08
This patch release contains 4 cherry-picked changes to address the mainnet attestation processing issue from 2025-12-04. Operators are encouraged to update to this release as soon as practical. As of this release, the feature flag --disable-last-epoch-targets has been deprecated and can be safely removed from your node configuration.
A post mortem doc with full details is expected to be published later this week.
Changed
- Move the "Not enough connected peers" (for a given subnet) from WARN to DEBUG. [PR]
- Use dependent root instead of target when possible. [PR]
- Introduced flag
--ignore-unviable-attestations(replaces and deprecates--disable-last-epoch-targets) to drop attestations whose target state is not viable; default remains to process them unless explicitly enabled. [PR]
Fixed
- Use head state to validate attestations for old blocks if they are compatible. [PR]
v7.0.0
v7.0.0 - 2025-11-10
This is our initial mainnet release for the Ethereum mainnet Fulu fork on December 3rd, 2025. All operators MUST update to v7.0.0 or later release prior to the fulu fork epoch 411392. See the Ethereum Foundation blog post for more information on Fulu.
Other than the mainnet fulu fork schedule, there are a few callouts in this release:
by-epochblob storage format is the default for new installations. Users that haven't migrated will see a warning to migrate to the new format. Existing deployments may set--blob-storage-layout=by-epochto perform the migration.- Several deprecated flags have been deleted! Please review the "removed" section of this changelog carefully. If you are referencing a removed flag, Prysm will not start! All of these flags had no effect for at least one release.
- Several deprecated API endpoints have been deleted. Please review the "removed" section of this changelog carefully.
- Backfill is not supported in Fulu. This is expected to be fixed in the next release and should be delivered prior to the mainnet activation fork.
- The builder default gas limit is raised from
45000000(45 MGas) to60000000(60 MGas). - Several bug fixes and improvements.
Added
- Allow custom headers in validator client HTTP requests. [PR]
- Metric to track data columns recovered from execution layer. [PR]
- Metrics: Add count of peers per direction and type (inbound/outbound), (TCP/QUIC). [PR]
p2p_subscribed_topic_peer_total: Reset to avoid dangling values. [PR]- Add
p2p_minimum_peers_per_subnetmetric. [PR] - Added GeneralizedIndicesFromPath function to calculate the GIs for a given sszInfo object and a PathElement. [PR]
- Add Gloas protobuf definitions with spec tests and SSZ serialization support. [PR]
- Fulu fork epoch for mainnet configurations set for December 3, 2025, 09:49:11pm UTC. [PR]
- Added BPO schedules for December 9, 2025, 02:21:11pm UTC and January 7, 2026, 01:01:11am UTC. [PR]
Changed
- Updated consensus spec tests to v1.6.0-beta.1 with new hashes and URL template. [PR]
- Use the `by-epoch' blob storage layout by default and log a warning to users who continue to use the flat layout, encouraging them to switch. [PR]
- Update go-netroute to
v0.3.0. [PR] - Introduced Path type for SSZ-QL queries and updated PathElement (removed Length field, kept Index) enforcing that len queries are terminal (at most one per path). [PR]
- Changed length query syntax from
block.payload.len(transactions)tolen(block.payload.transactions). [PR] - Update
go-netroutetov0.4.0. [PR] - Updated consensus spec tests to v1.6.0-beta.2. [PR]
- Updated go bitfield from prysmaticlabs to offchainlabs. [PR]
- Bump builder default gas limit from
45000000(45 MGas) to60000000(60 MGas). [PR] - Use head state for block pubsub validation when possible. [PR]
- updated consensus spec to 1.6.0 from 1.6.0-beta.2. [PR]
- Upgrade Prysm v6 to v7. [PR]
- Use head state readonly when possible to validate data column sidecars. [PR]
Removed
- log mentioning removed flag
--show-deposit-data. [PR] - Remove Beacon API endpoints that were deprecated in Electra:
GET /eth/v1/beacon/deposit_snapshot,GET /eth/v1/beacon/blocks/{block_id}/attestations,GET /eth/v1/beacon/pool/attestations,POST /eth/v1/beacon/pool/attestations,GET /eth/v1/beacon/pool/attester_slashings,POST /eth/v1/beacon/pool/attester_slashings,GET /eth/v1/validator/aggregate_attestation,POST /eth/v1/validator/aggregate_and_proofs,POST /eth/v1/beacon/blocks,POST /eth/v1/beacon/blinded_blocks,GET /eth/v1/builder/states/{state_id}/expected_withdrawals. [PR] - Deprecated flag
--enable-optional-engine-methodshas been removed. [PR] - Deprecated flag
--disable-build-block-parallelhas been removed. [PR] - Deprecated flag
--disable-reorg-late-blockshas been removed. [PR] - Deprecated flag
--disable-optional-engine-methodshas been removed. [PR] - Deprecated flag
--disable-aggregate-parallelhas been removed. [PR] - Deprecated flag
--enable-eip-4881has been removed. [PR] - Deprecated flag
--disable-eip-4881has been removed. [PR] - Deprecated flag
--enable-verbose-sig-verificationhas been removed. [PR] - Deprecated flag
--enable-debug-rpc-endpointshas been removed. [PR] - Deprecated flag
--beacon-rpc-gateway-providerhas been removed. [PR] - Deprecated flag
--disable-grpc-gatewayhas been removed. [PR] - Deprecated flag
--enable-experimental-statehas been removed. [PR] - Deprecated flag
--enable-committee-aware-packinghas been removed. [PR] - Deprecated flag
--interop-genesis-timehas been removed. [PR] - Deprecated flag
--interop-num-validatorshas been removed (from beacon-chain only; still available in validator client). [PR] - Deprecated flag
--enable-quichas been removed. [PR] - Deprecated flag
--attest-timelyhas been removed. [PR] - Deprecated flag
--disable-experimental-statehas been removed. [PR] - Deprecated flag
--p2p-metadatahas been removed. [PR]
Fixed
- Remove
Reading static P2P private key from a file.log if Fulu is enabled. [PR] blobSidecarByRootRPCHandler: Do not serve a sidecar if the corresponding block is not available. [PR]dataColumnSidecarByRootRPCHandler: Do not serve a sidecar if the corresponding block is not available. [PR]- Fix incorrect version used when sending attestation version in Fulu. [PR]
- Changed the behavior of topic subscriptions such that only topics that require the active validator count will compute that value. [PR]
- Added a Mutex to the computation of active validator count during topic subscription to avoid a race condition where multiple goroutines are computing the same work. [PR]
RODataColumnsVerifier.ValidProposerSignature: Ensure the expensive signature verification is only performed once for concurrent requests for the same signature data. [PR]- use filepath for path operations (clean, join, etc.) to ensure correct behavior on Windows. [PR]
- Fix #15969: Handle addition overflow in
/eth/v1/beacon/rewards/attestations/{epoch}. [PR] SidecarProposerExpected: Add the slot in the single flight key. [PR]- Ensures the rate limitation is respected for by root blob and data column sidecars requests. [PR]
- Use head only if its compatible with target for attestation validation. [PR]
- Backfill disabled if checkpoint sync origin is after fulu fork due to lack of DataColumnSidecar support in backfill. To track the availability of fulu-compatible backfill please watch #15982. [PR]
SidecarProposerExpected: Use the correct value of proposer index in the singleflight group. [PR]
v6.1.4
v6.1.4 - 2025-10-28
This release includes a bug fix affecting block proposals in rare cases, along with an important update for Windows users running post-Fusaka fork.
Added
- SSZ-QL: Add endpoints for
BeaconState/BeaconBlock. [PR] - Add native state diff type and marshalling functions. [PR]
- Update the earliest available slot after pruning operations in beacon chain database pruner. This ensures the P2P layer accurately knows which historical data is available after pruning, preventing nodes from advertising or attempting to serve data that has been pruned. [PR]
Fixed
- Correctly advertise (in ENR and beacon API) attestation subnets when using
--subscribe-all-subnets. [PR] randomPeer: Return if the context is cancelled when waiting for peers. [PR]- Improve error message when the byte count read from disk when reading a data column sidecars is lower than expected. (Mostly, because the file is truncated.). [PR]
- Delete the genesis state file when --clear-db / --force-clear-db is specified. [PR]
- Fix sync committee subscription to use subnet indices instead of committee indices. [PR]
- Fixed metadata extraction on Windows by correctly splitting file paths. [PR]
VerifyDataColumnsSidecarKZGProofs: Check if sizes match. [PR]- Fix recoverStateSummary to persist state summaries in stateSummaryBucket instead of stateBucket (#15896). [PR]
updateCustodyInfoInDB: UseNumberOfCustodyGroupsinstead ofNumberOfColumns. [PR]- Sync committee uses correct state to calculate position. [PR]
v6.1.3
v6.1.3 - 2025-10-21
This release has several important beacon API and p2p fixes.
Added
- Add Grandine to P2P known agents. (Useful for metrics). [PR]
- Delegate sszInfo HashTreeRoot to FastSSZ-generated implementations via SSZObject, enabling roots calculation for generated types while avoiding duplicate logic. [PR]
- SSZ-QL: Use
fastssz'sSizeSSZmethod for calculating the size ofContainertype. [PR] - SSZ-QL: Access n-th element in
List/Vector. [PR]
Changed
- Do not verify block data when calculating rewards. [PR]
- Process pending attestations after pending blocks are cleared. [PR]
- updated web3signer to 25.9.1. [PR]
- Gracefully handle submit blind block returning 502 errors. [PR]
- Improve returning individual message errors from Beacon API. [PR]
- SSZ-QL: Clarify
Sizemethod with more sophisticatedSSZTypes. [PR]
Fixed
- Use service context and continue on slasher attestation errors (#15803). [PR]
- block event probably shouldn't be sent on certain block processing failures, now sends only on successing processing Block is NON-CANONICAL, Block IS CANONICAL but getFCUArgs FAILS, and Full success. [PR]
- Fixed web3signer e2e, issues caused due to a regression on old fork support. [PR]
- Do not mark blocks as invalid from ErrNotDescendantOfFinalized. [PR]
- Fixed #15812: Gossip attestation validation incorrectly rejecting attestations that arrive before their referenced blocks. Previously, attestations were saved to the pending queue but immediately rejected by forkchoice validation, causing "not descendant of finalized checkpoint" errors. Now attestations for missing blocks return
ValidationIgnorewithout error, allowing them to be properly processed when their blocks arrive. This eliminates false positive rejections and prevents potential incorrect peer downscoring during network congestion. [PR] - Mark the block as invalid if it has an invalid signature. [PR]
- Display error messages from the server verbatim when they are not encoded as
application/json. [PR] HasAtLeastOneIndex: Check the index is not too high. [PR]- Fix
/eth/v1/beacon/blob_sidecars/beacon API is the fulu fork epoch is set to the far future epoch. [PR] dataColumnSidecarsByRangeRPCHandler: Gracefully close the stream if no data to return. [PR]VerifyDataColumnSidecar: Check if there is no too many commitments. [PR]WithDataColumnRetentionEpochs: UsedataColumnRetentionEpochinstead ofblobColumnRetentionEpoch. [PR]- Mark epoch transition correctly on new head events. [PR]
- reject committee index >= committees_per_slot in unaggregated attestation validation. [PR]
- Decreased attestation gossip validation batch deadline to 5ms. [PR]
v6.1.2
v6.1.2 - 2025-10-10
This release has several important fixes to improve Prysm's peering, stability, and attestation inclusion on mainnet and all testnets. All node operators are encouraged to update to this release as soon as practical for the best mainnet performance.
Added
- Added a 1 minute timeout on PruneAttestationOnEpoch operations to prevent very large bolt transactions. [PR]
- Added expected delay before broadcasting light client p2p messages. [PR]
Changed
- Replaced reflect.TypeOf with reflect.TypeFor. [PR]
- Bazel builds with
--config=releasenow properly apply--strip=alwaysto strip debug symbols from the release assets. [PR] - Add sources for compute_fork_digest to specrefs. [PR]
- Aggregate logs when broadcasting data column sidecars (one per root instead of one per sidecar). [PR]
c-kzg-4844: Update fromv2.1.1tov2.1.5. [PR]- Process pending attestations as soon as the block arrives. [PR]
- Compare received LC messages over gossipsub with locally computed ones before forwarding. Also no longer save updates. [PR]
- Optimize pending attestation processing by adding batching. [PR]
Removed
- removed unused configs and hides prysm specific configs from
/eth/v1/config/specendpoint. [PR]
Fixed
- SSZ-QL: Support nested
Listtype (e.g.,ExecutionPayload.Transactions). [PR] - Fixing Unsupported config field kind; value forwarded verbatim errors for type string. [PR]
- fix /eth/v1/config/spec endpoint to properly skip omitted values. [PR]
- Fix ProduceSyncCommitteeContribution not returning error when committee index is out of range. [PR]
- adding in improvements to getduties v2, replaces helpers.PrecomputeCommittees() ( exepensive ) with CommitteeAssignments. [PR]
- Avoid unnecessary calls to
ExitInformation(). [PR] inclusionProofKey: Include the commitments in the key. [PR]- Do not reject peers if they have a mismatched version|digest when the next for epoch is FAR_FUTURE_EPOCH. [PR]
- Don't include entries in the fork schedule if their epoch is set to far future epoch. Avoids reporting next_fork_version == . [PR]
- Wait for custody info to be initialized before querying them. [PR]
- fixes level=error msg="Could not clean up dirty states" error="OriginBlockRoot: not found in db" prefix=state-gen error when starting in kurtosis. [PR]
- Correctly clear disconnected peers from
connected_libp2p_peersandconnected_libp2p_peers_average_scores. [PR] buildStatusFromStream: RespondstatusV2only if Fulu is enabled. [PR]- Send our real earliest available slot when sending a Status request post Fulu instead of
0. [PR] - switch to built-in min/max. [PR]
findPeersWithSubnets: If the filter function returns an error for a given peer, log an error and skip the peer instead of aborting the whole function. [PR]computeIndicesByRootByPeer: If the loop returns an error for a given peer, log an error and skip the peer instead of aborting the whole function. [PR]- Fixed issue #15738 where separate goroutines assume sole responsibility for topic registration. [PR]
v6.1.1
v6.1.1
This release is a reissue of v6.1.0 from the same commit. The only difference is that this release has debug symbols stripped from the release binaries. We built these release assets with --strip=always. These release assets have been tested to work in a windows VM (resolves #15760). See #15774 for more information.
⬇️ v6.1.0 changelog below ⬇️
v6.1.0 - 2025-09-26
Important note: All operators should upgrade as soon as possible to v6.0.5 OR v6.1.0 to receive a critical stability patch. v6.0.5 only includes the stability fix on top of v6.0.4, whereas v6.1.0 includes a much larger set of changes, detailed below.
This release has support for Fusaka testnets as well as many mainnet improvements. Testnet operators are required to update prior to the testnet fork date. See PR #15721.
Mainnet operators are encouraged to update per their regular update cadence.
v6.1.0 raises the default builder gas limit[1] from 36M to 45M, includes a memory utilization optimization that should benefit all beacon nodes, along with other improvements and bugfixes. Also included are incremental light client support components and fusaka features waiting to be activated. This will be the last release in the v6 cycle before the mainnet fusaka release, which will be tagged v7.0.0.
Noteworthy improvements, changes and bugfixes:
- The
--disable-experimental-statebeacon-node flag has been removed, marking the full graduation of the Copy-on-write design for BeaconState fields, which reduces the memory overhead of keeping multiple BeaconStates in RAM for block processing. Congrats @rkapka! - The behavior set by the
--attest_timelyflag is now on by default, with the flag itself deprecated. - GetDutiesV2 introduced, lowering duty request latency and beacon-node load. Multiple other improvements and bugfixes have been made to harden the validator run loop.
- New validator flag
--max-health-checksconfigures a validator to switch to a fallback beacon node after the given number of health check failures. - Improvements to rest-mode validator, defaulting to SSZ where available and adding SSZ support to more Beacon API endpoints.
- Beacon API now honors the gzip content-encoding header.
- Log timestamps now include milliseconds.
- Full fusaka support for testnets!
Special shout out to our new team member @satushh!!
Welcome to new contributors: @Alleysira, @raulk, @tomasandroil, @trinadh61, @Sahil-4555, @ppopth, @Galoretka, @fernantho, @Muzry, @jihoonsong, @sashass1315, @DeVikingMark
Thanks for your continued contributions: @KaloyanTanev, @rose2221, @jtraglia, @syjn99, @NikolaiKryshnev, @hyunchel, @syjn99
[1] To override this limit, use the validator flag --suggested-gas-limit or set the builder.gas_limit setting in your proposer settings file.
Added
- PeerDAS: Add
CustodyInfoinBeaconNode. [PR] - GetDutiesV2 gRPC function, removes committee list from duties, replaced with committee length, validator committee index. [PR]
- Add SSZ support for two attestation APIs:
/eth/v1/validator/attestation_dataand. [PR] - Added feature flag for validator client to use get duties v2. [PR]
- PeerDAS: Implement DAS. [PR]
verifyBlobCommitmentCount: Print max allowed blob count in error message. [PR]- Data column support for beacon api event end point. [PR]
- Implement EIP-7917: Stable proposer lookahead. [PR]
- Implement
dataColumnSidecarByRootRPCHandler. [PR] - New ssz-only flag for validator client to enable calling rest apis in SSZ, starting with get block endpoint. [PR]
- Implement
dataColumnSidecarsByRangeRPCHandler. [PR] - Add SSZ support for
submitPoolAttestationsV2beacon API. [PR] - New
StatusV2proto message. [PR] - Implement
SendDataColumnSidecarsByRangeRequest. [PR] - Implement
SendDataColumnSidecarsByRootRequest. [PR] - Implement beacon API blob sidecar enpoint for Fulu. [PR]
- PeerDAS: Implement the new Fulu Metadata. [PR]
- PeerDAS: Implement reconstruction. [PR]
- Implement engine method
GetBlobsV2. [PR] - Implement execution
ReconstructDataColumnSidecars, which reconstruct data column sidecars from data fetched from the execution layer. [PR] - new
--batch-verifier-limitflag to configure max number of signatures to batch verify on gossip. [PR] disable-attest-timelyflag to disable attest timely. [PR]- Added
max-health-checksflag that sets the maximum times the validator tries to check the health of the beacon node before timing out. 0 or a negative number is indefinite. (the default is 0). [PR] - Add method
VersionToForkEpochMap()to theBeaconChainConfigin theparamspackage. [PR] - Add log capitalization analyzer and apply changes across codebase. [PR]
- Slot aware cache for seen data column gossip p2p to reduce memory usages. [PR]
- Gzip Compression for Beacon API:. [PR]
- Implement data column sidecars reconstruction with data retrieved from the execution client when receiving a block via gossip. [PR]
- Add support for parsing and handling
ExecutionPayloadAndBlobsBundleV2. [PR] - Added new PRYSM_API_OVERRIDE_ACCEPT environment variable to override ssz accept header as a replacement to flag. [PR]
- Implements the
/eth/v1/beacon/states/{state_id}/proposer_lookaheadbeacon api endpoint. [PR] - Added new metadata fields (attnets,syncnets,custody_group_count) to
/eth/v1/node/identity. [PR] - Add BLOB_SCHEDULE field to
/eth/v1/config/specendpoint response to expose blob scheduling configuration for networks. [PR] - Add timing metric
publish_block_v2_duration_millisecondsto measure processing duration of thePublishBlockV2beacon API endpoint. [PR] - Add Fulu case for
saveStatesEfficientInternal. [PR] - Support for fusaka
nfdenr field, and changes to the semantics of the eth2 field. [PR] - Implement post-Fulu MEV-boost protocol changes where relays only return status codes for blinded block submissions. [PR]
- Added fulu block support to StreamBlocksAltair. [PR]
- All outbound HTTP requests from the validator client now include a custom
User-Agentheader in the formatPrysm/<name>/<version>. This enhances observability and enables upstream systems to correctly identify Prysm validator clients by their name and version. [PR] - Fixes #15435. [PR]
- Data columns syncing for Fusaka. [PR]
- Added specification references which map spec to implementation. [PR]
- Warm data columns storage cache at start. [PR]
- Add
--data-column-pathflag. [PR] - Initialize package for SSZ Query Language. [PR]
- In FetchDataColumnSidecars, after retrieving sidecars from peers, if still some sidecars are missing for a given root and if a reconstruction is possible (combining sidecars already retrieved from peers and sidecars in the storage), then reconstruct missing sidecars instead of trying to fetch the missing ones from peers. [PR]
- Fulu block proposal changes for beacon api and gRPC. [PR]
- Retry to fetch origin data column sidecars when starting from a checkpoint. [[PR]](https://github.com/pry...
v6.1.0
v6.1.0 - 2025-09-26
Important note: All operators should upgrade as soon as possible to v6.0.5 OR v6.1.0 to receive a critical stability patch. v6.0.5 only includes the stability fix on top of v6.0.4, whereas v6.1.0 includes a much larger set of changes, detailed below.
This release has support for Fusaka testnets as well as many mainnet improvements. Testnet operators are required to update prior to the testnet fork date. See PR #15721.
Mainnet operators are encouraged to update per their regular update cadence.
v6.1.0 raises the default builder gas limit[1] from 36M to 45M, includes a memory utilization optimization that should benefit all beacon nodes, along with other improvements and bugfixes. Also included are incremental light client support components and fusaka features waiting to be activated. This will be the last release in the v6 cycle before the mainnet fusaka release, which will be tagged v7.0.0.
Noteworthy improvements, changes and bugfixes:
- The
--disable-experimental-statebeacon-node flag has been removed, marking the full graduation of the Copy-on-write design for BeaconState fields, which reduces the memory overhead of keeping multiple BeaconStates in RAM for block processing. Congrats @rkapka! - The behavior set by the
--attest_timelyflag is now on by default, with the flag itself deprecated. - GetDutiesV2 introduced, lowering duty request latency and beacon-node load. Multiple other improvements and bugfixes have been made to harden the validator run loop.
- New validator flag
--max-health-checksconfigures a validator to switch to a fallback beacon node after the given number of health check failures. - Improvements to rest-mode validator, defaulting to SSZ where available and adding SSZ support to more Beacon API endpoints.
- Beacon API now honors the gzip content-encoding header.
- Log timestamps now include milliseconds.
- Full fusaka support for testnets!
Special shout out to our new team member @satushh!!
Welcome to new contributors: @Alleysira, @raulk, @tomasandroil, @trinadh61, @Sahil-4555, @ppopth, @Galoretka, @fernantho, @Muzry, @jihoonsong, @sashass1315, @DeVikingMark
Thanks for your continued contributions: @KaloyanTanev, @rose2221, @jtraglia, @syjn99, @NikolaiKryshnev, @hyunchel, @syjn99
[1] To override this limit, use the validator flag --suggested-gas-limit or set the builder.gas_limit setting in your proposer settings file.
Added
- PeerDAS: Add
CustodyInfoinBeaconNode. [PR] - GetDutiesV2 gRPC function, removes committee list from duties, replaced with committee length, validator committee index. [PR]
- Add SSZ support for two attestation APIs:
/eth/v1/validator/attestation_dataand. [PR] - Added feature flag for validator client to use get duties v2. [PR]
- PeerDAS: Implement DAS. [PR]
verifyBlobCommitmentCount: Print max allowed blob count in error message. [PR]- Data column support for beacon api event end point. [PR]
- Implement EIP-7917: Stable proposer lookahead. [PR]
- Implement
dataColumnSidecarByRootRPCHandler. [PR] - New ssz-only flag for validator client to enable calling rest apis in SSZ, starting with get block endpoint. [PR]
- Implement
dataColumnSidecarsByRangeRPCHandler. [PR] - Add SSZ support for
submitPoolAttestationsV2beacon API. [PR] - New
StatusV2proto message. [PR] - Implement
SendDataColumnSidecarsByRangeRequest. [PR] - Implement
SendDataColumnSidecarsByRootRequest. [PR] - Implement beacon API blob sidecar enpoint for Fulu. [PR]
- PeerDAS: Implement the new Fulu Metadata. [PR]
- PeerDAS: Implement reconstruction. [PR]
- Implement engine method
GetBlobsV2. [PR] - Implement execution
ReconstructDataColumnSidecars, which reconstruct data column sidecars from data fetched from the execution layer. [PR] - new
--batch-verifier-limitflag to configure max number of signatures to batch verify on gossip. [PR] disable-attest-timelyflag to disable attest timely. [PR]- Added
max-health-checksflag that sets the maximum times the validator tries to check the health of the beacon node before timing out. 0 or a negative number is indefinite. (the default is 0). [PR] - Add method
VersionToForkEpochMap()to theBeaconChainConfigin theparamspackage. [PR] - Add log capitalization analyzer and apply changes across codebase. [PR]
- Slot aware cache for seen data column gossip p2p to reduce memory usages. [PR]
- Gzip Compression for Beacon API:. [PR]
- Implement data column sidecars reconstruction with data retrieved from the execution client when receiving a block via gossip. [PR]
- Add support for parsing and handling
ExecutionPayloadAndBlobsBundleV2. [PR] - Added new PRYSM_API_OVERRIDE_ACCEPT environment variable to override ssz accept header as a replacement to flag. [PR]
- Implements the
/eth/v1/beacon/states/{state_id}/proposer_lookaheadbeacon api endpoint. [PR] - Added new metadata fields (attnets,syncnets,custody_group_count) to
/eth/v1/node/identity. [PR] - Add BLOB_SCHEDULE field to
/eth/v1/config/specendpoint response to expose blob scheduling configuration for networks. [PR] - Add timing metric
publish_block_v2_duration_millisecondsto measure processing duration of thePublishBlockV2beacon API endpoint. [PR] - Add Fulu case for
saveStatesEfficientInternal. [PR] - Support for fusaka
nfdenr field, and changes to the semantics of the eth2 field. [PR] - Implement post-Fulu MEV-boost protocol changes where relays only return status codes for blinded block submissions. [PR]
- Added fulu block support to StreamBlocksAltair. [PR]
- All outbound HTTP requests from the validator client now include a custom
User-Agentheader in the formatPrysm/<name>/<version>. This enhances observability and enables upstream systems to correctly identify Prysm validator clients by their name and version. [PR] - Fixes #15435. [PR]
- Data columns syncing for Fusaka. [PR]
- Added specification references which map spec to implementation. [PR]
- Warm data columns storage cache at start. [PR]
- Add
--data-column-pathflag. [PR] - Initialize package for SSZ Query Language. [PR]
- In FetchDataColumnSidecars, after retrieving sidecars from peers, if still some sidecars are missing for a given root and if a reconstruction is possible (combining sidecars already retrieved from peers and sidecars in the storage), then reconstruct missing sidecars instead of trying to fetch the missing ones from peers. [PR]
- Fulu block proposal changes for beacon api and gRPC. [PR]
- Retry to fetch origin data column sidecars when starting from a checkpoint. [PR]
- Aggregate and pack sync committee messages into blocks. [PR]
- Support
Listtype for SSZ-QL. [PR] - Configured the beacon node to seek peers when we have validator custody requirements. If one or more validators are connected to the beacon node, then the beacon node should seek a diverse set of peers such that broadcasting to all d...