Breaking Changes
- The
--eth1-enabledoption removed. ETH1 will be enabled when an--eth1-endpointis provided and otherwise disabled. - CLI option
--validators-key-filerenamed to--validators-unencrypted-key-fileto avoid ambiguity from similar
named CLI option--validators-key-fileswhich is used to specify encrypted validator keystore files. - Added CLI option
--rest-api-host-whitelistwhich restricts access to the REST API. Defaults to [localhost, 127.0.0.1] - External signer API has been changed to not include the type being signed. Please ensure you update to the latest version of Eth2Signer
peer generateandgenesis mocksubcommands now use lower case options consistently:
--outputFileis renamed--output-file,--validatorCountis renamed--validator-count, and--genesisTimeis renamed--genesis-time
Additions and Improvements
--network wittiincludes the final configuration for the Witti testnet. The genesis state is included so an ETH1 endpoint is no longer required when connecting to Witti- Teku can now use Infura as the ETH1 endpoint
- ETH1 node is no longer required to maintain historic world state
- Added
--log-include-validator-duties-enabledoption to enable log messages when validator clients produce blocks, attestations or aggregates (defaults to off) - Improved logging of errors during execution of validator duties to be more informative, less noisy and set log levels more appropriately
- Teku will now exit when an
OutOfMemoryErroris encountered to allow tools like systemd to restart it - Added support for compiling from source using Java 14
- Improved error messages for a number of configuration errors
- Added protection for DNS rebinding attacks to the REST API via host whitelisting. Configure available hosts with the
--rest-api-host-whitelistoption (defaults to[localhost, 127.0.0.1]) - Simplified API for external signers
- Added support for the
namefield in keystore files - Improved reporting of errors when using
BOTHor default log destinations. Unhandled exceptions are now reported to the console but without stack traces. The full stack trace is available in the log file - Report (to log file) the list of validators being run at startup.
- Append to existing log files rather than rolling them. Avoids the potential for logs to be lost when rolling
Bug Fixes
- Improved selection of attestations to include in proposed blocks.
- Include attestations received via gossip
- Exclude attestations that have already been included in blocks
- Fix issue where attestations with an incompatible source were included, resulting in an invalid block
- Fixed a file descriptor leak caused by not correctly disconnecting duplicate peer connections
- Fixed race condition when the genesis event occurs which prevented the validator client from subscribing to persistent committee topics and retrieving the initial duties
- ETH1 chain processing recovers better after interruptions to the ETH1 node
- RPC
STATUSmessages now use the finalized checkpoint from the state, not the fork choice store. Fixes a networking incompatibility with Lighthouse when only genesis has been finalized - Fix incompatibility with Lighthouse in how RPC
METADATArequests are made - Large RPC response chunks (> 90K) are now correctly processed
- Improved validation of received attestations
- Fixed a number of race conditions which could lead to inconsistent data being reported via the REST API
- Stopped logging the Javalin ascii art banner during startup
- The
peer generatesubcommand now provides a useful error message when the output file can not be written - The
peer generatesubcommand no longer silently overwrites an existing output file - Interop validators are no longer loaded when no validator keys were specified
- Fixed or suppressed a number of
ERRORlevel log messages - Non-fatal errors are no longer reported at
FATALlog level