Skip to content

Releases: Consensys/teku

v0.11.4

17 Jun 02:58
f808391
Compare
Choose a tag to compare
v0.11.4 Pre-release
Pre-release

Breaking Changes

  • teku validator generate no longer sends ETH1 deposit transactions. It only generates BLS keys for validators.
    The new teku validator generate-and-register subcommand can be used to generate and register validators in one step

Additions and Improvements

  • Renamed --metrics-host-whitelist to --metrics-host-allowlist and --rest-api-host-whitelist to --rest-api-host-allowlist
  • Added /v1/node/version and /v1/node/identity REST endpoints. Anyone using /node/version should switch to use
    the new endpoint, as /node/version will be removed in a future release.
  • Added --validators-graffiti="GRAFFITI" command line option to allow graffiti to be used in block production.
  • The Teku version is now printed at startup
  • Eth1 deposits now load on startup from the local database, then sync to the eth1 provider once loading is complete.
    A hidden flag has been added to disable this functionality if it causes any issues - --Xeth1-deposits-from-storage-enabled=false.
    Local storage requirements will increase slightly due to the need to store each deposit block
    event from the eth1 provider so that it can be replayed during restarts.
  • Added a teku debug db get-deposits subcommand to load report the ETH1 deposits from the database. This is not intended for normal use but can be useful when debugging issues.
  • The directory structure created by validator generate has changed. All files are now generated in a single directory.
    Filename of withdrawal key is now named using the validator public key eg 814a1a6_validator.json 814a1a6_withdrawal.json
  • Validator voluntary exit gossip topics are now supported
  • Proposer slashing gossip topics are now supported
  • Attester slashing gossip topics are now supported
  • Added support for Gossipsub 1.1
  • Building from downloaded source packages rather than git checkout now works
  • Memory requirements during non-finalized periods has been reduced, but further work is required in this area
  • REST API documentation is automatically published to https://pegasyseng.github.io/teku/ as soon as changes are merged
  • A memory dump is now captured if Teku encounters and out of memory error. By default these are
    written to the current work directory but an alternate location can be specified by setting the
    environment variable TEKU_OPTS=-XX:HeapDumpPath=/path
    This can be disabled by setting TEKU_OPTS=-XX:-HeapDumpOnOutOfMemoryError
  • Treat attestations from verified blocks or produced in the validator as "seen" for gossip handling
  • Added metrics to report the active and live validators for the current and previous epochs
    (beacon_previous_live_validators, beacon_previous_active_validators, beacon_current_live_validators, beacon_current_active_validators)
  • Added metrics to report on the in-memory store. Includes state cache hit/miss rates and the current number of states, blocks and checkpoint states held in the store.
  • Optimised decompression of points in BLS
  • Keystores generated with Teku are now compatible with Lighthouse
  • Added additional logging during start up to provide progress information while hot states are being regenerated
  • Integrated the new fork choice reference tests

Bug Fixes

  • Fixed StackOverflowException from fork choice get_ancestor method during long periods of non-finalization
  • Fixed issue where ETH1 events could be missed immediately after startup resulting in an incorrect genesis state being generated
  • Fixed issue where the beacon node was considered in-sync prior to finding any peers
  • Recalculate validator duties when a block is imported which may affect duty scheudling.
    This occurs when blocks are delayed for more than epoch, for example due to a network outage
  • Block production no longer fails if the Eth1Data vote in the new block is the last required vote
    for that Eth1Data and the new Eth1Data allows inclusion of new deposits
  • io.netty.handler.timeout.ReadTimeoutException and io.netty.channel.ExtendedClosedChannelException are no longer reported at ERROR level
  • Fix attestation is invalid error messages caused by a race condition verifying signatures
  • Support zero-roundtrip multistream negotiations in libp2p
  • Fix missed assertion in fork choice which could lead to an IndexOutOfBoundException (not consensus affecting)
  • Clarified the "Minimum genesis time reached" message to be clearer that this only indicates that an
    ETH1 block satisfying the time criteria for genesis has been found.
    Additional validators may still be required before the genesis state is known.
  • Fixed a number of error messages that were logged during Teku shutdown
  • Respect the optional epoch paramter to the /beacon/validators REST API endpoint
  • Fix "Command too long" error when running on Windows
  • Fixed issue where exceptions may be reported by the uncaught exception handler instead of reported back to the original caller.
    This resulted in some RPC streams not being closed correctly.
  • Fixed execessive use of CPU regenerating states to map slots to block roots while servicing beacon block by root RPC requests.

v0.11.3

02 Jun 23:33
6f2b468
Compare
Choose a tag to compare
v0.11.3 Pre-release
Pre-release

Breaking Changes

  • The --eth1-enabled option removed. ETH1 will be enabled when an --eth1-endpoint is provided and otherwise disabled.
  • CLI option --validators-key-file renamed to --validators-unencrypted-key-file to avoid ambiguity from similar
    named CLI option --validators-key-files which is used to specify encrypted validator keystore files.
  • Added CLI option --rest-api-host-whitelist which 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 generate and genesis mock subcommands now use lower case options consistently:
    --outputFile is renamed --output-file, --validatorCount is renamed --validator-count, and --genesisTime is renamed --genesis-time

Additions and Improvements

  • --network witti includes 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-enabled option 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 OutOfMemoryError is 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-whitelist option (defaults to [localhost, 127.0.0.1])
  • Simplified API for external signers
  • Added support for the name field in keystore files
  • Improved reporting of errors when using BOTH or 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 STATUS messages 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 METADATA requests 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 generate subcommand now provides a useful error message when the output file can not be written
  • The peer generate subcommand 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 ERROR level log messages
  • Non-fatal errors are no longer reported at FATAL log level

v0.11.2

21 May 01:17
5c2f810
Compare
Choose a tag to compare
v0.11.2 Pre-release
Pre-release

Upcoming Breaking Changes

  • In a future release the --eth1-enabled option will be removed.
    ETH1 will be enabled when an --eth1-endpoint is provided and otherwise disabled.

Additions and Improvements

  • Updated to spec version v0.11.3.
  • Improved recovery from network changes. Peers are now disconnected if they do not respond for a
    period ensuring upstream network interruptions are detected and peers can reconnect.
  • The node's ENR is printed at startup even if the genesis state is not yet known.
    As per the beacon chain spec, the network ports are still not opened until the genesis state is known.
  • OpenAPI schemas are now more compatible with code generating tools.
  • Include block root in /beacon/block responses.
  • Improved error messages when invalid or incompatible CLI options are provided.
  • Improved peer discovery by filtering out peers with incompatible eth2 ENR fields.
  • Improved performance of BLS signature verification
  • Updated to jvm-libp2p 0.4.0

Bug Fixes

  • Fixed a deadlock condition which could cause block imports to silently stall.
  • Initial sync now reaches chain head correctly even when the chain has not finalized for more than 10 epochs.
  • Fixed NullPointerException and ArrayIndexOutOfBoundException intermittently encountered when importing blocks
    due to a concurrency issue in batch signature verification.
  • /beacon/chainhead reported incorrect slot and block root data.
  • Fixed a range of race conditions when loading chain data which could result in inconsistent views
    of the data or data not being found as it moved from recent to finalized storage.
  • Significantly reduced the number of ERROR level log messages.
    Invalid network data or unexpectedly disconnected peers is now logged at DEBUG level.
  • Storage system did not correctly prune blocks loaded from disk on startup when they became finalized.

Known Issues

  • This release provides support for the Witti testnet via --network witti however the configuration
    for this testnet is not yet stable and will likely differ from the one currently used.
  • The Schlesi testnet has been abandoned. The --network schlesi option will be removed in a future release.
  • Memory usage grows signficantly during periods of non-finalization.
  • Teku requires the ETH1 endpoint to keep historic world state available for at least the ETH1 voting period.
    This is typically more historic state than is kept when ETH1 nodes are pruning state.
    Workaround is to connect to an archive node or configure the node to preserve a greater period of historic world state.

0.10.0 release (#1587)

15 Apr 00:41
ed06950
Compare
Choose a tag to compare
Pre-release

Supports version 0.10.1 of the beacon chain spec.

Artemis Stable Release - Spec v0.7.1.x

02 Sep 22:47
Compare
Choose a tag to compare
Pre-release
  • added beacon chain metrics
  • libp2p via mothra

Artemis Stable Release - Spec v0.7.1, Hobbits v3

23 Jul 19:59
9dc8556
Compare
Choose a tag to compare
  • Spec upgrade to 0.7.1
  • Updated Hobbits implementation v3

Artemis Stable Release - Spec v0.5.1, Hobbits v2

24 Jun 18:43
Compare
Choose a tag to compare
  • Spec upgrade to 0.5.1
  • Gossip protocol can be changed in config file
  • Networking bug fixes

Artemis Stable Release - Spec v0.4, Hobbits v2

24 Jun 18:52
Compare
Choose a tag to compare
  • upgraded to spec v0.4
  • vertx networking fixes