Releases: prysmaticlabs/prysm
v3.2.2-rc.0
We are excited to announce a Sepolia Only Testnet release, v3.2.2-rc.0
🎉
This is a Sepolia Only Testnet release. Please only upgrade your Sepolia beacon node and validator to this release before tomorrow's Shanghai Capella hard fork time 2/28/2023, 4:04:48 AM UTC
. Please DO NOT use this release on Mainnet or any other testnets. Summary:
- This is a mandatory release for Sepolia testnet
- This is not recommended for everything else, including Mainnet and Goerli
Highlight: this release fixes the blind block processing bug when connecting with mev-boost to outsource block constructions and hardens the proposer routine when signing the builder's header.
Added
Validator: picks local vs. mev-boost block based on the highest value #11967
Validator: compare local vs. mev-boost withdrawal roots #11977 #12018
Validator: check unblinded payload root before broadcasting block #12026
Validator: beacon API REST implementations #11971 #11974 #11980
Forkchoice: reorg late block #11981 #12022 (Helpers only. The feature will be ready next release)
Web3Signer: capella support #12001
Metric: gauge for monitoring block arrival delay #11897
Test: capella end to end #11951 #11989 #11993 #12027
Changed
Validator: no longer checking signature when packing BLS changes #12021
Block processor: Prune attestations in mem pool only when head changes #11771
Block processor: state transition hardening #11962 #11968 #11975 #11964 #11992 #
Forkchoice: hardening and clean up #11945 #11961 #12010 #12040
Beacon API: cleanups #12030 #12029
Prysm API: marked old endpoints as deprecated #11997
Fixed
Validator: process blind withdrawal #11995
Validator: use mev-boost for first bellatrix block #12019
Sync: bandwidth limiter panic #11988
Beacon API: correct fork choice endpoint path #11986
Removed
WebUI endpoints #12025
v3.2.1
We are excited to announce the release of Prysm v3.2.1 🎉
This is the first release to support Capella / Shanghai. The Sepolia testnet Capella upgrade time is currently set to 2/28/2023, 4:04:48 AM UTC
. The Goerli testnet and Mainnet upgrade times are still yet to be determined. In Summary:
- This is a mandatory upgrade for Sepolia nodes and validators
- This is a recommended upgrade for Goerli and Mainnet nodes and validators
Known issues
- mev-boost, relayer, and builder support for Capella upgrade are built in but still need to be tested. Given the lack of testing infrastructure, none of the clients could test this for withdrawals testnet. There may be hiccups when using mev-boost on the Capella upgraded testnets
Added
- Capella Withdrawal support #11718 #11751 #11759 #11732 #11796 #11775 #11773 #11760 #11801 #11762 #11822 #11845 #11854 #11848 #11842 #11863 #11862 #11872 #11870 #11878 #11866 #11865 #11883 #11888 #11879 #11896 #11902 #11790 #11904 #11923 #11873 #11936 #11932 #11949 #11906 #11959
- Add Capella fork epoch for Sepolia #11979
- Various Validator client REST implementations (Part of EPF) #11671 #11731 #11757 #11772 #11784 #11785 #11786 #11816 #11827 #11824 #11826 #11812 #11800 #11875 #11835 #11893
- Various Beacon API additions #11788 #11806 #11818 #11849 #11874
- Cache Fork Digest Computation to save compute #11931
- Beacon node can bootstrap from non-genesis state (i.e bellatrix state) #11746
- Refactor bytesutil, add support for go1.20 slice to array conversions #11838
- Add Span information for attestation record save request #11742
- Matric addition #11860
- Identify invalid signature within batch verification #11582 #11741
- Support for getting consensus values from beacon config #11798
- EIP-4881: Spec implementation #11720
- Test helper to generate valid bls-to-exec message #11836
- Spec tests v1.3.0 rc.2 #11929
Changed
- Prysm CLI utility support for exit #11735
- Beacon API improvement #11789 #11947
- Prysm API get block RPC #11834
- Prysm API cleanups #11808 #11829 #11828
- Block processing cleanup #11764, #11763 #11795 #11796 #11833 #11858
- Forkchoice logging improvements #11849
- Syncing logging improvement #11851
- Validator client set event improvement for readability and error handling #11797
- Engine API implementation cleanups #11717
- End to end test improvements #11704 #11730 #11733 #11738 #11734 #11802 #11810 #11811 #11850 #11856 #11867
- Prysm CLI withdrawal ux improvement #11909
- Better log for the block that never became head #11917
Fixed
- Beacon API #11755 #11749 #11723 #11783
- Use the correct attribute if there's a payload ID cache miss #11918
- Call FCU with an attribute on non-head block #11919
- Sparse merkle trie bug fix #11778
- Waiting For Bandwidth Issue While Syncing #11853
- State Fetcher to retrieve correct epoch #11820
- Exit properly with terminal block hash #11892
- PrepareBeaconProposer API duplicating validator indexes when not persisted in DB #11912
- Multiclient end-to-end #11803
- Deep source warnings #11814
Removed
- Remove cache lookup and lock request for database boltdb transaction #11745
v3.2.0
v3.2.0
Happy New Year everyone! We are excited to announce the release of Prysm v3.2.0.
This release contains a number of great features and improvements as well as progress towards the upcoming Capella upgrade. This release also includes some API changes which are reflected in the minor version bump. If you are using mev-boost, you will need to update your prysm client to v3.2.0 before updating your mev-boost instance in the future. See flashbots/mev-boost#404 for more details.
Added
- Support for non-english mnemonic phrases in wallet creation. #11543
- Exit validator without confirmation prompt using
--force-exit
flag #11588 - Progress on Capella and eip-4844 upgrades #11566 #11596 #11601 #11614 #11618 #11624 #11634 #11638 #11644 #11646 #11655 #11647 #11656 #11657 #11661 #11662 #11660 #11658 #11631 #11686 #11688 #11684 #11689 #11690 #11687 #11683 #11713 #11716
- Added randao json endpoint.
/eth/v1/beacon/states/{state_id}/randao
#11609 #11650 #11710 #11708 - Added liveness endpoint
/eth/v1/validator/liveness/{epoch}
#11617 - Progress on adding json-api support for prysm validator #11612 #11633 #11654 #11682 #11679 #11695 #11712
- Prysmctl can now generate genesis.ssz for forks after phase0. #11677
Changed
--chain-config-file
now throws an error if used concurrently with--network
flag. #10863- Added more histogram metrics for block arrival latency times
block_arrival_latency_milliseconds
#11589 - Priority queue RetrieveByKey now uses read lock instead of write lock #11603
- Use custom types for certain ethclient requests. Fixes an issue when using prysm on gnosis chain. #11586
- Updted forkchoice endpoint
/eth/v1/debug/forkchoice
(was/eth/v1/debug/beacon/forkchoice
) #11680 - Include empty fields in builder json client. #11673
- Computing committee assignments for slots older than the oldest historical root in the beacon state is now forbidden #11722
Removed
- Deprecated protoarray tests have been removed #11607
Fixed
- Unlock pending block queue if there is any error on inserting a block #11600
- Prysmctl generate-genesis yaml file now uses the correct format #11635
- ENR serialization now correctly serializes some inputs that did not work previously #11648
- Use finalized block hash if a payload ID cache miss occurs #11653
- prysm.sh now works correctly with Mac M1 chips (it downloads darwin-arm64 binaries) #11675
- Use the correct block root for block events api #11666
- Users running a VPN should be able to make p2p dials. #11599
- Several minor typos and code cleanups #11572 #11594 #11593 #11598 #11602 #11622 #11705 #11670 #11711 #11726
Security
v3.1.2
v3.1.2
Welcome to another patch release for Prysm! This release includes a number of bug fixes and improvements to the beacon node, validator client, and prysmctl. We recommend upgrading to this release at your earliest convenience.
Added
- Timestamp field to forkchoice node json responses #11394 #11403
- Further tests to non-trivial functions of the builder service #11214
- Support for VotedFraction in forkchoice #11421
- Metrics for reorg distance and depths #11435
- Support for optimistic sync spectests #11391
- CLI flag for customizing engine endpoint timeout --engine-endpoint-timeout-seconds #11489
- Support for lodestar identification in p2p monitoring #11536
--enable-full-ssz-data-logging
to display debug ssz data on gossip messages that fail validation #11524- Progress on capella and withdrawals support #11552 #11563 #11141 #11569
- Validator exit can be performed from prysmctl #11515 #11575
- Blinded block support through the json API #11538
Changed
- Refactoring / cleanup of keymanager #11331
- Refactoring / improvements in initial sync #11344
- Forkchoice hardening #11397 #11402
- Improved log warnings when fee recipient is not set #11395
- Changed ready for merge log frequency to 1 minute #11410
- Move log
Unable to cache headers for execution client votes
to debug #11398 - Rename field in invalid pruned blocks log #11411
- Validate checkpoint slot #11396
- Return an error if marshaling invalid Uint256 #11347
- Fallback to uncached getPayload if timeout #11404
- Update bazel to 5.3.0 #11427
- godocs cleanup and other cleanups #11428
- Forkchoice track highest received root #11434
- Metrics updated block arrival time histograms #11424
- Log error and continue when proposer boost roots are missing #11459
- Do not return on error during on_tick #11463
- Do not return on error after update head #11470
- Update default RPC HTTP timeout to 30s #11487
- Improved fee recipient UX. #11307
- Produce block skips mev-boost #11488
- Builder getPayload timeout set to 3s #11413
- Make stategen aware of forkchoice #11439
- Increase verbosity of warning to error when new head cannot be determined when receiving an attestation #11514
- Provide justified balances to forkchoice #11513
- Update head continues without attestations #11503
- Migrate historical states in another goroutine to avoid blocking block execution #11501
- Made API middleware structs public #11547
- Updated web UI to v2.0.2 #11559
- Default value for
--block-batch-limit-burst-factor
changed from 10 to 2. #11546 - Vendored leaky bucket implementation with minor modifications #11560
Deprecated
--disable-native-state
flag and associated feature #11268
Removed
- Unused WithTimeout for builder client #11420
- Optimistic sync candidate check #11453
- Cleans up proto states #11445 #11561
- Protoarray implementation of forkchoice #11455
Fixed
- Block fields to return a fixed sized array rather than slice #11375
- Lost cancel in validator runner #11429
- Release held lock on error #11412
- Properly submit blinded blocks #11483
- Unwanted wrapper of gRPC status errors #11486
- Sync tests fixed and updated spectests to 1.2.0 #11498 #11492
- Prevent timeTillDuty from reporting a negative value #11512
- Don't mark /healthz as unhealthy when mev-boost relayer is down #11506
- Proposer index cache and slot is used for GetProposerDuties #11521
- Properly retrieve values for validator monitoring flag from cli #11537
- Fee recipient fixes and persistence #11540
- Handle panic when rpc client is not yet initialized #11528
- Improved comments and error messages #11550
- SSL support for multiple gRPC endpoints #11556
- Addressed some tool feedback and code complaints #11555
- Handle unaggregated attestations in the event feed #11558
- Prune / expire payload ID cache entries when using beacon json API #11568
- Payload ID cache may have missed on skip slots due to incorrect key computation #11567
Security
- Libp2p updated to v0.22.0 #11309
v3.1.1
This is another highly recommended release. It contains a forkchoice pruning fix and a gossipsub optimization. It is recommended to upgrade to this release before the Merge next week, which is currently tracking for Wed Sept 14 (https://bordel.wtf/). Happy staking! See you on the other side!
Fixed
v3.1.0
v3.1.0
Updating to this release is highly recommended as it contains several important fixes and features for the merge. You must be using Prysm v3 or later before Bellatrix activates on September 6th.
Important docs links
Added
- Add time until next duty in epoch logs for validator #11301
- Builder API: Added support for deleting gas limit endpoint #11290
- Added debug endpoint GetForkChoice for doubly-linked-tree #11312 #11325
- Added support for engine API headers.
--execution-headers=key=value
#11330 - New merge specific metrics. See #11367
Changed
- Deposit cache now returns shallow copy of deposits #11273
- Updated go-ethereum dependency to v1.10.23
- Updated LLVM compiler version to 13.0.1
- Builder API: filter 0 bid and empty tx root responses #11313
- Allow attestations/blocks to be received by beacon node when the nodes only optimistically synced #11319 #11320
- Add depth and distance to CommonAncestorRoot reorg object #11315
- Allocate slice array to expected length in several methods #11317
- Updated lighthouse to version v3 in E2E runner
- Improved handling of execution client errors #11321 #11359
- Updated web3signer version in E2E runner #11339
- Improved error messages for db unmarshalling failures in ancestor state lookup #11342
- Only updated finalized checkpoints in database if its more recent than previous checkpoint #11356
Removed
Fixed
- Fixed improper wrapping of certain errors #11282
- Only log fee recipient message if changed #11295 #11296
- Simplify ListAttestations RPC method #11292 fixes #11291
- Fix several RPC methods to be aware of the appropriate fork #11274
- Fixed encoding issue with builder API register validator method. #11299 fixes #11297
- Improved blinded block handling in API. #11304 fixes #11293
- Fixed IPC path for windows users #11324
- Fix proposal of blinded blocks #11346
- Prysm no longer crashes on start up if builder endpoint is not available #11380
v3.0.0
v3.0.0
We are happy to announce Prysm v3.0.0. This is our merge release. All mainnet users MUST upgrade to this release before the Bellatrix fork by Sept 6, 2022, 11:34:47am UTC. Users who fail to upgrade will fork off from the canonical chain. We recommend upgrading to v3.0.0 at the earliest convenience. Asides from upgrades, users will need to make changes to the knowledge that's similar to previous testnets. We recommend the following preparation for the merge doc: https://docs.prylabs.network/docs/prepare-for-merge
Added
- Passing spectests v1.2.0-rc.3 #11261
- prysmctl: Generate genesis state via
prysmctl testnet generate-genesis [command options] [arguments...]
#11259 - Keymanager: Add support for setting the gas limit via API. #11155
- Merge: Mainnet merge epoch and TTD defined! #11207
- Validator: Added expected wait time for pending validator activation in log message. #11213
- Go: Prysm now uses proper versioning suffix
v3
for this release. GoDocs and downstream users can now import prysm as expected for go projects. #11083 - Builder API: Register validator via HTTP REST Beacon API endpoint
/eth/v1/validator/register_validator
#11225 - Cross compilation support for Mac ARM64 chips (Mac M1, M2) #10981
Changed
- Require an execution client
--execution-endpoint=...
. The default value has changed tolocalhost:8551
and you must use the jwt flag--jwt-secret=...
. Review the docs for more information #10921 --http-web3provider
has been renamed to--execution-endpoint
. Please update your configuration as--http-web3provider
will be removed in a future release. #11275 #11133- Insert attestations into forkchoice sooner #11260
- Builder API:
gas_limit
changed from int to string to support JSON / YAML configs.--suggested-gas-limit
changed from int to string. #11264 - Fork choice: Improved handling of double locks / deadlocks #11271 #11269
- Lower libp2p log level #11266
- Improved re-org logs with additional metadata #11253
- Improved error messages found by semgrep #11244
- Prysm Web UI updated to release v2.0.1 #11240
- Protobuf message renaming (non-breaking changes) #11096
- Enabled feature to use gohashtree by default. Disable with
--disable-vectorized-htr
#11229 #11224 - Enabled fork choice doubly linked tree feature by default. Disable with
--disable-forkchoice-doubly-linked-tree
#11212 - Remote signer: Renamed some field names to better represent block types (non-breaking changes for gRPC users, possibly breaking change for JSON API users) #11099
- Builder API: require header and payload root match. #11223
- Improved responses for json-rpc requests batching when using blinded beacon blocks. #11210
- Builder API: Improved error messages #11199
- Builder API: Issue warning when validator expects builder ready beacon node, but beacon node is not configured with a relay. #10203
- Execution API: Improved payload ID to handle reorg scenarios #11186
Deprecated
- Several features have been promoted to stable or removed. The following flags are now deprecated and will be removed in a future release.
--enable-db-backup-webhook
,--bolt-mmap-initial-size
,--disable-discv5
,--disable-attesting-history-db-cache
,--enable-vectorized-htr
,--enable-peer-scorer
,--enable-forkchoice-doubly-linked-tree
,--enable-duty-count-down
,--head-sync
,--enable-gossip-batch-aggregateion
,--enable-larger-gossip-history
,--fallback-web3provider
,--use-check-point-cache
. #11284 #11281 #11276 #11231 #10921 #11121 - Several beacon API endpoints marked as deprecated #10946
Removed
- Logging: Removed phase0 fields from validator performance log messages #11265
- Deprecated slasher protos have been removed #11257
- Deprecated beacon API endpoints removed:
GetBeaconState
,ProduceBlock
,ListForkChoiceHeads
,ListBlocks
,SubmitValidatorRegistration
,GetBlock
,ProposeBlock
#11251 #11243 #11242 #11106 - API: Forkchoice method
GetForkChoice
has been removed. #11105 - All previously deprecated feature flags have been removed.
--enable-active-balance-cache
,--correctly-prune-canonical-atts
,--correctly-insert-orphaned-atts
,--enable-next-slot-state-cache
,--enable-batch-gossip-verification
,--enable-get-block-optimizations
,--enable-balance-trie-computation
,--disable-next-slot-state-cache
,--attestation-aggregation-strategy
,--attestation-aggregation-force-opt-maxcover
,--pyrmont
,--disable-get-block-optimizations
,--disable-proposer-atts-selection-using-max-cover
,--disable-optimized-balance-update
,--disable-active-balance-cache
,--disable-balance-trie-computation
,--disable-batch-gossip-verification
,--disable-correctly-prune-canonical-atts
,--disable-correctly-insert-orphaned-atts
,--enable-native-state
,--enable-peer-scorer
,--enable-gossip-batch-aggregation
,--experimental-disable-boundry-checks
#11125 - Validator Web API: Removed unused ImportAccounts and DeleteAccounts rpc options #11086
Fixed
- Keymanager API: Status enum values are now returned as lowercase strings. #11194
- Misc builder API fixes #11228
- API: Fix GetBlock to return canonical block #11221
- Cache: Fix cache overwrite policy for bellatrix proposer payload ID cache. #11191
- Fixed string slice flags with file based configuration #11166
Security
- Upgrade your Prysm beacon node and validator before the merge!
v2.1.4
As we prepare our v3
mainnet release for The Merge, v2.1.4
marks the end of the v2
era. Node operators and validators are highly encouraged to upgrade to release v2.1.4
- many bug fixes and improvements have been included in preparation for The Merge. v3
will contain breaking changes, and will be released within the next few weeks. Using v2.1.4
in the meantime will give you access to a more streamlined user experience. See our v2.1.4 doc to learn how to use v2.1.4 to run a Merge-ready configuration on the Goerli-Prater network pair.
This release consists 181 commits. These notes reflect only the highlights in the changelist here: v2.1.3...v2.1.4
Added
- Sepolia testnet configs
--sepolia
#10940 #10962 #11131 - Goerli as an alias to Prater and testnet configs
--prater
or--goerli
#11065 #11072 #11152 - Fee recipient API for key manager #10850
- YML config flag support for web3 signer #11041
- Validator registration API for web3 signer #10964 #11055
- JSON tcontent type with optional metadata #11058
- Flashbots MEV boost support #10894 #10907 #10924 #10908 #10942 #10953 #10954 #10992 #11004 #11021 #11124 #11176
- Store blind block (i.e block with payload header) instead of full block (i.e. block with payload) for storage efficiency (currently only available when the
enable-only-blinded-beacon-blocks
feature flag is enabled) #11010 - Pcli utility support to print blinded block #11067
- New Web v2.0 release into Prysm #11007
Changed
- Native state improvement is enabled by default #10898
- Use native blocks instead of protobuf blocks #10885 #11158
- Peer scorer is enabled by default #11115
- Enable fastssz to use vectorized HTR hash algorithm improvement #10819
- Forkchoice store refactor and cleanups #10893 #10905 #10903 #10953 #10977 #10955 #10840 #10980 #10979
- Update libp2p library dependency #10958
- RPC proposer duty is now allowed next epoch query #11015
- Do not print traces with
log.withError(err)
#11116 - Testnets are running with pre-defined feature flags #11098
Fixed
- Ignore nil forkchoice node when saving orphaned atts #10930
- Sync: better handling of missing state summary in DB #11167
- Validator: creates invalid terminal block using the same timestamp as payload #11129
- P2P: uses incorrect goodbye codes #11168
- P2p: defaults Incorrectly to using Mplex, which results in losing Teku peers #11169
- Disable returning future state for API #10915
- Eth1 connection API panic #10938
Removed
- Deprecate Step Parameter from our Block By Range Requests #10914
v2.1.4-rc.1
- If your testnet nodes are running before v2.1.4-rc.0, this release is mandatory for Prater/Goerli for the merge.
- If your testnet nodes are running v2.1.4-rc.0, this release is highly recommended for the bug fixes below.
Fixed
- Sync: better handling of missing state summary in DB #11167
- Validator: creates invalid terminal block using the same timestamp as payload #11129
- P2P: uses incorrect goodbye codes #11168
- P2p: defaults Incorrectly to using Mplex, which results in losing Teku peers #11169
Changed
v2.1.4-rc.0
⚠️ Release candidate: do not use this on the mainnet ⚠️
This is a release candidate for the Goerli / Prater beacon chain. It has not been tested long enough to be considered production-ready and is not recommended for mainnet usage. This is recommended to be used on all the testnets (i.e. Kiln, Ropsten, Sepolia, and Prater). We would appreciate your feedback for this release.
Added
- Add Goerli as an alias to Prater #11065
- Add Goerli fork epoch and TTD #11072
- Support for MEV extraction through mev-boost and builder network. Instructions #10924 #10908 #10942 #10953 #11021 #11052
- Store blind block (i.e block with payload header) instead of full block (i.e. block with payload) for storage efficiency #11010
- Add Web3signer for validator registration #10964
- Add Pcli support to print blinded blocks #11067
Changed
- Native state improvement is enabled by default #10898