Releases: prysmaticlabs/prysm
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
v2.1.3
This release contains many fixes, additions, and improvements found in preparation for the Merge.
Added
- Many fuzz test additions #10682 #10668 #10757 #10798
- Support bellatrix blocks with web3signer #10590
- Support for the Sepolia testnet with
--terminal-total-difficulty-override 17000000000000000
. The override flag is required in this release. #10700 #10868 #10880 #10886 - Support for the Ropsten testnet. No override flag required #10762 #10817
- JSON API allows SSZ-serialized blocks in
publishBlock
#10663 - JSON API allows SSZ-serialized blocks in
publishBlindedBlock
#10679 - JSON API allows SSZ-serialized requests in
produceBlockV2
andproduceBlindedBlock
#10697 - Progress towards Builder API and MEV boost support (not ready for testing in this release) #10724 #10785 #10789 #10749 #10825 #10882 #10883
- Support for
DOMAIN_APPLICATION_MARK
configuration #10740 - Ignore subset aggregates if a better aggregate has been seen already #10674
- Reinsertion of reorg'd attestations #10767
- Command
beacon-chain generate-auth-secret
to assist with generating a hex encoded secret for engine API #10733 - Return optimistic status to
ChainHead
related grpc service #10842 - TTD log and prometheus metric #10851
- Panda ascii art banner for the merge! #10773
Fixed
/eth/v1/beacon/blinded_blocks
JSON API endpoint #10673- SSZ handling of JSON API payloads #10687 #10760
- Config registry fixes #10694 fixed by #10683
- Withdrawal epoch overflows #10739
- Race condition with blockchain service Head() #10741
- Race condition with validator's highest valid slot accessor #10722
- Do not update cache with the result of a cancelled request #10786
validator_index
should be a string integer rather than a number integer per spec. #10814- Use timestamp heuristic to determine deposits to process rather than simple calculation of follow distance #10806
- Return
IsOptimistic
inValidateSync
responses #10692
Changed
- Improvements to forkchoice #10675 #10651 #10705 #10658 #10702 #10659 #10768 #10776 #10783 #10801 #10774 #10784 #10831 #10823
- Invalid checksummed (or no checksum) addresses used for fee recipient will log a warning. #10664 fixes #10631, #10684
- Use cache backed
getBlock
method in several places of blockchain package #10688 - Reduced log frequency of "beacon node doesn't have a parent in db with root" error #10689
- Improved nil checks for state management #10701
- Enhanced debug logs for p2p block validation #10698
- Many helpful refactoring and cosmetic changes #10686 #10710 #10706 #10726 #10729 #10707 #10731 #10736 #10732 #10727 #10756 #10816 #10824 #10841 #10874 #10704 #10862
- Move WARN level message about weak subjectivity sync and improve message content #10699
- Handle connection closing for web3/eth1 nil connection #10714
- Testing improvements #10711 #10728 #10665 #10753 #10756 #10775
- E2E test improvements #10717 #10715 #10708 #10696 #10751 #10758 #10769 #10778 #10808 #10849 #10836 #10878
- Increase file descriptor limit up to the maximum by default #10650
- Improved classification of "bad blocks" #10681
- Updated engine API error code handling #10730
- Improved "Synced new block" message to include minimal information based on the log verbosity. #10724 #10792
- Add nil checks for nil finalized checkpoints #10748 #10881
- Change weak subjectivity sync to use the most recent finalized state rather than the oldest state within the current period. #10723
- Ensure a finalized root can't be all zeros #10791
- Improved db lookup of HighestSlotBlocksBelow to start from the end of the index rather than the beginning. #10772 #10802
- Improved packing of state balances for hashtreeroot #10830
- Improved field trie recomputation #10884
Removed
- Removed handling of
INVALID_TERMINAL_BLOCK
response from engine API #10646
v2.1.3-rc.4 (Sepolia Testnet)
⚠️ Release candidate: do not use this on the mainnet ⚠️
This is a release candidate for the Sepolia beacon chain. It's not production ready and not recommended for mainnet usage. Please only use this for testnets, we would appreciate your feedback for this release.
Summary
To participate in the Sepolia beacon chain, please use the --sepolia
CLI flag. Similar to Ropsten, there will be another follow-up release to adjust the TTD
Added
- New CLI flag
generate-auth-secret
to generate jwt #10733 - New
total_terminal_difficulty
metric #10851 - New panda merge banner 🐼 #10773
- New sepolia config and CLI flag
--sepolia
#10868
Changed
Fixed
v2.1.3-rc.3
Ropsten Testnet Pre-release rc.3
⚠️ Release candidate: do not use this on the mainnet ⚠️
This is a release candidate for the Ropsten beacon chain. It's not production ready and not recommended for mainnet usage. Please only use this for testnets, we would appreciate your feedback for this release.
Summary
The community has decided on Ropsten TTD to be 50000000000000000
. Your beacon node MUST be upgraded to v2.1.3-rc.3
when using --ropsten
CLI flag. If you wish to stay on v2.1.3-rc.2
, your beacon node MUST have --override.terminaltotaldifficulty 50000000000000000
CLI flag.
Added
- Reinsert reorg attestations back into block #10767
Changed
- Update Ropsten TTD to
50000000000000000
#10817
Fixed
v2.1.3-rc.2
Ropsten Pre-release rc.2
⚠️ Release candidate: do not use this on the mainnet ⚠️
This is a release candidate for the Prater beacon chain. It's not production ready and not recommended for mainnet usage. Please only use this for testnets, and we would appreciate your feedback for this release.
Summary
The community has updated the Ropsten config TTD to 100000000000000000000000
. Your beacon node MUST be upgraded to v2.1.3-rc.2
instead of v2.1.3-rc.0
to perform the merge transition successfully. We apologize for the inconvenience, and happy testing!
Added
- Added the following CLI flags for merge transition config overrides #10763
-terminal-total-difficulty-override
-terminal-block-hash-override
-terminal-block-hash-epoch-override
- Ignore sync contribution subset aggregates #10674