Skip to content

Releases: OffchainLabs/prysm

v7.1.2-rc.0

22 Dec 18:05
Immutable release. Only release title and notes can be modified.
7950a24

Choose a tag to compare

v7.1.2-rc.0 Pre-release
Pre-release

v7.1.2-rc.0 - 2025-12-22

Added

  • primitives.BuilderIndex: SSZ uint64 wrapper 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

  • Fix the missing fork version object mapping for Fulu in light client p2p. [PR]
  • Do not process slots and copy states for next epoch proposers after Fulu. [PR]

v7.1.1

18 Dec 16:50
Immutable release. Only release title and notes can be modified.
8191bb5

Choose a tag to compare

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.HandleError call is followed by a return statement. [PR]
  • Prometheus histogram cells_and_proofs_from_structured_computation_milliseconds to track computation time for cells and proofs from structured blobs. [PR]
  • Prometheus histogram get_blobs_v2_latency_milliseconds to track RPC latency for getBlobsV2 calls 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 ComputeCellsAndProofsFromFlat in parallel to improve performance when computing cells and proofs. [PR]
  • Run ComputeCellsAndProofsFromStructured in 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

10 Dec 18:03
Immutable release. Only release title and notes can be modified.
7a70abb

Choose a tag to compare

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-backfill when using checkpoint sync.
  • A new node configuration to custody enough data columns to reconstruct blobs. Use flag --semi-supernode to 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_milliseconds histogram reflects gossip traffic, annotated with path labels 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_milliseconds to 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-supernode flag 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_milliseconds to 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-subnets flag to --supernode and aliased --subscribe-all-data-subnets for 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 ExecutionRequests field 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 genesis package. [PR]
  • Added log prefix to the params package. [PR]
  • WithGenesisValidatorsRoot: Use camelCase for log field param. [PR]
  • Move Origin checkpoint found in db from 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 --supernode flag 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_COLUMNS configuration (not in the specification any more, replaced by a preset). [PR]
  • MAX_CELLS_IN_EXTENDED_MATRIX configuration (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 BlockGossipReceived event 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

08 Dec 20:09
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

10 Nov 22:32
Immutable release. Only release title and notes can be modified.
7794a77

Choose a tag to compare

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-epoch blob 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-epoch to 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) to 60000000 (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_subnet metric. [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) to len(block.payload.transactions). [PR]
  • Update go-netroute to v0.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) to 60000000 (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-methods has been removed. [PR]
  • Deprecated flag --disable-build-block-parallel has been removed. [PR]
  • Deprecated flag --disable-reorg-late-blocks has been removed. [PR]
  • Deprecated flag --disable-optional-engine-methods has been removed. [PR]
  • Deprecated flag --disable-aggregate-parallel has been removed. [PR]
  • Deprecated flag --enable-eip-4881 has been removed. [PR]
  • Deprecated flag --disable-eip-4881 has been removed. [PR]
  • Deprecated flag --enable-verbose-sig-verification has been removed. [PR]
  • Deprecated flag --enable-debug-rpc-endpoints has been removed. [PR]
  • Deprecated flag --beacon-rpc-gateway-provider has been removed. [PR]
  • Deprecated flag --disable-grpc-gateway has been removed. [PR]
  • Deprecated flag --enable-experimental-state has been removed. [PR]
  • Deprecated flag --enable-committee-aware-packing has been removed. [PR]
  • Deprecated flag --interop-genesis-time has been removed. [PR]
  • Deprecated flag --interop-num-validators has been removed (from beacon-chain only; still available in validator client). [PR]
  • Deprecated flag --enable-quic has been removed. [PR]
  • Deprecated flag --attest-timely has been removed. [PR]
  • Deprecated flag --disable-experimental-state has been removed. [PR]
  • Deprecated flag --p2p-metadata has 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

28 Oct 15:32
253f919

Choose a tag to compare

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: Use NumberOfCustodyGroups instead of NumberOfColumns. [PR]
  • Sync committee uses correct state to calculate position. [PR]

v6.1.3

21 Oct 15:22
41e7607

Choose a tag to compare

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's SizeSSZ method for calculating the size of Container type. [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 Size method with more sophisticated SSZTypes. [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 ValidationIgnore without 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: Use dataColumnRetentionEpoch instead of blobColumnRetentionEpoch. [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

10 Oct 14:50
38955fd

Choose a tag to compare

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=release now properly apply --strip=always to 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 from v2.1.1 to v2.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/spec endpoint. [PR]

Fixed

  • SSZ-QL: Support nested List type (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_peers and connected_libp2p_peers_average_scores. [PR]
  • buildStatusFromStream: Respond statusV2 only 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

29 Sep 16:56
83d75bc

Choose a tag to compare

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-state beacon-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_timely flag 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-checks configures 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 CustodyInfo in BeaconNode. [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_data and. [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 submitPoolAttestationsV2 beacon API. [PR]
  • New StatusV2 proto 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-limit flag to configure max number of signatures to batch verify on gossip. [PR]
  • disable-attest-timely flag to disable attest timely. [PR]
  • Added max-health-checks flag 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 the BeaconChainConfig in the params package. [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_lookahead beacon 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/spec endpoint response to expose blob scheduling configuration for networks. [PR]
  • Add timing metric publish_block_v2_duration_milliseconds to measure processing duration of the PublishBlockV2 beacon API endpoint. [PR]
  • Add Fulu case for saveStatesEfficientInternal. [PR]
  • Support for fusaka nfd enr 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-Agent header in the format Prysm/<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-path flag. [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...
Read more

v6.1.0

26 Sep 15:41
83d75bc

Choose a tag to compare

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-state beacon-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_timely flag 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-checks configures 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 CustodyInfo in BeaconNode. [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_data and. [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 submitPoolAttestationsV2 beacon API. [PR]
  • New StatusV2 proto 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-limit flag to configure max number of signatures to batch verify on gossip. [PR]
  • disable-attest-timely flag to disable attest timely. [PR]
  • Added max-health-checks flag 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 the BeaconChainConfig in the params package. [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_lookahead beacon 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/spec endpoint response to expose blob scheduling configuration for networks. [PR]
  • Add timing metric publish_block_v2_duration_milliseconds to measure processing duration of the PublishBlockV2 beacon API endpoint. [PR]
  • Add Fulu case for saveStatesEfficientInternal. [PR]
  • Support for fusaka nfd enr 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-Agent header in the format Prysm/<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-path flag. [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 List type 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...
Read more