Skip to content

v21.12.0

Compare
Choose a tag to compare
@ajsutton ajsutton released this 10 Dec 01:52
· 2621 commits to master since this release
7dd3378

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)