Breaking Changes
- External signing API now uses the data field instead of signingRoot field when making signing requests. Update Eth2Signer to ensure it is compatible with this change.
Additions and Improvements
- Further reduced memory usage during periods of non-finalization. Checkpoint states can now be dropped from memory and regenerated on demand.
- Added additional metrics:
beacon_peer_counttracks the number of connected peers which have completed chain validationnetwork_peer_chain_validation_attemptstracks the number and status of peer chain validationsnetwork_peer_connection_attempt_counttracks the number and status of outbound peer requests madenetwork_peer_reputation_cache_sizereports the size of the peer reputation cachebeacon_block_import_totaltracks the number of blocks importedbeacon_reorgs_totaltracks the number of times a different fork is chosen as the new chain headbeacon_published_attestation_totaltracks the total number of attestations sent to the gossip network
- External signing API now uses the data field instead of signingRoot field when making signing requests. Eth2Signer has been updated with this change.
- Enforced the 256 byte limit for Req/Resp error messages
- Blocks by range requests which exceed the maximum block request count are now rejected rather than partially processed as required by the P2P specification
- Improved tracking of peer reputation to avoid reattempting connections to peers we have previously rejected
- ForkChoice data is now persistent to disk, improving startup times especially during long periods of non-finalization
- Reduced the maximum number of blocks held in memory to reduce memory consumption during periods of non-finalization
- Increased the defaults for the target peer count range
- Actively manage peers to ensure we have at least some peers on each of the attestation subnets
- Maintain a minimum number of randomly selected peers, created via outbound connections to provide Sybil resistance
- Updated dependencies to latest versions
Bug Fixes
- Fixed issue where the validator produced attestations in the incorrect slot or committee resulting in
Produce invalid attestationmessages - Fixed an issue where attestations were not published to gossip when the node was not subscribed to the attestation subnet
- Fixed a number of unhandled exceptions in discv5
- Fixed an issue where discv5 may return node responses with a total greater than 5
- Fixed
Trying to reuse disposable LengthPrefixedPayloadDecoderexception - Fixed an issue where peers were not disconnected when the initial status exchange failed
- Fixed
NullPointerExceptionwhen validating attestations which became too old during validation - Updated the
EXPOSEports listed in the Dockerfile to match the new defaults - Fixed time until genesis log message to handle time zones correctly
- Fixed
NoSuchElementExceptionwhen running a validator that was not in active status - Fixed
IndexOutOfBoundsExceptionwhen validating anIndexedAttestationwhich included invalid validator indices