Skip to content

Releases: Consensys/teku

v22.3.2

20 Mar 22:17
f2ab5cd
Compare
Choose a tag to compare

This is a recommended upgrade that resolves a significant performance issue when processing deposits.

Downloads

  • Available as 22.3.2 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: 3b6021f872f5f4d34fa205ed89f3731f53430f1eb71524923489404633cea737)
    • zip (
      sha256: d4c81bcf9a5234cb1bb5fdde1038bd77a2adfbd73a2e0ba2d5c1e2785eb633f3)

Additions and Improvements

  • Reduced attestation pool memory usage.

Bug Fixes

  • Fixed performance issue when processing blocks containing deposits.
  • Reduce queuing of events when CPU is insufficient to keep up with the beacon chain.

Upcoming Breaking Changes

  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode

v22.3.1

15 Mar 00:36
ef567ce
Compare
Choose a tag to compare

This is an optional upgrade containing new features and optimisations.

Downloads

  • Available as 22.3.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: 8c28668a62951e09f4205e0b97ebb0c44a4280ac44cbdb75263a3a9ea92692ac)
    • zip (
      sha256: 9c2914af6a439016b181182bd936f5c8e717fdecc3bc08e4c10c22e6608c81b9)

Breaking Changes

  • block events are now published on the beacon rest API after the block is imported, instead of after it had passed gossip validation rules. Blocks that pass the gossip validation rules but fail state transition will no longer emit a block event.

Additions and Improvements

  • Added configuration for the Kiln testnet (--network kiln).
  • Added /eth/v2/debug/beacon/heads REST API to include information on whether the execution payload of each chain head has been executed or not.
  • Reduced CPU usage when finding ancestor block roots.
  • Updated gossip validation rules to match consensus spec v1.1.0.
  • Reduced memory usage when deduplicating gossip messages.
  • GetBlockHeaders /eth/v1/beacon/headers can now return non-canonical block headers.

Upcoming Breaking Changes

  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode

v22.3.0

03 Mar 10:15
a7be8fb
Compare
Choose a tag to compare

This is an optional upgrade containing new features, bug fixes and optimisations.

Downloads

  • Available as 22.3.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: 16171e02c4c5855e41b7863f4e9989a6a294504078aefe8a078b03f05870e5a9)
    • zip (
      sha256: 5e515c77ec915301e5c0e53998f8bcd8c762faad042b2c46d289c3be83f2f49c)

Breaking Changes

  • Support for the Pyrmont testnet has been removed. The Prater testnet should be used instead.

Additions and Improvements

  • Added support for exporting metrics to an external service with --metrics-publish-endpoint.

Bug Fixes

  • Improved handling of the http accept header used to determine whether to send SSZ data or json for states and blocks.
  • Updated discovery library with improved performance.
  • Updated libp2p library to respect message list limits when sending messages.
  • Fixed issue on custom testnets with two forks in sequential epochs where the maximum gossip topic subscription limits were exceeded.
  • Fixed issue where /eth/v1/beacon/headers and /eth/v1/beacon/headers/:block_id would incorrectly return the block root in the body_root field.
  • Simplified chain head updates to resolve Skipping head block update to avoid potential rollback of the chain head warnings.

Upcoming Breaking Changes

  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode

v22.1.1

28 Jan 00:30
6648486
Compare
Choose a tag to compare

This is an optional upgrade containing new features, bug fixes and optimisations.

Downloads

  • Available as 22.1.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: 1027ac63387836e690b3507e0467904d7d9f692aa8e3a468301cbbc35112ab62)
    • zip (
      sha256: 32398ba3e61112a44052303693a6d1df58c492fab66b9aa214cccfd6a33303e0)

Breaking Changes

  • The "merge" hard fork has now been renamed to "bellatrix", matching the changes in the beacon spec 1.1.8 release.
    Custom network configurations will need to be updated and the version field in the Beacon REST API will now report bellatrix instead of merge.

Additions and Improvements

  • Optimised sync committee processing to avoid duplicate group checks for public keys.
  • Reduced amount of data copying required when calculating sha256 hashes and use a more efficient sha256 implementation when available.
  • Updated Javalin to version 4.2.0.
  • Added periodic keep alive to event stream.
  • Added get remote keys to keymanager api
  • Added the local key management api specified in the standard keymanager-api specification for the validator-client.

Bug Fixes

  • Rest api endpoints accepting validator IDs will no longer reject valid bytes48 hex strings that are not on the g2 curve.
  • Upgraded discovery to fix ConcurrentModificationException.
  • Fixed 503 response from REST APIs when creating an attestation or block based on finalized data.
  • Improved peer validation during libp2p handshake.

Upcoming Breaking Changes

  • Support for the Pyrmont testnet will be removed in an upcoming release. The Prater testnet should be used instead.
  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode

v22.1.0

03 Jan 21:53
5b85ef1
Compare
Choose a tag to compare

This is a recommended update containing security and performance improvements. All users are strongly recommended to upgrade at your earliest convenience.

Downloads

  • Available as 22.1.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: cff7e709c0fe3c3c05e59bcf70c01aeb0b1c4bd86ceabbd6f09d0739f2d20aa9)
    • zip (
      sha256: 90c2a7dbbb3cabdfc9c7227ff127e5be66989de76def71ee09fa59a5ce636dbf)

Breaking Changes

  • API users should switch to using response 'code' from BadRequests, rather than 'status' field, in line with the standard API.

Additions and Improvements

  • Added kintsugi network definition.
  • Optimised discv5 by caching calculated node ID.
  • Avoided object allocation when calculating integer square root values.

Bug Fixes

  • Updated to log4j 2.17.1. Resolves two potential vulnerabilities which are only exploitable when using custom log4j configurations that are either writable by untrusted users or log data from the ThreadContext.
  • Made BadRequests compliant with the api, returning 'code' rather than 'status'.
  • Invalid sync contributions were created if a validator was present multiple times in the same sync sub-committee.
  • Reduced error to warning when sync contribution cannot be created because the beacon node has no matching sync messages.
  • Fixed issue where validator duties were not performed during the first epoch after startup.
  • Updated jvm-libp2p to improve negotiation of mplex and multistream connections.

Upcoming Breaking Changes

  • Support for the Pyrmont testnet will be removed in an upcoming release. The Prater testnet should be used instead.
  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode

v21.12.2

16 Dec 00:24
a443c80
Compare
Choose a tag to compare

This is an important security update. All users are strongly recommended to update as soon as possible.

Additional security vulnerabilities were found in log4j in the newly released 2.15.0 which details are not yet available for.
As a result we cannot yet confirm if Teku is vulnerable to them. This release of Teku upgrades to log4j 2.16.0 which is safe
against these new vulnerabilities and completely disables JDNI which is the underlying technology used in this category of attack.

As as result we strongly encourage all users to update as soon as possible to 21.12.2 even if you have previously updated to 21.12.1.

Downloads

  • Available as 21.12.2 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: 1ae37c495dd5127ea6591fd223324fdf457b1ff114611a94bcc5cb97a3270a7d)
    • zip (
      sha256: 0c8adbc974b2238f721fe9231ef17291c6203034f10514d581f1eb4421046f5e)

Additions and Improvements

  • Updated CLI options ensuring unmatched options aren't confused as parameters.

Bug Fixes

  • Updated to log4j 2.16.0.
  • Fix multiarch JDK17 variant docker image to bundle Java 17 instead of Java 16

Upcoming Breaking Changes

  • Support for the Pyrmont testnet will be removed in an upcoming release. The Prater testnet should be used instead.
  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode

v21.12.1

10 Dec 05:12
Compare
Choose a tag to compare

This is a critical security update. All users should update immediately.

Downloads

  • Available as 21.12.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: 7800e5989632d35806e98d7b141dc9d4b75ebc5b1718406834a343a8ef44487b)
    • zip (
      sha256: 977bba9f52ddf96bccdc4af7c1efef94fcbd166b19f9b8babbac5afecac4807a)

Bug Fixes

  • Updated log4j version and configuration to guarantee a zero-day remote code exploit published for log4j cannot be used against Teku nodes.

Upcoming Breaking Changes

  • Support for the Pyrmont testnet will be removed in an upcoming release. The Prater testnet should be used instead.
  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode
  • The commandline option --network of the validator-client subcommand introduces a new option value auto, which automatically
    fetches network configuration information from the configured beacon node endpoint. Other --network option values for an external validator client
    are now deprecated in favour of this option value (usage: teku validator-client --network=auto)

v21.12.0

10 Dec 01:52
7dd3378
Compare
Choose a tag to compare

This is an optional upgrade including new features and performance improvements.

Downloads

  • Available as 21.12.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: 535566f5d3e6d3dd7994d65328f6b1bbccedf79ee4be0e35609b0a4f720c6585)
    • zip (
      sha256: cce29aa95bd510ee1d1b843afaea3b0fc03213616281b0e70223cd1d35e040dd)

Breaking Changes

  • Removed migration code from the old ProtoArraySnapshot based storage to the new format.
    Any node correctly following the Altair chain has already gone through this migration so no users should be affected by this.

Additions and Improvements

  • Added support for using the optimized BLST which is more efficient but does not support some older CPUs.
    On Linux and Mac Teku will attempt to detect if the CPU is compatible and automatically use the optimized version.
    On Windows or if auto-detection fails the portable version continues to be used.
    The version of BLST to use can be explicitly set by setting the teku.portableBlst system property. e.g JAVA_OPTS="-Dteku.portableBlst=true" teku
  • Docker images are now published with multi-arch support including Linux/amd64 and Linux/arm64 (including M1)
  • Introduces a new database format for archive nodes that significantly improves response times for queries that require historic state data.
    Existing databases and nodes using the default PRUNE storage mode are unchanged. Archive nodes wishing to take advantage of this will need to perform a full resync.
  • The default docker image now uses JDK 17 instead of 16. The JDK 16 image is still available with the version suffix -jdk16
  • Include the date in output to console, when log files are not being written.
  • Reinstated the ignore rule for aggregate attestation gossip where the attestation root has been previously seen.
    The corresponding change in the spec has been reverted because it caused higher cpu and network usage.
  • Added new metrics executor_signature_verifications_queue_size, executor_signature_verifications_task_count,
    executor_signature_verifications_batch_count and executor_signature_verifications_batch_size to give visibility
    into the remaining capacity of the signature verification process.

Bug Fixes

  • Generated head events will now send the slot of the latest block rather than the calculated head slot.

Upcoming Breaking Changes

  • Support for the Pyrmont testnet will be removed in an upcoming release. The Prater testnet should be used instead.
  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode
  • The commandline option --network of the validator-client subcommand introduces a new option value auto, which automatically
    fetches network configuration information from the configured beacon node endpoint. Other --network option values for an external validator client
    are now deprecated in favour of this option value (usage: teku validator-client --network=auto)

v21.11.1

12 Nov 06:31
f9df80c
Compare
Choose a tag to compare

This is an optional upgrade fixing bugs in the standard REST API compatibility.

Binary Downloads

  • Available as 21.11.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: dfec645eefd4f36fa4e5df46277d560d313f3fe24c23fe3c213df00ef851e5a1)
    • zip (
      sha256: 46b529802c1cd7faee6d74a127a2bad20dbf677f15f5eb0bb3fe021572a190eb)

Bug Fixes

  • Fixed compatibility of /eth/v2/beacon/blocks/{block_id} and /eth/v1/beacon/blocks endpoints.
  • Fixed compatibility of BLST on Apple Silicon chips.

Upcoming Breaking Changes

  • Support for the Pyrmont testnet will be removed in an upcoming release. The Prater testnet should be used instead.
  • Docker images will default to the JDK 17 variant in a future release.
  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode
  • The commandline option --network of the validator-client subcommand introduces a new option value auto, which automatically
    fetches network configuration information from the configured beacon node endpoint. Other --network option values for an external validator client
    are now deprecated in favour of this option value (usage: teku validator-client --network=auto)

v21.11.0

09 Nov 23:56
3cb951a
Compare
Choose a tag to compare

This is an optional upgrade providing new features and improvements.

Downloads

  • Available as 21.11.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (
      sha256: ad616334bd9082fcbbca9f8756687b9813041ec02c4087c6c8798e3344237110)
    • zip (
      sha256: fee5edd693635bfc05ad7c7ae1d722c951ac5e5fddfbcc6b2639209a080e409a)

Upcoming Breaking Changes

  • Support for the Pyrmont testnet will be removed in an upcoming release. The Prater testnet should be used instead.
  • Docker images will default to the JDK 17 variant in a future release.
  • The /teku/v1/beacon/states/:state_id endpoint has been deprecated in favor of the standard API /eth/v1/debug/beacon/states/:state_id which now returns the state as SSZ when the Accept: application/octet-stream header is specified on the request.
  • 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 commandline option --validators-performance-tracking-enabled has been deprecated in favour of --validators-performance-tracking-mode
  • The commandline option --network of the validator-client subcommand introduces a new option value auto, which automatically
    fetches network configuration information from the configured beacon node endpoint. Other --network option values for an external validator client
    are now deprecated in favour of this option value (usage: teku validator-client --network=auto)

Additions and Improements

  • Added support for Apple Silicon (M1 chips).
  • Added LevelDB support for Linux/arm64.
  • Attestations are now sent to the beacon node in batches by default when using the validator-client.
  • Added relevant epoch to attestation and sync committee performance log message.
  • Support v.2.1.0 of the standard rest api. It should be noted that the 'version' has been changed to lower case to comply with the api specification.
  • Removed ignore rule for aggregate attestation gossip where the attestation root has previously been seen.
  • Added metrics to report client type of connected peers - libp2p_connected_peers_current, with client tag Teku, Lighthouse, Prysm, Nimbus, Unknown.
  • Updated to Javalin 4 for the rest api.
  • Switched executor queue size metrics to use labelled gauge.
  • New console message when Teku switches forks.
  • Reduce CPU usage by using batching signature verification service for aggregate attestation and sync committee contributions.

Bug Fixes

  • Fixed issue where discovery did not correctly abort handshake attempts when a request timed out.
  • Fixed issue where Syncing Completed message was printing multiple times.
  • Limited the number of validator public keys to lookup per request in voluntary-exit subcommand to avoid exceeding maximum URL length limits.