v5.3.0
This release includes support for Pectra activation in the Holesky and Sepolia testnets! The release contains many fixes for Electra that have been found in rigorous testing through devnets in the last few months.
For mainnet, we have a few nice features for you to try:
- PR #14023 introduces a new file layout structure for storing blobs. Rather than storing all blob root directories in one parent directory, blob root directories are organized in subdirectories by epoch. This should vastly decrease the blob cache warmup time when Prysm is starting. Try this feature with
--blob-storage-layout=by-epoch
.
Updating to this release is required for Holesky and Sepolia operators and it is recommended for mainnet users as there are a few bug fixes that apply to deneb logic.
Added
- Added an error field to log
Finished building block
. [PR] - Implemented a new
EmptyExecutionPayloadHeader
function. [PR] - Added proper gas limit check for header from the builder. [PR]
Finished building block
: Display error only if not nil. [PR]- Added light client feature flag check to RPC handlers. PR. [PR]
- Added support to update target and max blob count to different values per hard fork config. [PR]
- Log before blob filesystem cache warm-up. [PR]
- New design for the attestation pool. [PR]
- Add field param placeholder for Electra blob target and max to pass spec tests. [PR]
- Light client: Add better error handling. PR. [PR]
- Add EIP-7691: Blob throughput increase. [PR]
- Trace IDONTWANT Messages in Pubsub. [PR]
- Add Fulu fork boilerplate. [PR]
- DB optimization for saving light client bootstraps (save unique sync committees only). [PR]
- Separate type for unaggregated network attestations. [PR]
- Remote signer electra fork support. [PR]
- Add Electra test case to rewards API. [PR]
- Update
proto_test.go
to Electra. [PR] - Update slasher service to Electra. [PR]
- Builder API endpoint to support Electra. [PR]
- Added protoc toolchains with a version of v25.3. [PR]
- Add test cases for the eth_lightclient_bootstrap API SSZ support. [PR]
- Handle
AttesterSlashingElectra
everywhere in the codebase. [PR] - Add Beacon DB pruning service to prune historical data older than MIN_EPOCHS_FOR_BLOCK_REQUESTS (roughly equivalent to the weak subjectivity period). [PR]
- Nil consolidation request check for core processing. [PR]
- Updated blob sidecar api endpoint for Electra. [PR]
- Slashing pool service to convert slashings from Phase0 to Electra at the fork. [PR]
- check to stop eth1 voting after electra and eth1 deposits stop. [PR]
- WARN log message on node startup advising of the upcoming deprecation of the --enable-historical-state-representation feature flag. [PR]
- Beacon API event support for
SingleAttestation
andSignedAggregateAttestationAndProofElectra
. [PR] - Added Electra tests for
TestLightClient_NewLightClientOptimisticUpdateFromBeaconState
andTestLightClient_NewLightClientFinalityUpdateFromBeaconState
. [PR] - New option to select an alternate blob storage layout. Rather than a flat directory with a subdir for each block root, a multi-level scheme is used to organize blobs by epoch/slot/root, enabling leaner syscalls, indexing and pruning. [PR]
- Send pending att queue's attestations through the notification feed. [PR]
- Prune all pending deposits and proofs in post-Electra. [PR]
- Add Pectra testnet dates. (Sepolia and Holesky). [PR]
Changed
- Process light client finality updates only for new finalized epochs instead of doing it for every block. [PR]
- Refactor subnets subscriptions. [PR]
- Refactor RPC handlers subscriptions. [PR]
- Go deps upgrade, from
ioutil
toio
. [PR] - Move successfully registered validator(s) on builder log to debug. [PR]
- Update some test files to use
crypto/rand
instead ofmath/rand
. [PR] - Re-organize the content of the
*.proto
files (No functional change). [PR] - SSZ files generation: Remove the
// Hash: ...
header.[PR] - Updated Electra spec definition for
process_epoch
. [PR] - Update our
go-libp2p-pubsub
dependency. [PR] - Re-organize the content of files to ease the creation of a new fork boilerplate. [PR]
- Updated spec definition electra
process_registry_updates
. [PR] - Fixed Metadata errors for peers connected via QUIC. [PR]
- Updated spec definitions for
process_slashings
in godocs. SimplifiedProcessSlashings
API. [PR] - Update spec tests to v1.5.0-beta.0. [PR]
- Process light client finality updates only for new finalized epochs instead of doing it for every block. [PR]
- Update blobs by rpc topics from V2 to V1. [PR]
- Updated geth to 1.14~. [PR]
- E2e tests start from bellatrix. [PR]
- Version pinning unclog after making some ux improvements. [PR]
- Remove helpers to check for execution/compounding withdrawal credentials and expose them as methods. [PR]
- Refactor
2006-01-02 15:04:05
totime.DateTime
. [PR] - Updated Prysm to Go v1.23.5. [PR]
- Updated Bazel version to v7.4.1. [PR]
- Updated rules_go to v0.46.0. [PR]
- Updated golang.org/x/tools to be compatible with v1.23.5. [PR]
- CI now requires proto files to be properly formatted with clang-format. [PR]. [PR]
- Improved test coverage of beacon-chain/core/electra/churn.go. [PR]
- Update electra spec test to beta1. [PR]
- Move deposit request nil check to apply all. [PR]
- Do not mark blocks as invalid on context deadlines during state transition. [PR]
- Update electra core processing to not mark block bad if execution request error. [PR]
- Dependency: Updated go-ethereum to v1.14.13. [PR]
- improving readability on proposer settings loader. [PR]
- Removes existing validator.processSlot span and adds validator.processSlot span to slotCtx. [PR]
- DownloadFinalizedData has moved from the api/client package to beacon-chain/sync/checkpoint. [PR]
- Updated Blob-Batch-Limit to increase to 192 for electra. [PR]
- Updated Blob-Batch-Limit-Burst-Factor to increase to 3. [PR]
- Changed the derived batch limit when serving blobs. [PR]
- Updated go-libp2p-pubsub to v0.13.0. [PR]
- Rename light client flag from
enable-lightclient
toenable-light-client
. [PR] - Update electra spec test to beta2. [PR]
Removed
- Cleanup ProcessSlashings method to remove unnecessary argument. [PR]
- Remove
/proto/eth/v2
directory. [PR] - Remove
/memsize/
pprof endpoint as it will no longer be supported in go 1.23. [PR] - Clean
TestCanUpgrade*
tests. [PR] - Remove
Copy()
from theReadOnlyBeaconBlock
interface. [PR] - Removed a tracing span on signature requests. These requests usually took less than 5 nanoseconds and are generally not worth tracing. [PR]
Fixed
- Added check to prevent nil pointer deference or out of bounds array access when validating the BLSToExecutionChange on an impossibly nil validator. [PR]
- EIP-7691: Ensure new blobs subnets are subscribed on epoch in advance. [PR]
- Fix kzg commitment inclusion proof depth minimal value. [PR]
- Replace exampleIP to
96.7.129.13
. [PR] - Fixed a p2p test to reliably return a static IP through DNS resolution. [PR]
ToBlinded
: Use Fulu struct for Fulu (instead of Electra). [PR]- fix panic with type cast on pbgenericblock(). [PR]
- Prysmctl generate genesis state: fix truncation of ExtraData to 32 bytes to satisfy SSZ marshaling. [PR]
- added conditional evaluators to fix scenario e2e tests. [PR]
- Use
SingleAttestation
for Fulu in p2p attestation map. [PR] UpgradeToFulu
: Respect the specification. [PR]nodeFilter
: ImplementfilterPeerForBlobSubnet
to avoid error logs. [PR]- Fixed deposit packing for post-Electra: early return if EIP-6110 is applied. [PR]
- Fix batch process new pending deposits by getting validators from state. [PR]
- Fix handling unfound block at slot. [PR]
- Fixed incorrect attester slashing length check. [PR]
- Fix monitor service for Electra. [PR]
- add more nil checks on ToConsensus functions for added safety. [PR]
- Fix electra state to safe share references on pending fields when append. [PR]
- Add missing config values from the spec. [PR]
- We remove the unused
rebuildTrie
assignments for fields which do not use them. [PR] - fix block api endpoint to handle blocks with the same structure but on different forks (i.e. fulu and electra). [PR]
- We change how we track blob indexes during their reconstruction from the EL to prevent. [PR]
- We now use the correct maximum value when serving blobs for electra blocks. [PR]
Security
- go version upgrade to 1.22.10 for CVE CVE-2024-34156. [PR]
- Update golang.org/x/crypto to v0.31.0 to address CVE-2024-45337. [PR]
- Update golang.org/x/net to v0.33.0 to address CVE-2024-45338. [PR]