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_count
tracks the number of connected peers which have completed chain validationnetwork_peer_chain_validation_attempts
tracks the number and status of peer chain validationsnetwork_peer_connection_attempt_count
tracks the number and status of outbound peer requests madenetwork_peer_reputation_cache_size
reports the size of the peer reputation cachebeacon_block_import_total
tracks the number of blocks importedbeacon_reorgs_total
tracks the number of times a different fork is chosen as the new chain headbeacon_published_attestation_total
tracks 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 attestation
messages - 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 LengthPrefixedPayloadDecoder
exception - Fixed an issue where peers were not disconnected when the initial status exchange failed
- Fixed
NullPointerException
when validating attestations which became too old during validation - Updated the
EXPOSE
ports listed in the Dockerfile to match the new defaults - Fixed time until genesis log message to handle time zones correctly
- Fixed
NoSuchElementException
when running a validator that was not in active status - Fixed
IndexOutOfBoundsException
when validating anIndexedAttestation
which included invalid validator indices