Skip to content

Releases: Consensys/teku

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.

v21.10.1

18 Oct 04:52
Compare
Choose a tag to compare

Downloads

  • Available as 21.10.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 008b2d5007fd86375cb53d29a5bf7ccc49f61c34e3a51afce3ef59abd58d4a1e)
    • zip (sha256: 39901925cbeb34e5ba9c23cdfe018b2b2bba701c5a7f0add5639e120db8745b1)

Upcoming Breaking Changes

  • 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)

Bug Fixes

  • Reverted to blst 0.3.5 to resolve an incompatibility with Windows systems that do not have MingW installed.

v21.10.0

17 Oct 22:50
6f46877
Compare
Choose a tag to compare

Breaking Changes

  • The -jdk14 and -jdk15 docker image variants are no longer being updated as JDK 14 and 15 are no longer receiving security updates from upstream vendors.
    Note that the default docker image usage JDK 16 and is still receiving security updates.

Upcoming Breaking Changes

  • 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 Improvements

  • Upgraded Netty dependency to include fixes for two HIGH severity security vulnerabilities (CVE-2021-37136 and CVE-2021-37137) which may lead to DOS attacks.
  • Upgraded to BLST 0.3.6.
  • Added validator_local_validator_counts metric to report number of local validators by current status.
  • Added JDK 17 docker images. The JDK 16 based images remain the default, append -jdk17 to the docker image version to use the JDK 17 variant. JDK 17 images will become the default in a future release.
  • Added new --p2p-udp-port and --p2p-advertised-udp-port options to support using different ports for TCP and UDP.
  • Added an additional bootnode for the Prater testnet.
  • Maximize revenue from attester slashings by prioritising slashings that involve more validators first.

Bug Fixes

  • Fixed a possible crash on shutdown when using levelDb.
  • Set an idle timeout for metrics connections, to clean up ports when no longer used.
  • Fixed error when building from a source download rather than a git checkout.
    Now logs a warning when building without git information to warn users that version information will not be available.
  • Fixed an issue where discovery did not recover if it was initially started while the bootnodes were unavailable.

Downloads

  • Available as 21.10.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 499a848f421b75ee3b7d32a2fc8925f46b0f877bf48612398fd23db71f22ebe8)
    • zip (sha256: a213e81bc5c0c44b74b8e055d78f75edf8684ed7b701ff61d1d80800ee6bb350)

21.9.2

29 Sep 02:40
c846d7f
Compare
Choose a tag to compare

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 -jdk14 and -jdk15 docker image variants will be removed in a future release. JDK 14 and 15 are no longer receiving security updates from upstream vendors.
    Note that the default docker image usage JDK 16 and is still receiving security updates.
  • 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 now supports the value auto, which automatically
    fetches network configuration information from the configured beacon node endpoint. Other --network options are deprecated and will be removed in a future release.

Additions and Improvements

  • Includes support for Altair network upgrade on MainNet at epoch 74240.
  • Upgraded to BLST 0.3.5.
  • Validator client --network option now supports the auto option to load the correct configuration from the beacon node.
  • /teku/v1/admin/readiness endpoint now accepts a target_peer_count param to require a minimum number of peers before the node is considered ready.
  • Support for building on JDK 17.

Bug Fixes

  • Fix NoSuchElementException reported at startup by validator performance tracking module.
  • Fix IllegalStateException reported on altair networks, when none of your validators are in a sync committee for the current epoch.
  • Fix failed to export/import slashing protection data.
  • Fix incorrect gossip validation when processing duplicate sync committee messages which could lead to an error being reported instead of ignoring the duplicate.
  • Added additional verification of message lengths when decoding snappy messages.

Downloads

  • Available as 21.9.2 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 45830db08a02518abf991bba7e49b44ecd8b0a5f3aa18efde52d18dde8f44387)
    • zip (sha256: abc18835be9a645b4d7d3fff5cc9a589b4a0f5386c7de0c49f325f98eeafcf30)