Releases: Consensys/teku
Release list
26.7.1
This is a strongly recommended update containing security fixes
Downloads
- Available as
26.7.1on Dockerhub - Download the binary distribution:
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
This is a recommended update containing the QUIC p2p protocol.
Downloads
- Available as
26.7.0on Dockerhub - Download the binary distribution:
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_totalmetric in the Docker images by adding thejdk.managementmodule to the custom Java runtime.
26.6.1
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.1on Dockerhub - Download the binary distribution:
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}/buildersBeacon 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
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.0on Dockerhub - Download the binary distribution:
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}/buildersBeacon 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
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.0on Dockerhub - Download the binary distribution:
Additions and Improvements
- Implemented PostPtcDuties rest api endpoint (gloas api).
- Added
/eth/v2/node/versionendpoint 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
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.0on Dockerhub - Download the binary distribution:
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
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-boundis not set too high (default: 100)
Downloads
- Available as
26.2.0on Dockerhub - Download the binary distribution:
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-enabledallows the beacon node to servegetBlobsREST API responses by attempting to fetch missing blob sidecars from the p2p network. The new flag--rest-api-getblobs-sidecars-download-timeoutcontrols the network fetch timeout (default: 5 seconds). - New CLI flag
--force-clear-dbto remove the beacon database on startup.
Bug Fixes
- Added
DOMAIN_BLS_TO_EXECUTION_CHANGEto spec api output.
Upcoming Breaking Changes
N/A
25.12.0
This is a recommended release update containing bug fixes and improvements.
Downloads
- Available as
25.12.0on Dockerhub - Download the binary distribution:
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
This is an optional update containing improvements and bug fixes.
Downloads
- Available as
25.11.1on Dockerhub - Download the binary distribution:
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
Downloads
- Available as
25.11.0on Dockerhub - Download the binary distribution:
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_lookaheadwhich will be accessible after the Fulu fork.
Bug Fixes
N/A
Upcoming Breaking Changes
N/A