We forgot to send the email for v5.1.1 yesterday. This email has the info about v5.1.1 and v5.1.2. The release today, v5.1.2, is a hotfix release with a single fix on top of v5.1.1.
v5.1.2 hotfix release
Prysm v5.1.1 contains an updated implementation of the beacon api streaming events endpoint. This new implementation contains a bug that can cause a panic in certain conditions. The issue is difficult to reproduce reliably and we are still trying to determine the root cause, but in the meantime we are issuing a patch that recovers from the panic to prevent the node from crashing.
This only impacts the v5.1.1 release beacon api event stream endpoints. This endpoint is used by the prysm REST mode validator (a feature which requires the validator to be configured to use the beacon api intead of prysm's stock grpc endpoints) or accessory software that connects to the events api, like https://github.com/ethpandaops/ethereum-metrics-exporter
Fixed
- Recover from panics when writing the event stream #14545
v5.1.1
This release has a number of features and improvements. Most notably, the feature flag --enable-experimental-state has been flipped to "opt out" via --disable-experimental-state. The experimental state management design has shown significant improvements in memory usage at runtime. Updates to libp2p's gossipsub have some bandwidith stability improvements with support for IDONTWANT control messages.
⚠️ The gRPC gateway has been deprecated from Prysm in this release. If you need JSON data, consider the standardized beacon-APIs.
💡 This is our first release using pull request authors' entries from our CHANGELOG.md file.
❤️ Please give feedback in github issues or on discord.
Updating to this release is recommended at your convenience.
Full diff here: v5.1.0...v5.1.1
Added
- Aggregate and proof committee validation for Electra.
- More tests for electra field generation.
- Light client support: Implement
ComputeFieldRootsForBlockBody. - Light client support: Add light client database changes.
- Light client support: Implement capella and deneb changes.
- Light client support: Implement
BlockToLightClientHeader function. - Light client support: Consensus types.
- GetBeaconStateV2: add Electra case.
- Implement consensus-specs/3875.
- Tests to ensure sepolia config matches the official upstream yaml.
- HTTP endpoint for PublishBlobs.
- GetBlockV2, GetBlindedBlock, ProduceBlockV2, ProduceBlockV3: add Electra case.
- Add Electra support and tests for light client functions.
- fastssz version bump (better error messages).
- SSE implementation that sheds stuck clients. pr
Changed
- Electra: Updated interop genesis generator to support Electra.
getLocalPayload has been refactored to enable work in ePBS branch.TestNodeServer_GetPeer and TestNodeServer_ListPeers test flakes resolved by iterating the whole peer list to find
a match rather than taking the first peer in the map.- Passing spectests v1.5.0-alpha.4 and v1.5.0-alpha.5.
- Beacon chain now asserts that the external builder block uses the expected gas limit.
- Electra: Add electra objects to beacon API.
- Electra: Updated block publishing beacon APIs to support Electra.
- "Submitted builder validator registration settings for custom builders" log message moved to debug level.
- config: Genesis validator root is now hardcoded in params.BeaconConfig()
grpc-gateway-host is renamed to http-host. The old name can still be used as an alias.grpc-gateway-port is renamed to http-port. The old name can still be used as an alias.grpc-gateway-corsdomain is renamed to http-cors-domain. The old name can still be used as an alias.api-timeout is changed from int flag to duration flag, default value updated.- Light client support: abstracted out the light client headers with different versions.
ApplyToEveryValidator has been changed to prevent misuse bugs, it takes a closure that takes a ReadOnlyValidator and returns a raw pointer to a Validator.- Removed gorilla mux library and replaced it with net/http updates in go 1.22.
- Clean up
ProposeBlock for validator client to reduce cognitive scoring and enable further changes. - Updated k8s-io/client-go to v0.30.4 and k8s-io/apimachinery to v0.30.4
- Migrated tracing library from opencensus to opentelemetry for both the beacon node and validator.
- Refactored light client code to make it more readable and make future PRs easier.
- Update light client helper functions to reference
dev branch of CL specs - Updated Libp2p Dependencies to allow prysm to use gossipsub v1.2 .
- Updated Sepolia bootnodes.
- Make committee aware packing the default by deprecating
--enable-committee-aware-packing. - Moved
ConvertKzgCommitmentToVersionedHash to the primitives package.
Deprecated
--disable-grpc-gateway flag is deprecated due to grpc gateway removal.--enable-experimental-state flag is deprecated. This feature is now on by default. Opt-out with --disable-experimental-state.
Removed
- Removed gRPC Gateway.
- Removed unused blobs bundle cache.
- Removed consolidation signing domain from params. The Electra design changed such that EL handles consolidation signature verification.
Fixed
- Fixed early release of read lock in BeaconState.getValidatorIndex.
- Electra: resolve inconsistencies with validator committee index validation.
- Electra: build blocks with blobs.
- E2E: fixed gas limit at genesis
- Light client support: use LightClientHeader instead of BeaconBlockHeader.
- validator registration log changed to debug, and the frequency of validator registration calls are reduced
- Core: Fix process effective balance update to safe copy validator for Electra.
== nil checks before calling IsNil() on interfaces to prevent panics.- Core: Fixed slash processing causing extra hashing.
- Core: Fixed extra allocations when processing slashings.
- remove unneeded container in blob sidecar ssz response
- Light client support: create finalized header based on finalizedBlock's version, not attestedBlock.
- Light client support: fix light client attested header execution fields' wrong version bug.
- Testing: added custom matcher for better push settings testing.
- Registered
GetDepositSnapshot Beacon API endpoint.
Security
No notable security updates.