github prysmaticlabs/prysm v5.3.1

one day ago

v5.3.1 - 2025-03-13

This release is packed with critical fixes for Electra and some important fixes for mainnet too.

The release highlights include:

  • Ensure that deleting a block from the database clears its entry in the slot->root db index. This issue was causing some operators to have a bricked database, requiring a full resync. [PR]
  • Updated go to go1.24.0. [PR]
  • Added a feature flag to sync from an arbitrary beacon block root at startup. [PR]
  • Updated default gas limit from 30M to 36M. Override this with --suggested-gas-limit= in the validator client. [PR]

Known issues in Electra:

  • Duplicate attestations are needlessly processed. This is being addressed in [PR].

Testnet operators are strongly encouraged to update to this release. There are many fixes and improvements from the Holesky upgrade incident.

Mainner operators are recommended to update to this release at their regular cadence.

Added

  • enable E2E for minimal and mainnet tests. [PR]
  • enable web3signer E2E for electra. [PR]
  • Enable multiclient E2E for electra. [PR]
  • Enable Scenario E2E tests with electra. [PR]
  • Add endpoint for getting pending deposits. [PR]
  • Add request hash to header for builder: executable data to block. [PR]
  • Log execution requests in each block. [PR]
  • Add endpoint for getting pending partial withdrawals. [PR]
  • Tracked validators cache: Added the ItemCount method. [PR]
  • Tracked validators cache: Added the Indices method. [PR]
  • Added deposit request testing for electra. [PR]
  • Added support for otel tracing transport in HTTP clients in Prysm. This allows for tracing headers to be sent with http requests such that spans between the validator and beacon chain can be connected in the tracing graph. This change does nothing without --enable-tracing. [PR]
  • Add SSZ support to light client finality and optimistic APIs. [PR]
  • add log to committee index when committeebits are not the expected length of 1. [PR]
  • Add acceptable address types for static peers. [PR]
  • Added a feature flag to sync from an arbitrary beacon block root at startup. [PR]

Changed

  • updates geth to 1.15.0. [PR]
  • Updates blst to v3.14.0 and fixes the references in our deps.bzl file. [PR]
  • Updated tracing exporter from jaeger to otelhttp. This should not be a breaking change. Jaeger supports otel format, however you may need to update your URL as the default otel-collector port is 4318. See the OpenTelemtry Protocol Exporter docs for more details. [PR]
  • Don't use MaxCover for Electra on-chain attestations. [PR]
  • Tracked validators cache: Remove validators from the cache if not seen after 1 hour. [PR]
  • execution requests errors on ssz length have been improved. [PR]
  • deprecate beacon api endpoints based on 3.0.0 release for electra. [PR]
  • Use go-cmp for printing better diffs for assertions.DeepEqual. [PR]
  • Reorganized beacon chain flags in --help text into logical sections. [PR]
  • --validators-registration-batch-size: Change default value from 0 to 200. [PR]
  • Updated go to go1.24.0. [PR]
  • Updated gosec to v2.22.1 and golangci to v1.64.5. [PR]
  • Updated github.com/trailofbits/go-mutexasserts. [PR]
  • Updated rules_go to cf3c3af34bd869b864f5f2b98e2f41c2b220d6c9 to support go1.24.0. [PR]
  • Validate blob sidecar re-order signature and bad parent block. [PR]
  • Updated default gas limit from 30M to 36M. [PR]
  • Ignore errors from hasSeenBit and don't pack unaggregated attestations. [PR]

Removed

  • Remove Fulu state and block. [PR]
  • Removed the log summarizing all started services. [PR]

Fixed

  • fixed max and target blob per block from static to dynamic values. [PR]
  • refactored publish block and block ssz functions to fix gocognit. [PR]
  • refactored publish blinded block and blinded block ssz to correctly deal with version headers and sent blocks. [PR]
  • Only check for electra related engine methods if electra is active. [PR]
  • Fixed bug that breaks new blob storage layout code on Windows, caused by accidental use of platform-dependent path parsing package. [PR]
  • Fix E2E Process Deposit Evaluator for Electra. [PR]
  • Fixed the bazel run //:gazelle command in DEPENDENCIES.md. [PR]
  • Fix E2E Deposit Activation Evaluator for Electra. [PR]
  • Dedicated processing of SingleAttestation in the monitor service. [PR]
  • adding in content type and accept headers for builder API call on registration. [PR]
  • fixed gocognit in block conversions between json and proto types. [PR]
  • Lint: Fix violations of S1009: should omit nil check; len() for nil slices is defined as zero. [PR]
  • Lint: Fix violations of non-constant format string in call. [PR]
  • Fixed violations of gosec G301. This is a check that created files and directories have file permissions 0750 and 0600 respectively. [PR]
  • Check for the correct attester slashing type during gossip validation. [PR]
  • cosmetic fix for post electra validator logs displaying attestation committee information correctly. [PR]
  • fix inserting the wrong committee index into the seen cache for electra attestations. [PR]
  • Allow any block type to be unmarshaled rather than only phase0 blocks in slotByBlockRoot. [PR]
  • Fixed pruner to not block while pruning large database by introducing batchSize. [PR]
  • Decompose Electra block attestations to prevent redundant packing. [PR]
  • Fixed use of deprecated rand.Seed. [PR]
  • Fixed build issue with SszGen where the go binary was not present in the $PATH. [PR]
  • fixed /eth/v1/config/spec displays BLOB_SIDECAR_SUBNET_COUNT,BLOB_SIDECAR_SUBNET_COUNT_ELECTRA. [PR]
  • Ensure that deleting a block from the database clears its entry in the slot->root db index. [PR]
  • Broadcasting BLS to execution changes should not use the request context in a go routine. Use context.Background() for the broadcasting go routine. [PR]
  • /eth/v1/validator/sync_committee_contribution should check for optimistic status and return a 503 if it's optimistic. [PR]
  • Fixes printing superfluous response.WriteHeader call from error in builder. [PR]
  • Fixes e2e run with builder having wrong gaslimit header due to not being set on eth1 nodes. [PR]
  • Fixed a bug in the event stream handler when processing payload attribute events where the timestamp and slot of the event would be based on the head rather than the current slot. [PR]
  • Handle unaggregated attestations when decomposing Electra block attestations. [PR]

Don't miss a new prysm release

NewReleases is sending notifications on new releases.