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