V4.0.0
We are releasing v4.0.0
for the upcoming Capella/Shanghai ("Shapella") upgrade!
This release is mandatory for all mainnet Prsym beacon nodes and validators. The release enables Capella upgrade, scheduled on April 12, 2023, 10:27:35pm UTC
and epoch 194048. Failure to upgrade will result in your node forking off the chain and the validator losing rewards and getting penalized for being offline.
To recap, you must upgrade your mainnet beacon node and validator client to v4.0.0
before April 12, 2023, 10:27:35pm UTC
.
Please have a look below for the changes and detailed change lists.
⚠️ Breaking changes
Below are the breaking changes from v3.2.2
to v4
Breaking changes: flags removed
http-web3provider
enable-db-backup-webhook
bolt-mmap-initial-size
disable-discv5
enable-reorg-late-blocks
disable-attesting-history-db-cache
enable-vectorized-htr
enable-peer-scorer
enable-forkchoice-doubly-linked-tree
enable-back-pull
enable-duty-count-down
head-sync
enable-gossip-batch-aggregation
enable-larger-gossip-history
fallback-web3provider
disable-native-state
enable-only-blinded-beacon-blocks
ropsten
interop-genesis-state
experimental-enable-boundary-checks
disable-back-pull
disable-forkchoice-doubly-linked-tree
Breaking changes: flags deprecated
disable-peer-scorer
disable-vectorized-htr
disable-gossip-batch-aggregation
📝 All changes
Added
- Config: set mainnet capella epoch #12144
- Validator: enable proposer to reorg late block #12075 #121100
- Metric: bls-to-exec count in the operation pool #12133 #12155
- Metric: pubsub metrics racer #12178
- Metric: add late block metric #12091
- Engine-API: Implement
GetPayloadBodies
#11973 - Beacon-API: Implement
GetPayloadAttribute
SSE #12102 #12154 #12160 #12169 - Prysm CLI: add experimental flags to dev mode #12152
- Prysmctl utility: add eth1data to genesis state #12125
- Spec test: EIP4881 spec compliance tests #11754
- Spec test: forkchoice lock to fix flaskyness #12165
Changed
- Prysm: upgrade
v3
tov4
#12134 - Prysm: apply goimports to generated files #12170
- Validator: lower builder circuit breaker thresholds to 5 missed slots per epoch and updates off by 1 #12076
- Validator: reorg late block by default #12146 #12147
- Forkchoice: cleanups #12078
- Forkchoice: remove bouncing attack fix and strength equivocation discarding #12126
- Forkchoice: call FCU at 4s mark if there's no new head #12159
- Forkchoice: better locking on calls to retrieving ancestor root #12162
- Forkchoice: stricker visibility for blockchain package access #12174
- Block processing: optimizing validator balance retrieval by using epoch boundary cache #12083
- Block processing: reduce FCU calls #12091
- Block processing: increase attempted reorgs at the correct spot #12106
- Block processing: remove duplicated bls to exec message pruning #12085
- Block processing: skip hash tree root state when checking optimistic mode #12143
- Prysm-API: mark GetChainHead deprecated #12128
- Logging: add late block logs #12091
- Logging: enhancements and clean ups #12086
- Build: fix bazel remote cache upload #12108
- Build: update cross compile toolchains #12069
- Build: only build non-test targets in
hack/update-go-pbs.sh
#12101 - Build: update rules_go to v0.38.1 and go_version to 1.19.7 #12055
- Build: replace bazel pkg_tar rule with canonical @rules_pkg pkg_tar #12120
- Build: update bazel to 6.1.0 #12121
- Libp2p: updated to latest version #12096 #12132
- Libp2p: make peer scorer permanent default #12138
- Test: disable e2e slasher test #12150
- CLI: derecate the following flags #12148 #12151
Fixed
- Validator: startup deadline #12049
- Prysmctl: withdrawals fork checking logic #12130
- End-to-end test: fix flakes #12074
- End-to-end test: fix altair transition #12124
- Unit test: fix error message in #12123