Skip to content

Releases: prysmaticlabs/prysm

v4.2.1-rc.2

26 Jan 00:36
9c13d47
Compare
Choose a tag to compare
v4.2.1-rc.2 Pre-release
Pre-release

Release candidate for v4.2.1, including:

  • Fixes from Goerli Dencun fork
  • Holesky and Sepolia Dencun fork epochs

Full notes to come in the final release.

Full diff v4.2.0...v4.2.1-rc.2

v4.2.1-rc.1

24 Jan 19:50
e397f8a
Compare
Choose a tag to compare
v4.2.1-rc.1 Pre-release
Pre-release

Release candidate for v4.2.1, including:

  • Fixes from Goerli Dencun fork
  • Holesky and Sepolia Dencun fork epochs

Full notes to come in the final release.

Full diff v4.2.0...v4.2.1-rc.1

v4.2.1-rc.0

17 Jan 16:32
79bb7ef
Compare
Choose a tag to compare
v4.2.1-rc.0 Pre-release
Pre-release

Release candidate for v4.2.1, including:

Fixes from Goerli Dencun fork

Full notes to come in the final release.

Full diff v4.2.0...v4.2.1-rc.0

v4.2.0

11 Jan 15:23
3a2b486
Compare
Choose a tag to compare

v4.2.0 🌿

Happy new year! We have an incredibly exciting release to kick off the new year. This release is strongly recommended for all operators to update as it has many bug fixes, security patches, and features that will improve the Prysm experience on mainnet. This release has so many wonderful changes that we've deviated from our normal release notes format to aptly categorize the changes.

Highlights

Upgrading / Downgrading Validators

There are some API changes bundled in this release that require you to upgrade or downgrade in particular order. If the validator is updated before the beacon node, it will see repeated 404 errors at start up until the beacon node is updated as it uses a new API endpoint introduced in v4.2.0.

🔼 Upgrading: Upgrade the beacon node, then the validator.
🔽 Downgrading: Downgrade the validator to v4.1.1 then downgrade the beacon node.

Deneb Goerli Support

This release adds in full support for the upcoming deneb hard fork on goerli next week on January 17th.

Networking Parameter Changes

This release increases the default peer count to 70 from 45. The reason this is done is so that node's running
with default peer counts can perform their validator duties as expected. Users who want to use the old peer count
can add in --p2p-max-peers=45 as a flag.

Profile Guided Optimization

This release has binaries built using PGO, for more information on how it works feel free to look here: https://tip.golang.org/doc/pgo .
This allows the go compiler to build more optimized Prysm binaries using production profiles and workloads.

ARM Supported Docker Images

Our docker images now support amd64 and arm64 architecture! This long awaited feature is finally here for Apple Silicon and Raspberry Pi users.

Deneb

Core

  • Use ROForkchoice in blob verifier (#13426)
  • Add Goerli Deneb Fork Epoch (#13390)
  • Use deneb key for deneb state in saveStatesEfficientInternal (#13374)
  • Initialize Inactivity Scores Correctly (#13375)
  • Excluse DA wait time for chain processing time (#13335)
  • Initialize sig cache for verification.Initializer (#13295)
  • Verify roblobs (#13245)
  • KZG Commitment inclusion proof verifier (#13174)
  • Merkle Proofs of KZG commitments (#13159)
  • Add RO blob sidecar (#13144)
  • Check blob index duplication for blob notifier (#13123)
  • Remove sidecars with invalid proofs (#13070)
  • Proposer: better handling of blobs bundle (#12956)
  • Update proposer RPC to new blob sidecar format (#13189)
  • Implement Slot-Dependent Caching for Blobs Bundle (#13205)
  • Verified roblobs (#13190)

Networking

  • Check sidecar index in BlobSidecarsByRoot response (#13180)
  • Use proposer index cache for blob verification (#13423)
  • VerifiedROBlobs in initial-sync (#13351)
  • Reordered blob validation (#13347)
  • Initialize blob storage for initial sync service (#13312)
  • Use verified blob for gossip checks (#13294)
  • Update broadcast method to use BlobSidecar instead of SingedBlobSidecar (#13221)
  • Remove pending blobs queue (#13166)
  • Reject Blob Sidecar Incorrect Index (#13094)
  • Check return and request lengths for blob sidecar by root (#13106)
  • Fix blob sidecar subnet check (#13102)
  • Add pending blobs queue for missing parent block (#13005)
  • Verify blobs that arrived from by root request (#13044)
  • Reject blobs with invalid parent (#13047)
  • Add more blob and block checks for by range (#13043)
  • Exit early if blob by root request is empty (#13038)
  • Request missing blobs while processing pending queue (#13015)
  • Check blob exists before requesting from peer (#13012)
  • Passing block as arugment for sidecar validation (#13062)

Blob Management

  • Remove old blob types (#13438)
  • minimize syscalls in pruning routine (#13425)
  • Prune dangling blob (#13424)
  • Use Afero Walk for Pruning Blob (#13410)
  • Initialize blob storage without pruning (#13412)
  • Fix batch pruning errors (#13355)
  • Blob filesystem add pruning during blob write (#13275)
  • Blob filesystem add pruning at startup (#13253)
  • Ensure partial blob is deleted if there's an error (#13292)
  • Split blob pruning into two funcs (#13285)
  • Use functional options for --blob-retention-epochs (#13283)
  • Blob filesystem: delete blobs (#13233)
  • Fix Blob Storage Path (#13222)
  • Add blob getters (#13170)
  • Blob filesystem: Save Blobs (#13129)
  • Blob filesystem: prune blobs (#13147)
  • blobstorage: Improve mkdirall error (#13271)

Beacon-API

  • Add rpc trigger for blob sidecar event (#13411)
  • Do not skip mev boost in v3 block production endpoint (#13365)
  • Beacon APIs: re enabling blob events (#13315)
  • Beacon API: update Deneb endpoints after removing blob signing (#13235)
  • Beacon API: fix get blob returns 500 instead of empty (#13297)
  • Fix bug in Beacon API getBlobs (#13100)
  • Fix blob_sidecar SSE payload (#13050)
  • fix(beacon-chain/rpc): blob_sidecar event stream handler (#12999)
  • Improvements to produceBlockV3 (#13027)
  • Deneb: Produce Block V3 - adding consensus block value (#12948)

Validator Client

  • Validator client: remove blob signing (#13169)
  • Deneb - web3signer (#12767)

Testing

  • Enable Deneb For E2E Scenario Tests (#13317)
  • Activate deneb in E2E (#13311)
  • Deneb E2E (#13040)

Miscellaneous

  • Update blob pruning log (#13417)
  • Fix total pruned metric + add to logging (#13367)
  • Check kzg commitment count from builder (#13394)
  • Add error wrapping to blob initialization errors (#13366)
  • Blob filesystem metrics (#13316)
  • Check builder header kzg commitment (#13358)
  • Add more color to sending blob by range req log (#13349)
  • Move pruning log to after retention check (#13348)
  • Enhance Pruning Logs (#13331)
  • Rename Blob retention epoch flag (#13124)
  • Check that blobs count is correct when unblinding (#13118)
  • Log blob's kzg commmitment at sync (#13111)
  • Replace MAX_BLOB_EPOCHS usages with more accurate terms (#13098)
  • Fix comment of BlobSidecarsBySlot (#13019)

Core Prysm Work(Non-Deneb)

Core Protocol

  • Only process blocks which haven't been processed (#13442)
  • Initialize exec payload fields and enforce order (#13372)
  • Add nil check for head in IsOptimistic (#13439)
  • Unlock forkchoice store if attribute is empty (#13427)
  • Make Aggregating In Parallel The Permanent Default (#13407)
  • Break out several helpers from postBlockProcess (#13419)
  • Don't hardcode 4 seconds in forkchoice (#13416)
  • Simplify fcu 4 (#13403)
  • Remove the getPayloadAttribute call from updateForkchoiceWithExecution (#13402)
  • Simplify fcu 2 (#13400)
  • Remove getPayloadAttributes from FCU call (#13399)
  • Simplify fcu 1 (#13387)
  • Remove unsafe proposer indices cache (#13385)
  • Rewrite ProposeBlock endpoint (#13380)
  • Remove blind field from block type (#13389)
  • update shuffling caches before calling FCU on epoch boundaries (#13383)
  • Return SignedBeaconBlock from ReadOnlySignedBeaconBlock.Copy (#13386)
  • Use advanced epoch cache when preparing proposals (#13377)
  • refactor Payload Id caches (#12987)
  • Use block value correctly when proposing a block (#13368)
  • use different keys for the proposer indices cache (#13272)
  • Use a cache of one entry to build attestation (#13300)
  • Remove signed block requirement from no-verify functions (#13314)
  • Allow requests for old target roots (#13281)
  • Remove Redundant Hash Computation in Cache (#13261)
  • Fix FFG LMD Consistency Check (Option 2) (#13258)
  • Verify lmd without ancestor (#13250)
  • Track target in forkchoice (#13249)
  • Return early from ReceiveBlock if already sycned (#13089)

Builder

  • Adding builder boost factor to get block v3 (#13409)
  • Builder API: Fix max field check on toProto function (#13334)
  • Add sanity checks for bundle from builder (#13319)
  • Update Prysm Proposer end points for Builder API (#13240)
  • Builder API: remove blinded blob sidecar (#13202)
  • Allow validators registration batching on Builder API /eth/v1/builder/validators (#13178)

State-Management

  • Add Detailed Multi Value Metrics (#13429)
  • Optimize Multivalue Slice For Trie Recomputation (#13238)
  • Fix Multivalue Slice Deadlock (#13087)
  • Set Better Slice Capacities in the State (#13068)

Networking

  • Refactor Network Config Into Main Config (#13364)
  • Handle potential error from newBlockRangeBatcher (#13344)
  • Clean Up Goodbye Stream Errors (#13325)
  • Support New Subnet Backbone (#13179)
  • Increase Networking Defaults (#13278)
  • Bump Up Gossip Queue Size (#13277)
  • Improve Gossipsub Rejection Metric (#13236)
  • Add Gossipsub Queue Flag (#13237)
  • Fix Deadlock With Subscriber Checker (#13234)
  • Add Additional Pubsub Metrics (#13226)
  • Verify Block Signatures On Insertion Into Pending Queue (#13183)
  • Enhance Validation for Block by Root RPC Requests (#13184)
  • Add a helper for max request block (#13173)
  • Fix Pending Queue Deadline Bug (#13145)
  • Add context deadline for pending queue's receive block (#13114)
  • Fix Pending Queue Expiration Bug (#13104)
  • sync only up to previous epoch on phase 1 (#13083)
  • Use correct context for sendBatchRootRequest (#13061)
  • Refactor Pending Block Queue Logic in Sync Package (#13026)
  • Check block exists in pending queue before requesting from peer (#13013)
  • Set Verbosity of Goodbye Logs to Trace (#13077)
  • use read only head state (#13014)

Beacon-API

Most of the PRs here involve shifting our http endpoints to using vanilla http handlers(without the API middleware).

  • http endpoint cleanup (#13432)
  • Revert "REST VC: Subscribe to Beacon API events (#13354)" (#13428)
  • proposer and attester slashing sse (#13414)
  • REST VC: Subscribe to Beacon API events (#13354)
  • Simplify error handling for JsonRestHandler (#13369)
  • Update block publishing to 2.4.2 spec (#13376)
  • Use SkipMevBoost pr...
Read more

v4.2.0-rc.1

10 Jan 21:14
3a2b486
Compare
Choose a tag to compare
v4.2.0-rc.1 Pre-release
Pre-release

Release candidate for v4.2.0, including:

  • Support for Goerli Dencun fork
  • Many dencun improvements from devnets 10, 11, and 12.

Full notes to come in the final release.

Full diff https://github.com/prysmaticlabs/prysm/compare/v4.1.1..v4.2.0-rc.1

v4.2.0-rc.0

09 Jan 20:07
5cea6be
Compare
Choose a tag to compare
v4.2.0-rc.0 Pre-release
Pre-release

Release candidate for v4.2.0, including:

  • Support for Goerli Dencun fork
  • Many dencun improvements from devnets 10, 11, and 12.

Full notes to come in the final release.

Full diff https://github.com/prysmaticlabs/prysm/compare/v4.1.1..v4.2.0-rc.0

v4.1.1

24 Oct 19:44
Compare
Choose a tag to compare

This patch release includes two cherry-picked changes from the develop branch to resolve critical issues that affect a small set of users.

Fixed

  • Fix improperly registered REST API endpoint for validators using Prysm's REST API with an external builder #13071
  • Fix deadlock when using --enable-experimental-state feature #13087

Full Changelog: v4.1.0...v4.1.1

V4.1.0

17 Oct 15:19
44973b0
Compare
Choose a tag to compare

Highlights

  • Fundamental Deneb Support: This release lays the foundation for Deneb support, although features like backwards syncing and filesystem-based blob storage are planned for Q4 2024.
  • Multi-Value Slices for Beacon State: Implemented multi-value slices to reduce the memory footprint and optimize certain processing paths. This data structure allows for storing values shared between state instances more efficiently. This feature is controller by the --enable-experimental-state flag.
  • EIP-4881 Deposit Tree: Integrated the EIP-4881 Deposit Tree into Prysm to optimize runtime block processing and production. This feature is controlled by a flag: --enable-eip-4881
  • BLST version 0.3.11: Introduced a significant improvement to the portable build's performance. The portable build now features runtime detection, automatically enabling optimized code paths if your CPU supports it.
  • Multiarch Containers Preview Available: multiarch (:wave: arm64 support :wave:) containers will be offered for preview at the following locations:

New

EIP-4844:

Core:

  • Deneb State & Block Types: New state and block types added specifically for Deneb. (#12375, #12368)
  • Deneb Protobufs: Protocol Buffers designed exclusively for Deneb. (#12363)
  • Deneb Engine API: Specialized API endpoints for Deneb. (#12384)
  • Deneb Config/Params: Deneb-specific configurations and parameters from the deneb-integration branch. (#12783)

Blob Management:

  • Blob Retention Epoch Period: Configurable retention periods for blobs. (#12941)
  • Blob Arrival Gossip Metric: Metrics for blob arrivals via gossip protocol. (#12888)
  • Blob Merge Function: Functionality to merge and validate saved/new blobs. (#12868)
  • Blob Channel: A channel dedicated to blob processing. (#12753)
  • Save Blobs to DB: Feature to save blobs to the database for subscribers. (#12734)

Logging and Validation:

  • Logging for Blob Sidecar: Improved logging functionalities for Blob Sidecar. (#12883)
  • Blob Commitment Count Logging: Introduced logging for blob commitment counts. (#12723)
  • Blob Validation: A feature to validate blobs. (#12574)

Additional Features and Tests:

  • Deneb Changes & Blobs to Builder: Deneb-specific changes and blob functionality added to the builder. (#12477)
  • Deneb Blob Sidecar Events: Blob sidecar events added as part of the Deneb release. (#12928)
  • KZG Commitments: Functionality to copy KZG commitments when using the builder block. (#12923)
  • Deneb Validator Beacon APIs: New REST APIs specifically for the Deneb release. (#12871)
  • Deneb Tests: Test cases specific to the Deneb version. (#12680, #12610)
  • PublishBlockV2 for Deneb: The publishblockv2 endpoint implemented specifically for Deneb. (#12662)
  • Builder Override & Builder Flow for Deneb: An override for the builder and a new RPC to handle the builder flow in Deneb. (#12601, #12554)
  • SSZ Detection for Deneb: SSZ detection capabilities added for Deneb. (#12537)
  • Validator Signing for Deneb: Validators can now sign Deneb blocks. (#12449)
  • Deneb Upgrade Function: A function to handle the upgrade to Deneb. (#12433)

Rest of EIPs

  • EIP-4788: Added support for Beacon block root in the EVM (#12570).
  • EIP-7044 and EIP-7045: Implemented support for Perpetually Valid Signed Voluntary Exits and increased the max attestation inclusion slot (#12577, #12565).

Beacon API:

Note: All Beacon API work is related with moving endpoints into pure HTTP handlers. This is NOT new functionality.

Endpoints moved to HTTP:

  • /eth/v1/beacon/blocks and /eth/v1/beacon/blinded_blocks (#12827).
  • /eth/v1/beacon/states/{state_id}/committees (#12879).
  • /eth/v1/config/deposit_contract (#12872).
  • /eth/v1/beacon/pool/sync_committees (#12782).
  • /eth/v1/beacon/states/{state_id}/validators, /eth/v1/beacon/states/{state_id}/validators/{validator_id} and /eth/v1/beacon/states/{state_id}/validator_balances (#12887).
  • /eth/v1/validator/duties/attester/{epoch}, /eth/v1/validator/duties/proposer/{epoch} and /eth/v1/validator/duties/sync/{epoch} (#12810).
  • /eth/v1/validator/register_validator (#12758).
  • /eth/v1/validator/prepare_beacon_proposer (#12781).
  • /eth/v1/beacon/headers (#12817).
  • /eth/v1/beacon/blocks/{block_id}/root (#12716).
  • /eth/v1/validator/attestation_data (#12634).
  • /eth/v1/validator/sync_committee_contribution (#12698).
  • /eth/v1/beacon/genesis and /eth/v1/beacon/states/{state_id}/finality_checkpoints (#12902).
  • /eth/v1/node/syncing (#12706).
  • /eth/v1/beacon/pool/voluntary_exits (#12777).
  • /eth/v1/beacon/headers/{block_id} and /eth/v1/validator/liveness/{epoch} (#12916).

Miscellaneous:

  • Comma-Separated Query Params: Support for comma-separated query parameters added to Beacon API (#12966).
  • Middleware for Query Params: Middleware introduced for handling comma-separated query parameters (#12995).
  • Content-Type Header: Compliance improved by adding Content-Type header to VC POST requests (#12942).
  • Node Version: REST-based node version endpoint implemented (#12809).

Other additions

Protocol:

  • Multi-Value Slice for Beacon State: Enhanced the beacon state by utilizing a multi-value slice. (#12549)
  • EIP-4881 Deposit Tree: EIP-4881 Deposit Tree integrated into Prysm, controlled by a feature flag (#11942).
  • New Engine Methods: New engine methods set as the default (#12997).
  • Light Client Sync Protocol: Initiation of a 5-part light client sync protocol (#12853).
  • Block Commitment Checks: Functionality to reject blocks with excessive commitments added (#12863).

State Management:

  • Alloc More Items: Modified beacon-node/state to allocate an additional item during appends (#12832).
  • GetParentBlockHash Helper: Refactoring of getLocalPayloadAndBlobs with a new helper function for fetching parent block hashes (#12951).
  • RW Lock for Duties: Read-Write lock mechanism introduced for managing validator duties (#12861).

Build and CI/CD Improvements:

  • Manual Build Tag: A "manual" build tag introduced to expedite CI build times (#12967).
  • Multiarch Docker Containers: Support for multiple architectures in Docker containers added (#12428).

Testing:

  • Init-Sync DA Tests: Tests for initial sync Data Availability (DA) included (#12873).
  • Fuzz List Timeout: Github workflow for fuzz testing now includes a timeout setting (#12768).
  • Go Fuzzing Workflow: New Github workflow for Go fuzzing on a cron schedule (#12756).

Logging and Monitoring:

  • FFG-LMD Consistency Logging: Enhanced logging for Finality Gadget LMD (FFG-LMD) consistency (#12763).
  • Validator Count Endpoint: New endpoint to count the number of validators (#12752).

User Interface and Web:

  • Web UI Release: Prysm Web UI v2.0.4 released with unspecified updates and improvements (#12746).

Testnet support:

  • Holesky Support: Support for Holesky decompositions integrated into the codebase (#12821).

Error Handling and Responses:

  • Validation Error in ForkchoiceUpdatedResponse: Included validation errors in fork choice update responses (#12828).
  • Wrapped Invalid Block Error: Improved error handling for cases where an invalid block error is wrapped. (#12982).

Changed

General:

  • Skip MEV-Boost Flag: Updated GetBlock RPC to utilize skip mev-boost flag (#12969).
  • Portable Version of BLST: Transitioned to portable BLST version as default (#12720).
  • Teku Mainnet Bootnodes: Refreshed Teku mainnet bootnodes ENRs (#12962).
  • Geth Version Updates: Elevated geth to version v1.13.1 for additional stability and features (#12911).
  • Parallel Block Building: Deprecated sequential block building path (#13008)

Deneb-Specific Changes:

  • Deneb Spectests Release: Upgraded to Deneb spectests v1.4.0-beta.2-hotfix (#12959).
  • Deneb API and Builder Cleanup: Conducted clean-up activities for Deneb-specific API and builder (#12852, #12921).
  • Deneb Block Versioning: Introduced changes related to Deneb produce block version 3 (#12708).
  • Deneb Database Methods: Adapted database methods to accommodate Deneb (#12379).
  • Unused Code Removal: Eliminated an unused function and pending blobs queue (#12920, #12913).
  • Blob Sidecar Syncing: Altered behavior when value is 0 (#12892).

Code Cleanup and Refactor:

  • API Types Cleanup: Reorganized API types for improved readability (#12961).
  • Geth Client Headers: Simplified code for setting geth client headers (#11748).
  • Bug Report Template: Revised requirements for more clarity (#12937, #12891).

Flags and Configuration:

  • Safe Slots to Import Flag: Deprecated this flag for standard alignment (#12964).
  • Holesky Config: Revised the Holesky configuration for new genesis (#12919).

Logging:

  • Genesis State Warning: Will log a warning if the genesis state size is under 1KB (#12897).
  • Debug Log Removal: Excised debug logs for cleaner output (#12836).

Miscellaneous:

  • First Aggregation Timing: Default setting for first aggregation is 7 seconds post-genesis (#12876).
  • Pointer Usage: Modified execution chain to use pointers, reducing copy operations (#12818).

Dependency Updates:

  • Go Version Update: Updated to Go version 1.20.7 (#12707).
  • Go Version Update: Updated to Go version 1.20.9 for better security. (...
Read more

v4.1.0-alpha.1

26 Sep 01:19
57a63f3
Compare
Choose a tag to compare
v4.1.0-alpha.1 Pre-release
Pre-release

Pre-release candidate for v4.1.0 includes support for Holesky testnet.

Full Changelog: v4.0.8...v4.1.0-alpha.1

Proper change log notes to come soon...

v4.1.0-alpha.0

08 Sep 18:26
d506f9b
Compare
Choose a tag to compare
v4.1.0-alpha.0 Pre-release
Pre-release

Pre-release candidate for v4.1.0 includes support for Holesky testnet.

Full Changelog: v4.0.8...v4.1.0-alpha.0

Proper change log notes to come soon...