Releases: Consensys/teku
23.9.0
This is a recommended update containing networking updates, optimizations and bug fixes. It also contains upcoming Holesky testnet configuration.
Downloads
- Available as
23.9.0
on Dockerhub - Download the binary distribution:
Breaking Changes
- The Development option
--Xp2p-minimum-subnet-subscriptions
has been removed and will no longer be recognised as a command line option. - If running separated Beacon Node and Validator node it is required to upgrade Beacon Node first and then Validator Node. A Validator Node running this release won't start if connecting to an older Beacon Node version.
Known issues
- When switching an existing database to
minimal
mode, teku can become unresponsive. It will recover after cleaning up the old blocks, but this can take a period of time (an hour or so). If you wish to switch tominimal
mode, consider re-initialising the database (delete beacon db and restart from a checkpoint sync) to avoid an outage.
Additions and Improvements
- Default storage mode has been changed from
prune
tominimal
. Existingprune
mode databases will need to explicitly set--data-storage-mode=minimal
if they wish to switch tominimal
data storage. Nodes starting with empty database will activate inminimal
mode unless a different value is set via--data-storage-mode
. - Update attestation subnet subscriptions strategy according to the spec changes. All nodes (including non-validating ones) will subscribe to 2 subnets regardless of the number of validators.
- Added
/eth/v1/validator/{pubkey}/voluntary_exit
Validator API endpoint - Add support for Holesky test network
--network=holesky
- Add support for gzip encoding in REST API
Bug Fixes
- Fixed a bug in network configuration loader which was ignoring MIN_EPOCHS_FOR_BLOCK_REQUESTS parameter.
- Fixed a bug causing proposer config refresh feature to stop reloading the configuration.
Upcoming Breaking Changes
23.8.0
This is a recommended update containing few memory allocation optimizations. It also includes a move to Java 17 as the minimum supported Java version.
Downloads
- Available as
23.8.0
on Dockerhub - Download the binary distribution:
Breaking Changes
- Upgrading the minimum Java version to Java 17, which means users will need to upgrade their Java installation to at least
Java 17
. The docker versions relying onjdk16
will no longer be published, so docker users explicitly referencing thejdk16
build need to update their package to referencejdk17
, as tagsdevelop-jdk16
,develop-jdk16-arm64
,latest-jdk16
will no longer be updated. - Users who make heavy use of API calls to fetch non finalized states data other than head may wish to adjust the states-cache if they see excessive
regeneration of state
messages. This can be accomplished via the--Xstore-state-cache-size
, which previously defaulted to 160.
Additions and Improvements
- Introduce
--exchange-capabilities-monitoring-enabled
parameter. If enabled, EL will be queried periodically for the Engine API methods it supports. If incompatibility is detected, a warning is raised in the logs. The default istrue
. - Add support for Lukso network
--network=lukso
- The development option
--Xfork-choice-update-head-on-block-import-enabled
was changed to default tofalse
to ensure fork-choice is run when new blocks arrive. - The default state-cache size has been changed to 8 (previously 160), and there is now an epoch-states-cache, which defaults to a maximum of 6 elements.
Bug Fixes
- Fixed a possibility of an overflow error when calculating validator duties if the number of active validators is >1M.
Upcoming Breaking Changes
23.6.2
This is an optional update with minor bug fixes and dependencies updates.
Downloads
- Available as
23.6.2
on Dockerhub - Download the binary distribution:
Breaking Changes
--exchange-capabilities-enabled
option has been removed since it is no longer applicable because of execution-apis spec change.- Removed kiln and ropsten as
--network
options
Additions and Improvements
--validators-external-signer-public-keys
parameter now acceptsexternal-signer
value. It will enable public key retrieval from external signer standard API, making sure that configured keystore and trustStore will be used, if any.- Stopped calling
engine_exchangeTransitionConfigurationV1
Engine API method, since the method will be deprecated in the future.
Bug Fixes
- Fix Get Attestation Rewards API to fetch beacon state instead of block and beacon state (fixes #7338)
Upcoming Breaking Changes
- Upgrading the minimum Java version to Java 17, which means users will need to upgrade their Java installation to at least
Java 17
. The docker versions relying onjdk16
will no longer be published, so docker users explicitly referencing thejdk16
build need to update their package to referencejdk17
, as tagsdevelop-jdk16
,develop-jdk16-arm64
,latest-jdk16
will no longer be updated.
23.6.1
This is a required update for Gnosis network operators. It contains Gnosis Capella fork configuration.
Downloads
- Available as
23.6.1
on Dockerhub - Download the binary distribution:
Breaking Changes
- The Development options
--Xprogressive-balances-mode
and--Xee-version
have been removed and will no longer be recognised as command line options. - Network configs were updated following concensus-specs changes. If you run custom network, you will need to add lines with network parameters to your custom config (including the Deneb constants if required). If you are using a remote validator
auto
network feature, you will need to update both Beacon Node and Validator Client.
Additions and Improvements
- Added Gnosis configuration for the 🦉 Capella 🦉 network fork due at epoch 648704, UTC Tue 01/08/2023, 11:34:20
- Updated Sigmaprime's bootnodes
- Increased the pending pool size for attestations
Upcoming Breaking Changes
- Upgrading the minimum Java version to Java 17, which means users will need to upgrade their Java installation to at least
Java 17
. The docker versions relying onjdk16
will no longer be published, so docker users explicitly referencing thejdk16
build need to update their package to referencejdk17
, as tagsdevelop-jdk16
,develop-jdk16-arm64
,latest-jdk16
will no longer be updated.
23.6.0
This is a recommended update containing the rewards beacon-api endpoints, and an updated fix for the May non finality issue.
NOTE: Nethermind users on 1.19.X need to be at a minimum version of 1.19.2, due to compatibility issues with 1.19.0, 1.19.1.
Downloads
- Available as
23.6.0
on Dockerhub - Download the binary distribution:
Breaking Changes
- The command argument
--Xengine-exchange-capabilities
has been removed, update to use--exchange-capabilities-enabled
if you are using this option. - The command argument
--Xdeposit-snapshot-enabled
has been removed, just remove it from commandline/configuration if you use it, updated argument--deposit-snapshot-enabled
defaults to true now. - The
/eth/v1/debug/beacon/heads
endpoint has been removed in favor of the v2 Bellatrix endpoint/eth/v2/debug/beacon/heads
. - The
/eth/v1/validator/blocks/:slot
endpoint has been removed in favor of the v2 Altair endpoint/eth/v2/validator/blocks/:slot
. - The
/eth/v1/beacon/blocks/:block_id
endpoint has been removed in favor of the v2 Altair endpoint/eth/v2/beacon/blocks/:block_id
. - The
/eth/v1/debug/beacon/states/:state_id
endpoint has been removed in favor of the v2 Altair endpoint/eth/v2/debug/beacon/states/:state_id
- The
/eth/v1/validator/liveness/:epoch
endpoint was requiring the wrong body input and now conforms to the beacon-api spec. - When
--rest-api-enabled
option is not specified and--rest-api-port
is,--rest-api-enabled
will now be set as true. - Log messages previously printing WEI for builder bids and local payload values have been updated to print the ETH value.
Additions and Improvements
- Add support for Chiado (Gnosis testnet):
--network=chiado
- Added beacon-apis rewards endpoints.
- Removed the experimental flag from
/eth/v1/validator/liveness/:epoch
rest-api endpoint. - Following on from the non finality issue, improved state selection during attestation validation,
where we failed to correctly identify that we could use the head state for validation of canonical attestation gossip.
Bug Fixes
- Fix a race condition on EL api result handling which may lead to beacon node remain syncing forever
Upcoming Breaking Changes
- Upgrading the minimum Java version to Java 17, which means users will need to upgrade their Java installation to at least
Java 17
. The docker versions relying onjdk16
will no longer be published, so docker users explicitly referencing thejdk16
build need to update their package to referencejdk17
, as tagsdevelop-jdk16
,develop-jdk16-arm64
,latest-jdk16
will no longer be updated.
Incident Statement - May 2023
As has been well documented by a post-mortem conducted by the Prysm team,
the Consensus layer suffered short periods of non-finality on the 11th and 12th of May, with the 12th of May being notable in that the network started an Inactivity leak.
To mitigate the problem, the Teku team released the 23.5.0 patch, which basically avoided processing some attestations due to
the observed behaviour of a number of clients suffering from memory contention if these attestations were fully validated by Teku.
This release contains a fix for the root cause of the issue, where the processing bug contributing to the original issue has been
rectified, greatly reducing the need for many states to be present while validating gossip.
23.5.0
This is a recommended update containing old attestation filtering.
Downloads
- Available as
23.5.0
on Dockerhub - Download the binary distribution:
Breaking Changes
Additions and Improvements
- Set
User-Agent
header to "teku/v" (e.g. teku/v23.5.0) when making builder bid requests to help builders identify clients and versions. Use--builder-set-user-agent-header=false
to disable. - Included more context when a request to an external signer fails.
- Added
/eth/v1/beacon/rewards/blocks/{block_id}
rest api endpoint.
Bug Fixes
- Filtering attestations with old target checkpoint
Upcoming Breaking Changes
- Upgrading source code to Java 17 meaning users will need to upgrade their Java install to at least 17, or use the jdk17 variant of the docker image.
- The
/eth/v1/debug/beacon/states/:state_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/debug/beacon/states/:state_id
- The
/eth/v1/beacon/blocks/:block_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/beacon/blocks/:block_id
- The
/eth/v1/validator/blocks/:slot
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/validator/blocks/:slot
- The
/eth/v1/debug/beacon/heads
endpoint has been deprecated in favor of the v2 Bellatrix endpoint/eth/v2/debug/beacon/heads
- The command argument
--Xengine-exchange-capabilities
will be removed, update to use--engine-exchange-capabilities
if you are using this option. - The command argument
--Xdeposit-snapshot-enabled
will be removed, just remove it from commandline/configuration if you use it, updated argument--deposit-snapshot-enabled
defaults to true now.
23.4.0
This is a recommended update for mainnet, containing a fix for the slow processing of blocks with multiple voluntary exit operations.
Due to some issues with Docker Hub signing service, 23.4.0 docker images have not been signed.
Downloads
- Available as
23.4.0
on Dockerhub - Download the binary distribution:
Breaking Changes
- The
--p2p-discovery-site-local-addresses-enabled
option is set tofalse
by default. If you use the client's discovery inside the local network, update its launch command to toggle the option.
Additions and Improvements
- Added the ability for the CL client to negotiate engine capabilities with the connected EL client. This can be disabled by setting
--exchange-capabilities-enabled=false
if Shanghai is not supported on your EL client. - Enabled peer scoring by default. Can be disabled explicitly using
--Xp2p-gossip-scoring-enabled=false
- When failovers are configured, the validator client will perform a readiness check on startup to avoid retrieving validator statuses from a node which is not ready.
- Enabled deposit tree snapshot bundles for major networks and persists it after finalization to decrease EL pressure and speed up node startup. Use
--deposit-snapshot-enabled=false
to disable. - Optimized validator exit processing during state transition, to speed up block import containing multiple validator exits.
- Locally submitted exits and bls changes will now periodically broadcast if they are not actioned, to address operations being lost in remote pools.
Bug Fixes
- Included All forks in fork schedule if they're defined in configuration.
-
- Operation pool not removing some Voluntary Exit messages after block inclusion.
- Slow processing of blocks with multiple voluntary exit operations.
Upcoming Breaking Changes
- The
/eth/v1/debug/beacon/states/:state_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/debug/beacon/states/:state_id
- The
/eth/v1/beacon/blocks/:block_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/beacon/blocks/:block_id
- The
/eth/v1/validator/blocks/:slot
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/validator/blocks/:slot
- The
/eth/v1/debug/beacon/heads
endpoint has been deprecated in favor of the v2 Bellatrix endpoint/eth/v2/debug/beacon/heads
- The command argument
--Xexchange-capabilities-enabled
will be removed, update to use--exchange-capabilities-enabled
if you are using this option. - The command argument
--Xdeposit-snapshot-enabled
will be removed, just remove it from commandline/configuration if you use it, updated argument--deposit-snapshot-enabled
defaults to true now.
23.3.1
This is a required update containing mainnet 🦉CAPELLA🦉 fork configuration. All users should upgrade as soon as possible.
NOTE: Upgrade your EL client to the latest version first! This update could be incompatible with old versions.
Known Issues
- CVE-2022-1471 security alert related to
snakeyaml-1.33.jar
could be ignored because Teku doesn't make use of the affected functionalities. Future dependency updates will fix this security alert.
Downloads
- Available as
23.3.1
on Dockerhub - Download the binary distribution:
Breaking Changes
--Xbeacon-liveness-tracking-enabled
has been removed in favour of--beacon-liveness-tracking-enabled
Additions and Improvements
- The commandline option
--network
of thevalidator-client
subcommand has been undeprecated for values other thanauto
. - Send validator registrations to the Beacon node when the Validator client has reconnected to the event stream
- Added optional query parameters
require_prepared_proposers
andrequire_validator_registrations
to theteku/v1/admin/readiness
endpoint - Added mainnet configuration for the CAPELLA network fork due at epoch 194048, April 12, 2023; 10:27:35pm UTC
- Added experimental feature
--Xdeposit-snapshot-enabled
to use bundled deposit contract tree snapshot and persist it after finalization to decrease EL pressure when syncing and speed up node startup - Added
--p2p-discovery-site-local-addresses-enabled
option to allow discovery connections to local (RFC1918) addresses. - Added
--builder-bid-compare-factor
to be applied to the builder bid value when comparing it with locally produced payload. - Improved
Completed regeneration
info message so that is more technically accurate.
Bug Fixes
- Fixed a bug in signature verification on fork boundaries when first blocks of the new fork are missing.
Upcoming Breaking Changes
- The
/eth/v1/debug/beacon/states/:state_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/debug/beacon/states/:state_id
- The
/eth/v1/beacon/blocks/:block_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/beacon/blocks/:block_id
- The
/eth/v1/validator/blocks/:slot
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/validator/blocks/:slot
- The
/eth/v1/debug/beacon/heads
endpoint has been deprecated in favor of the v2 Bellatrix endpoint/eth/v2/debug/beacon/heads
- The
--p2p-discovery-site-local-addresses-enabled
option will be set tofalse
by default. If you use the client's discovery inside the local network, update its launch command to toggle the option.
23.3.0
This is an optional update that primarily updates dependent libraries. It is a required update for Goerli network nodes.
Downloads
- Available as
23.3.0
on Dockerhub - Download the binary distribution:
Additions and Improvements
- Trigger the beacon nodes fallback mechanism when the execution layer is offline
--beacon-liveness-tracking-enabled
option (disabled by default) can be used instead of--Xbeacon-liveness-tracking-enabled
- Added an optional query parameter
locally_submitted
to/eth/v1/beacon/pool/bls_to_execution_changes
to allow users to query only bls changes submitted to the current node. - Added
/eth/v1/builder/states/{state_id}/expected_withdrawals
rest api endpoint. - Added
/eth/v1/beacon/rewards/sync_committee/{block_id}
rest api endpoint. - Added Capella fork information for Goerli network configuration.
- Added
validator_scheduled_sync_committee_duties_current
metric - the number of validators that you have active with current sync committee duties - Added
validator_current_sync_committee_last_epoch
metric - the last epoch of the current sync committee.
Bug Fixes
- Included All forks in fork schedule if they're defined in configuration.
Upcoming Breaking Changes
- The
/eth/v1/debug/beacon/states/:state_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/debug/beacon/states/:state_id
- The
/eth/v1/beacon/blocks/:block_id
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/beacon/blocks/:block_id
- The
/eth/v1/validator/blocks/:slot
endpoint has been deprecated in favor of the v2 Altair endpoint/eth/v2/validator/blocks/:slot
- The
/eth/v1/debug/beacon/heads
endpoint has been deprecated in favor of the v2 Bellatrix endpoint/eth/v2/debug/beacon/heads
- The commandline option
--network
of thevalidator-client
subcommand has been undeprecated and can be used to select a network for standalone validator clients. When set toauto
, it automatically
fetches network configuration information from the configured beacon node endpoint. --Xbeacon-liveness-tracking-enabled
option will be removed. The--beacon-liveness-tracking-enabled
option should be used instead (disabled by default)
23.2.0
This is an optional update that primarily updates dependent libraries. It is a required update for Sepolia network nodes.
Downloads
- Available as
23.2.0
on Dockerhub - Download the binary distribution:
Breaking Changes
--Xmetrics-block-timing-tracking-enabled
option has been removed. The--metrics-block-timing-tracking-enabled
option should be used instead (enabled by default).
Additions and Improvements
- Introduced Doppelganger Detection feature
- Changed color of block production duty to cyan, rather than dark blue.
- Introduced a configuration overview printed during start up.
- Introduced a new field
el_offline
in theGetSyncingStatusResponse
which is set totrue
when the execution layer is offline: Syncing API update - Added Capella fork information for Sepolia network configuration.
- Removed references to beacon block methods
/eth2/beacon_chain/req/beacon_blocks_by_root
and/eth2/beacon_chain/req/beacon_blocks_by_range
.
Bug Fixes
- Fixed issue which was causing validator keys to be loaded twice, which, in some cases, was causing beacon node to initialize slower.