v0.12.3
Pre-release
Pre-release
Prebuilt binaries are available from https://bintray.com/consensys/pegasys-repo/teku/0.12.3#files
Breaking Changes
- Removed
--validators-unencrypted-key-files
option. This was only intended for early interop testing. Keys should be loaded from encrypted keystores.
Additions and Improvements
- Add basic built-in slashing protection. Note that this only a last line of defence against bugs in the beacon node and will not prevent slashing if validator keys are run in multiple processes simultaneously.
- Validator duty logging is now enabled by default. It can be disabled with
--log-include-validator-duties-enabled=false
- Add updated Medalla bootnodes
- Updated to be compliant with beacon chain spec 0.12.2
- Prioritise more recent attestations when creating blocks as they pay higher rewards
- Refuse to start if the existing database is from a different network to the current configuration
- Added rate limiting for remote peers based on both number of blocks requested and total number of requests made
- Discovery now requires confirmation from multiple peers before updating the external IP reported by the node
- Improved interoperability with other clients: seqno field is now optional for libp2p messages
- REST API updates:
- Added genesis validator root to the
/node/fork
REST API - Added
/validator/aggregate_attestation
- Added
/validator/persistent_subnets_subscription
- Added
/validator/beacon_committee_subscription
- Added
/validator/aggregate_and_proofs
- Added
/node/pending_attestation_count
- Added genesis validator root to the
- Report the current peer count in "time to genesis"
- Added UInt64 overflow and underflow detection
- Improved performance of list shuffling operations
- Snappy compression is now enabled by default for custom networks. It can be disabled with
--p2p-snappy-enabled=false
Bug Fixes
- Fixed vector for DOS attack caused by not throttling libp2p response rate. (See libp2p/jvm-libp2p#127 and ethereum/public-attacknets#7 for futher details)
- Fixed issue that delayed publication of created attestations by a slot
- Fixed "Invalid attestation: Signature is invalid" errors caused by incorrect caching of committee selections (see #2501 for further details)
- Fixed issues where validators failed to perform duties because the node incorrectly returned to syncing state
- Fixed
--logging
option to accept lowercasedebug
option. Renamed thedebug
subcommand to avoid the naming conflict - Avoid lock contention when reading in-memory storage metrics
- Reduced memory usage when loading large numbers of scrypt encoded keystores
- Increased read timeout for ETH1 requests to avoid repeatedly timing out when the ETH1 node is slow
- Reduced noise in logs from
ClosedChannelException
when a peer unexpected disconnects - Fixed
IllegalArgumentException
when RPC response code was greater than 127 - Fixed
IllegalArgumentException
when unexpectedly short discovery messages were received - Fixed very frequenet
InternalErrorException
when a peer disconnected during initial libp2p handshake - Fixed crash during shutdown caused by metrics accessing RocksDB after it was closed
- Restricted the maximum epoch value accepted by REST API to ensure it can be converted to a slot without overflowing uint64
- Fixed help text for
--p2p-discovery-bootnodes