Skip to content

Releases: Consensys/teku

26.7.1

Choose a tag to compare

@rolfyone rolfyone released this 11 Jul 09:04
924baf6

This is a strongly recommended update containing security fixes

Downloads

  • Available as 26.7.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 87aab8a34e17276d6cd12d485af98e16696a79752d7bc2cf4e0c7b227d618704)
    • zip (sha256: de3bf274ca05f6fa885505db01c591cc5a5f92699edc28e21abf7d92eff3895f)

Additions and Improvements

  • Added ssz output for validator balances api.

Bug Fixes

  • Updated Libp2p to remove handshake info message.
  • Dual-stack P2P nodes can now bind IPv4 and IPv6 listeners to the same port.
  • Updated third party libraries.
  • Addressed several reported adversarial scenarios.

26.7.0

Choose a tag to compare

@rolfyone rolfyone released this 01 Jul 07:54
3255b62

This is a recommended update containing the QUIC p2p protocol.

Downloads

  • Available as 26.7.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: d51015a98e0f749acc0c76825975cf1e66fb703b623cc1e1bd3c29d233cbb650)
    • zip (sha256: 27c411fc03d68b11e1dfd1142c3e42dbc6a8044ed6dd88763a6b494e62ea20e3)

Breaking Changes

  • Windows is no longer supported.
  • JDK 25 required from v26.6.0.

Known Issues

  • An extra info message is shown by QUIC, Handshake completed with remote peer id ... which for users is logging noise. This will be removed in the next release. (#10919)

Additions and Improvements

  • QUIC p2p protocol enabled by default (Port 9001 ip4, 9091 ip6)
    • Note that this is a new UDP port and should be added to Firewall rules, otherwise incoming QUIC peers will not be able to establish a connection.
  • CLI options added for configuration of QUIC
    • --p2p-quic-port (default 9001),
    • --p2p-quic-port-ipv6 (default 9091)
    • --p2p-advertised-quic-port
    • --p2p-advertised-quic-port-ipv6

Bug Fixes

  • Prevent RPC rate-limited peers from immediately reconnecting inbound.
  • Fixed missing process_cpu_seconds_total metric in the Docker images by adding the jdk.management module to the custom Java runtime.

26.6.1

Choose a tag to compare

@lucassaldanha lucassaldanha released this 16 Jun 05:31
6c8bd12

This is a recommended update containing improvements and security fixes.

NOTE: For users that successfully upgraded to 26.6.0, this release is OPTIONAL.

Downloads

  • Available as 26.6.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: eed089c8d24e39a094047f0541f7305ec6dea0c06388f1b39f7ce881997f1d17 )
    • zip (sha256: a8dce0202a9989ab85d735ef06d1eb663258497148c792c8d548735d53a59b81 )

26.6.1

Bug Fixes

  • Fixed an issue loading snappy native libraries affecting some users

26.6.0

Breaking Changes

JDK 25 is now required. Please update to JDK 25, or your node will fail to start up.

Additions and Improvements

  • Added the Gloas POST /eth/v1/beacon/states/{state_id}/builders Beacon API endpoint from ethereum/beacon-APIs#614, with JSON and SSZ response support.
  • Updated draft Gloas execution payload REST endpoints to match ethereum/beacon-APIs#613:
    GET /eth/v1/beacon/execution_payload_envelope/{block_id} is now
    GET /eth/v1/beacon/execution_payload_envelopes/{block_id}, and
    GET /eth/v1/validator/execution_payload_bid/{slot}/{builder_index} is now
    GET /eth/v1/validator/execution_payload_bids/{slot}/{builder_index}.

Bug Fixes

  • Fixed a scenario where keys added via validator-api that rely on external signer are not slashing-protected locally until the node is restarted.
    To work around this issue, users should either keep slashing protection enabled on the external signer or restart the node after calling the add api.
  • Fixed automatic detection of local node IPv6 address
  • Make sure sync committee duties are retried while the EL is optimistic.
  • Fixed a potential issue in importing blocks when data is not available.
  • Fixed potential NPE when SSE are not closed correctly.
  • Improved pruning for data column sidecars.
  • Delayed DVT attestation selection proof submissions until the target epoch starts, preventing lookahead duties from being submitted too early and ensuring stale pending batches are cancelled when duties are rescheduled.

Upcoming Breaking Changes

Windows support will be removed in the following release.

26.6.0

Choose a tag to compare

@lucassaldanha lucassaldanha released this 15 Jun 03:29
44baab9

This is a recommended update containing JDK25, security fixes, and general improvements.

Known Issues

  • Some users are experiencing issues following the chain after upgrading. 26.6.1 resolves this issue. If you do use 26.6.0, please ensure you check you are following the chain after upgrading. 26.6.1 is identical to 26.6.0, except references an older snappy library.

Downloads

  • Available as 26.6.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: a05b15eef07f7dd961e173d00f4b2151e1a1840c6706c81c32a22a4fc62a2b09)
    • zip (sha256: 58591aab5364230f94eea524e34497ba4a8d2f3fd1408137c3c772e5ea0b5dac)

Breaking Changes

JDK 25 now is now required. Please update to JDK 25, or your node will fail to start up.

Additions and Improvements

  • Added the Gloas POST /eth/v1/beacon/states/{state_id}/builders Beacon API endpoint from ethereum/beacon-APIs#614, with JSON and SSZ response support.
  • Updated draft Gloas execution payload REST endpoints to match ethereum/beacon-APIs#613:
    GET /eth/v1/beacon/execution_payload_envelope/{block_id} is now
    GET /eth/v1/beacon/execution_payload_envelopes/{block_id}, and
    GET /eth/v1/validator/execution_payload_bid/{slot}/{builder_index} is now
    GET /eth/v1/validator/execution_payload_bids/{slot}/{builder_index}.

Bug Fixes

  • Fixed a scenario where keys added via validator-api that rely on external signer are not slashing protected locally until the node is restarted.
    To work around this issue, users should either keep slashing protection enabled on the external signer or restart the node after calling the add api.
  • Fixed automatic detection of local node IPv6 address
  • Make sure sync committee duties are retried while the EL is optimistic.
  • Fixed a potential issue in importing blocks when data is not available.
  • Fixed potential NPE when SSE are not closed correctly.
  • Improved pruning for data column sidecars.
  • Delayed DVT attestation selection proof submissions until the target epoch starts, preventing lookahead duties from being submitted too early and ensuring stale pending batches are cancelled when duties are rescheduled.

Upcoming Breaking Changes

Windows support will be removed in the following release.

26.4.0

Choose a tag to compare

@lucassaldanha lucassaldanha released this 31 Mar 02:17
c5add45

This is a required update for Gnosis nodes, containing the Fulu fork schedule (Apr 14 2026 12:06:20 GMT+0000), optional otherwise.

Downloads

  • Available as 26.4.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 886bc142c9b40b6e2b5ca71e4803069c1c62274536240f573f17bb26efcc7fc1)
    • zip (sha256: 9c3c95cc659fea6f2bfddf0509d93a8e0f1a140ab5a6ccefdce12a134e294550)

Additions and Improvements

  • Implemented PostPtcDuties rest api endpoint (gloas api).
  • Added /eth/v2/node/version endpoint to retrieve structured version information for both beacon node and execution client.
  • Added deprecation warning on startup for any leveldb database types.
  • Increased default timeout of Engine API Get Payload requests to 2 seconds.

Upcoming Breaking Changes

  • Teku will be moving to Java JDK 25 in a future release.

26.3.0

Choose a tag to compare

@tbenr tbenr released this 05 Mar 19:57
db53981

This is a mandatory update containing the fix for recent mainnet beacon state serialization issue as well as performance improvements and library updates.

The mainnet issue is showing in logs as the following error:

2026-03-05 16:16:26.201 ERROR - Storage update failed, retrying.
java.util.concurrent.CompletionException: java.lang.NegativeArraySizeException: -215782466
at java.base/java.util.concurrent.CompletableFuture.wrapInCompletionException(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.reportJoin(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.join(Unknown Source)
at tech.pegasys.teku.storage.server.RetryingStorageUpdateChannel.retry(RetryingStorageUpdateChannel.java:133)
at tech.pegasys.teku.storage.server.RetryingStorageUpdateChannel.onStorageUpdate(RetryingStorageUpdateChannel.java:86)
at tech.pegasys.teku.storage.server.CombinedStorageChannelSplitter.onStorageUpdate(CombinedStorageChannelSplitter.java:71)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
...

Downloads

  • Available as 26.3.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 2852f622bcc5064d6e2da5bc2cd852477fa9ca179ab565d3303043c26bfbc0ae)
    • zip (sha256: c34c8e39c5efc33cb7cb9cb0e1f8ffdcb57aee6c1cde4fc80a995b68da233978)

Additions and Improvements

  • Use jemalloc in our docker images to improve memory allocation
  • Nodes with >50% custody requirements will be able to import blocks after downloading 50% of the sidecars, and the remaining sidecars will be handled as a background task. This includes nodes servicing validators in excess of 2048 eth effective balance, as well as voluntary supernodes.

Bug Fixes

  • fixed SSZ serialization bug causing an integer overflow while calculating ssz size.
  • fixed an issue with dependent root calculation which was causing future epoch block proposal duties to be recalculated.
  • fixed v1 proposer duties returning incompatible roots for the v1 endpoint (should be compatible with pre-fulu dependent roots).

26.2.0

Choose a tag to compare

@github-actions github-actions released this 11 Feb 12:41
137d5ff

This is a recommended update containing improvements and bug fixes.

RocksDB migration: The new default database system used by Teku is RocksDB. Existing LevelDB databases will not migrate automatically to RocksDB.

To migrate from LevelDB to RocksDB, you need to stop your Teku service and delete both the db directory and db.version file from your beacon node data directory.

Upon restart, your node will recreate the database using RocksDB.

Important: Before migrating, ensure you have --checkpoint-sync-url or --initial-state configured. Without one of these, Teku will fail to start after the database is deleted.

For more information regarding the incident that affected LevelDB nodes check this link.

Checkpoint syncing nodes: This release includes a new data columns sidecar backfiller. If you experience high CPU usage affecting validator duty performance, you can:

  • Reduce the backfill batch size (default: 3) by setting --Xp2p-reworked-sidecar-custody-sync-batch-size=1
  • Make sure --p2p-peer-upper-bound is not set too high (default: 100)

Downloads

  • Available as 26.2.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 3bcd56ac0a89e362f8296b8502e1fbbb7e549c86f6d6f62f2500cbed6c1e9437)
    • zip (sha256: dea3486fc97305c9ce1b354fec080ce23b467464912071f72b568f6f0197f182)

Breaking Changes

  • Removed development cli arg --Xp2p-reworked-sidecar-recovery-enabled.

Additions and Improvements

  • Using RocksDB as the default for new databases (previous databases using LevelDB will not be migrated automatically).
  • New data columns sidecar backfiller enabled. It improves how the beacon node downloads past blobs related data it needs to custody.
  • New CLI flag --rest-api-getblobs-sidecars-download-enabled allows the beacon node to serve getBlobs REST API responses by attempting to fetch missing blob sidecars from the p2p network. The new flag --rest-api-getblobs-sidecars-download-timeout controls the network fetch timeout (default: 5 seconds).
  • New CLI flag --force-clear-db to remove the beacon database on startup.

Bug Fixes

  • Added DOMAIN_BLS_TO_EXECUTION_CHANGE to spec api output.

Upcoming Breaking Changes

N/A

25.12.0

Choose a tag to compare

@tbenr tbenr released this 16 Dec 08:29
f0d872e

This is a recommended release update containing bug fixes and improvements.

Downloads

  • Available as 25.12.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: db14d26fe159f256da94f03c7f00fb9053601b159c979f2b32e884214405c989)
    • zip (sha256: 5ca5ee937331715124debfd0a5486395e709eba390e4f5bbb98fe009e5cd9fe3)

Additions and Improvements

  • Added new metrics beacon_earliest_available_slot and data_column_sidecar_processing_validated_total.
  • Block proposal duties can now be scheduled in advance for fulu.
  • Late block reorg enabled by default.
  • Block building preparation enabled by default. The beacon node will now pre-compute head and pre-state selection in preparation for block building. (Disabled in Gnosis).
  • Enabled a new version of sidecar recovery by default.

Bug Fixes

  • Fixed a storage issue which sometimes caused Teku to crash during shut down.
  • Fixed peer_count metric when using --metrics-publish-endpoint feature.
  • Fixed earliest_available_slot calculation.

Upcoming Breaking Changes

N/A

25.11.1

Choose a tag to compare

@lucassaldanha lucassaldanha released this 23 Nov 22:13
1f7394f

This is an optional update containing improvements and bug fixes.

Downloads

  • Available as 25.11.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 7304b82e567958087241a425b7504e36d1ae90f4681849359f0edf49b43295c3)
    • zip (sha256: 4bac32ade10e14b2b8059ef8f67b7393201617c21b4a23bdf92c0aeb953e1623)

Breaking Changes

  • jdk 24 docker image build has been removed in favour of jdk 25 docker image build.

Additions and Improvements

  • Added connection direction to beacon_peer_count metric.
  • Added metrics for outgoing LibP2P RPC requests (rpc_requests_total, rpc_requests_sent and rpc_requests_failed).

Bug Fixes

  • Fixed NPE in DasPreSampler.

Upcoming Breaking Changes

N/A

25.11.0

Choose a tag to compare

@lucassaldanha lucassaldanha released this 04 Nov 02:58
766920a

⚠️ This is a required update for mainnet for the upcoming Fulu upgrade! ⚠️

Downloads

  • Available as 25.11.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: b616f3c4306d18e61d00cc91099c9297e1e1650aacbcb5bf75f51d0d51c4058d)
    • zip (sha256: aebe30a05687f2e61b0e41ae000440db0d750b6c508120f05364dbb70280eb29)

Breaking Changes

N/A

Additions and Improvements

  • 🚀 Added mainnet configuration for the Fulu fork 🦓 due at epoch 411392, December 3, 2025, 09:49:11pm UTC
  • Implemented /eth/v1/beacon/states/{state_id}/proposer_lookahead which will be accessible after the Fulu fork.

Bug Fixes

N/A

Upcoming Breaking Changes

N/A