Skip to content

Releases: Consensys/teku

v21.1.1

28 Jan 03:21
e515755
Compare
Choose a tag to compare

Upcoming Breaking Changes

  • The default docker image will be updated to Java 15. Java 15 based images are available now for testing with the -jdk15 suffix (e.g consensys/teku:develop-jdk15)
  • Teku currently publishes a head event on the REST API 4 seconds into a slot even if a block has not been received. In a future release this will be changed so head event is only published when a new
    chain head block is imported. The --Xvalidators-dependent-root-enabled option can be used to switch to the new behaviour now for testing.
    Note: this should be applied to both the beacon node and validator client if running separately.
  • 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.
  • Docker images are now being published to consensys/teku. The pegasys/teku images will continue to be updated for the next few releases but please update your configuration to use consensys/teku.
  • --validators-key-files and --validators-key-password-files have been replaced by --validator-keys. The old arguments will be removed in a future release.

Additions and Improvements

  • --validators-external-signer-public-keys arguments can now include URLs to load the public keys from. The URL should provide a list of public keys as a JSON array.
  • Added support for block, attestation and voluntary_exit event streams from the standard REST API.
  • If an advertised IP is set via --p2p-advertised-ip it is always used, regardless of the external IP discovered via the discv5 process.

Bug Fixes

  • Restored the state cache size to 160 to improve performance during sync.
  • Fixed help text for --validators-graffiti-file to refer to --validators-graffiti as the fallback not --graffiti.
  • Fixed validator client timeout when reading from the event stream to avoid unnecessary reconnections.
  • Reduced bandwidth usage during a forward sync by skipping requesting parents of blocks received via gossip as they are likely to be retrieved via the forward sync more efficiently.
  • Error conditions which prevent Teku from starting, such as being unable to load validator keys, are now reported to both the log and system error to make them more likely to be seen.

Downloads

  • Available as 21.1.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 560555c991365215278f72fcc2feec54dc90a966743c50f082fc6bc73ba852d4)
    • zip (sha256: fe21aa1d2d2ec13b5b6b6db259be77fbf5a5fe70cdbf7f77c961e6b4e530761f)

v21.1.0

13 Jan 01:04
dcfb0eb
Compare
Choose a tag to compare

Upcoming Breaking Changes

  • The default docker image will be updated to Java 15. Java 15 based images are available now for testing with the -jdk15 suffix (e.g consensys/teku:develop-jdk15)
  • Teku currently publishes a head event on the REST API 4 seconds into a slot even if a block has not been received. In a future release this will be changed so head event is only published when a new
    chain head block is imported. The --Xvalidators-dependent-root-enabled option can be used to switch to the new behaviour now for testing.
    Note: this should be applied to both the beacon node and validator client if running separately.
  • 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.
  • Docker images are now being published to consensys/teku. The pegasys/teku images will continue to be updated for the next few releases but please update your configuration to use consensys/teku.
  • --validators-key-files and --validators-key-password-files have been replaced by --validator-keys. The old arguments will be removed in a future release.

Additions and Improvements

  • Added support for loading graffiti from a file to allow it to be changed without restarting. Thanks to EdwardPrentice
  • Supported retrieving states as SSZ on the standard REST API /eth/v1/debug/beacon/states/:state_id when the Accept: application/octet-stream header is specified in the request.
  • Improved performance when verifying aggregate signatures.
  • Added verification of block signatures when downloading historic blocks after a snapshot sync.

Bug Fixes

  • Fixed issue which could lead to the incorrect proposer index being calculated after a long period without network connectivity.
  • Fixed issue where Teku did not exit at startup when validator keys were loaded.

Downloads

  • Available as 21.1.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 353b94e0b6c22e983f65c7792998ff70d4378b37d8e87e136e6510d2fe59da63)
    • zip (sha256: a96216df8b61a38ff98b0351565f63bb00f2d0b8d516fdfaaedb750cdfe45a14)

v20.12.1

22 Dec 22:21
9e28eff
Compare
Choose a tag to compare

Additions and Improvements

  • Add some performance optimizations to improve block inclusions rates and attestation accuracy.
  • Improve deserialization performance for large data structures, speeding up deserialization up to 1000x for large beacon states.
  • Build and publish docker images on OpenJDK 15 (which supports arm64) in addition to OpenJDK 14.
    Java 15 based images are available now for testing with the -jdk15 suffix (e.g consensys/teku:develop-jdk15)
  • Add periodic checks to make sure any configured external signer (--validators-external-signer-url) is reachable.
    If the external signing service cannot be reached, errors are logged each time teku fails to contact the external signer.
  • Limit the rate at which signature requests are sent to external signers at the start of each epoch.
  • Add options to configure keystore and truststore for TLS communication and authentication with external signer.
  • Add metrics to track validator participation (previous_epoch_participation_weight, previous_epoch_total_weight).
    This enables accurate tracking of network participation rate.
  • Add sync_state event type to events REST API endpoint.
  • Improve logging and validation around --initial-state arguments.

Bug Fixes

  • Fix an issue where teku could produce aggregate attestations when it should not.
  • Fix an issue with --log-file-name-pattern where teku would rotate log files to the default data directory even when a custom data directory was specified using --data-path.
  • Break up requests for validator information into batches to avoid sending requests that are too large.
  • Fix a bug in our peer selection logic so that we now select a subset of peers randomly in order to guard against
    eclipse attacks.

Downloads

  • Available as 20.12.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 18277e16fa4dbb821242e1fcad04e4f33373bfa754ccf2dd8ffa2ef0764494d2)
    • zip (sha256: 09d2d77ce81c76bbe71727ff57a5d7a6e517fe99a8d837304f6ff10702c7330c)

v20.12.0

07 Dec 09:47
c2403bd
Compare
Choose a tag to compare

Additions and Improvements

  • Improved support for Nethermind and OpenEthereum when historic blocks are not fully available.
  • Improved logging for Eth1 status to provide a warning when the node fails to respond to requests for deposit logs.
    Also includes a message to the console when all current deposit logs have been received.
  • Maximum number of blocks per request for Eth1 deposit logs can now be configured with --eth1-deposit-contract-max-request-size.
  • Added support for setting CORS headers in REST API to enable access from browser-based apps.
  • voluntary-exit sumcommand now defaults to using the current epoch.

Bug Fixes

  • Improved help text for --eth1-deposit-contract-address to clarify it is not required for named networks.
  • Reduced default number of blocks per request for eth_getLogs requests further.
  • Fixed issue in external validator which could result in multiple requests for fork data from the beacon node at startup.
  • Reduced memory usage of in memory beacon states.
  • Fix AbstractRouter internal error on message control exception.
  • Fix incorrect penalty applied to peers when requested gossip data was received from a different peer before the original peer's response.

Downloads

  • Available as 20.12.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: e6cf230b28cdf462b7e1a3c21418ab8d0cc1b4d00a1cc2af975b027e4d760d30)
    • zip (sha256: 95d1ad3f7de3e4b50da042c2fca9e91e60094f980230e84dbd66fc20e5ddb9ac)

v20.11.1

30 Nov 05:31
cc1f13d
Compare
Choose a tag to compare

Upcoming Breaking Changes

  • Docker images are now being published to consensys/teku. The pegasys/teku images will continue to be updated for the next few releases but please update your configuration to use consensys/teku.
  • --validators-key-files and --validators-key-password-files have been replaced by --validator-keys. The old arguments will be removed in a future release.

20.11.1

Bug Fixes

  • Resolve slow lookup for validators by public key, particularly when the public key is not a known validator.
  • Ensure correct source target is used when creating attestations for an empty slot at the start of the epoch.
  • Fix --initial-state option so it is included in help output and support --initial-state "" to ignore built-in states and recalculate genesis from the Eth1 chain.
  • Improved error message when Eth1 node fails to return data for a requested block.
  • Reduced batch size when retrieving deposits from the Eth1 chain. Improves compatibility with Geth nodes with limited resources.

Downloads

  • Available as 20.11.1 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 187b842aa3b2333d34814cba264c6d8d8a6f4dca89762b70d46898428d2f01cc)
    • zip (sha256: 07c547f79cf8502ebed0469440ea2c577e420dbb0a374a7ff2680fff38e34be4)

v20.11.0

25 Nov 05:39
2fdb4c2
Compare
Choose a tag to compare

Upcoming Breaking Changes

  • Docker images are now being published to consensys/teku. The pegasys/teku images will continue to be updated for the next few releases but please update your configuration to use consensys/teku.
  • --validators-key-files and --validators-key-password-files have been replaced by --validator-keys. The old arguments will be removed in a future release.

20.11.0

The beacon chain is set to launch with the MainNet genesis state now set. The beacon chain will launch on 1 December 2020 at 12:00:23 UTC.
Teku 20.11.0 is fully production ready and has full support for the beacon chain Mainnet.

Breaking Changes

  • REST API endpoint /eth/v1/beacon/pool/attestations now accepts an array of attestations instead of a single attestation.

Additions and Improvements

  • Full support for Eth2 MainNet. Genesis state and bootnodes are now configured as part of the --network mainnet option.
  • Voluntary exits and slashings submitted via the REST API are now broadcast to the gossip network.
  • Added /teku/v1/admin/liveness endpoint which always returns 200 OK to be used to check if the REST API is live.
  • Added dependent_root field to attester and block producer duties as well as
    current_duty_dependent_root and previous_duty_dependent_root to the head events to aid validator clients in determining when duties are invalidated by changes in the chain.
  • Tightened validation of data from the beacon node in the validator client to ensure blocks and attestations from far future slots are not signed.

Bug Fixes

  • Fixed incorrect expected attestation metric.
  • Fixed incorrect beacon_previous_correct_validators metrics.
  • Fixed race condition during validator startup which could lead to duties not being performed for the first two epochs.
  • Provide a human-friendly error message when the --network argument is unknown.
  • Provide more human-friendly error messages when invalid options are given to the voluntary-exit subcommand.
  • Avoided duplicate epoch processing during block creation.
  • Reduce noise from UNKNOWN_PARENT errors when syncing.
  • Drop discovery session when a malformed authheadermessage packet is received.

Downloads

  • Available as 20.11.0 on Dockerhub
  • Download the binary distribution:
    • tar.gz (sha256: 55687b9e206e4221455569cbbcec171866accb85a4180680d02fcf5116ab7064)
    • zip (sha256: 1a4e86a75fe4c8bb6346eaf0443d54fb19d217cab8b8271570ee1007e741fcd9)

v20.11.0-RC2

20 Nov 01:31
a73156f
Compare
Choose a tag to compare
v20.11.0-RC2 Pre-release
Pre-release

Additions and Improvements

  • Optimised gossip handling in jvm-libp2p.
  • Optimised attestation and aggregate verification, ensuring signatures are only verified once.
  • Added new metrics beacon_current_correct_validators and beacon_previous_correct_validators to report the number of validators that attested to the correct head block in the current and previous epochs.

Bug Fixes

  • Fixed seenTTL value in gossipsub configuration. Significantly reduces rate of gossip traffic.
  • Avoid potential errors when regenerating states immedately after starting from a non-genesis state.
  • Fixed issue where validator duties may not be performed during the first two epochs after restart.

v20.11.0-RC1

18 Nov 01:11
8ceebf6
Compare
Choose a tag to compare
v20.11.0-RC1 Pre-release
Pre-release

Timeline to Mainnet

The journey to launching the beacon chain is in its final stage with the announcement of the Eth2 deposit contract, and minimum genesis time of Tuesday, December 1, 2020 12:00:00 PM UTC.

Teku is ready to be a part of the Mainnet launch, and we're coordinating with other client teams to make the launch a success. Here's a timeline of key events, including the Teku releases that will lead up to Mainnet launch.

Note: The exact genesis time depends on when enough deposits are received. If it takes longer
to reach the minimum validators required, then the Mainnet genesis won't be set until enough
validators are registered. The Mainnet chain will then start 7 days after the genesis
is set. There will be a Teku release within the 7 days before the Mainnet chain starts, and users
should ensure they upgrade to it.


Event Scheduled Date Notes
Teku 0.12.14 release 11 November Includes the Mainnet ready specification available with the --network mainnet command line option.
Teku 20.11.0-RC1 release 18 November Makes mainnet the default network. Legacy options and APIs will be removed, see 20.11.0-RC1 Breaking Changes
Earliest date for Mainnet genesis state to be set 24 November If enough deposits are received by this time, the Mainnet genesis state will be generated. Otherwise this will be delayed until enough deposits are received
Teku 20.11.0 release Around 26 November First full production-ready release of Teku.
Earliest date for Mainnet launch 1 December This will be delayed if required deposit amounts are not received by 24 November. The chain will always launch 7 days after the genesis state is set.

Mainnet Genesis Release

Regardless of the Mainnet launch date, users should expect a Teku release in the week leading up to
the chain starting. It is important to upgrade your nodes to this version before the chain starts to
ensure a smooth launch.

CalVer Versioning

Teku will adopt the CalVer versioning convention for our production ready releases using the
YY.M.patch format. YY for year (20, 21, 22 etc), M for month (1, 2, 3, …, 11, 12) and patch for patch release number.

The final release on the old versioning system will be 0.12.14.

The first production-ready release will be 20.11.0.

Backward Compatibility Policy

Only versions with a 0 patch number may contain backwards incompatible changes (e.g. 20.11.0, 20.12.0 etc).
Upcoming backwards incompatible changes will be noted in the changelog at least one month prior to being applied.

Upcoming Breaking Changes

  • Docker images are now being published to consensys/teku. The pegasys/teku images will continue to be updated for the next few releases but please update your configuration to use consensys/teku.
  • --validators-key-files and --validators-key-password-files have been replaced by --validator-keys. The old arguments will be removed in a future release.

20.11.0-RC1

Breaking Changes

  • The default network is now mainnet. Use --network medalla to continue using the Medalla testnet.
  • REST API endpoints have been migrated to the standard API and deprecated endpoints removed. Replacements:
    • GET /eth/v1/validator/duties/attester/:epoch replaced by POST /eth/v1/validator/duties/attester/:epoch
    • /network/enr replaced by /eth/v1/node/identity
    • /network/listen_addresses replaced by /eth/v1/node/identity
    • /network/peer_id replaced by /eth/v1/node/identity
    • /network/peers replaced by /eth/v1/node/peers
    • /network/peer_count replaced by /eth/v1/node/peers
    • /network/listen_port replaced by /eth/v1/node/identity
    • /node/fork replaced by /eth/v1/beacon/states/{state_id}/fork
    • /node/genesis_time replaced by /eth/v1/beacon/genesis
    • /node/syncing replaced by /eth/v1/node/syncing
    • /node/version replaced by /eth/v1/node/version
    • GET /validator/attestation replaced by /eth/v1/validator/attestation_data
    • POST /validator/attestation replaced by /eth/v1/beacon/pool/attestations
    • GET /validator/block replaced by /eth/v1/validator/blocks/{slot}
    • POST /validator/block replaced by /eth/v1/beacon/blocks
    • /validator/aggregate_attestation replaced by /eth/v1/validator/aggregate_attestation
    • POST /validator/duties replaced by POST /eth/v1/validator/duties/attester/{epoch} and GET /eth/v1/validator/duties/proposer/{epoch}
    • /validator/aggregate_and_proofs replaced by /eth/v1/validator/aggregate_and_proofs
    • /validator/beacon_committee_subscription replaced by /eth/v1/validator/beacon_committee_subscriptions
    • /validator/persistent_subnets_subscription deprecated. The beacon node now automatically establishes persistent subnet subscriptions based on calls to /eth/v1/validator/beacon_committee_subscriptions
    • /beacon/block deprecated. Replaced by /eth/v1/beacon/blocks/{block_id}
    • /admin/log_level moved to /teku/v1/admin/log_level
  • Validator subcommands for generating and registering validators have been removed. Please use the Eth2 Launchpad to register validators, which is the most secure way of generating keys and sending deposits.
  • Log files are now stored under the specified --data-path in <data-path>/logs/teku.log. The location is unchanged if --data-path is not specified.

Additions and Improvements

  • Switched default network to mainnet. Note that as the MainNet genesis state is not yet set, an --eth1-endpoint must be provided when using MainNet.
  • Added support for the pyrmont testnet via --network pyrmont.
  • Added teku voluntary-exit subcommand to allow creating and sending voluntary exit operations for validators.
  • Syncing from a non-genesis state (weak subjectivity sync) is now fully supported. Use --initial-state to specify a finalized state to begin syncing from.
  • Added two REST APIs to download states as SSZ, suitable for use with --initial-state.
    • By block root, slot or keyword (eg finalized): /teku/v1/beacon/blocks/:block_id/state
    • By state root, slot or keyword (eg finalized): /teku/v1/beacon/states/:state_id
  • Provide clearer information in logs when external signers refuse to sign because of a potential slashing condition.
  • Provide more detailed information when internal slashing protection refuses to sign because of a potential slashing condition.
  • Allow built-in slashing protection to be disabled for external signers with --validators-external-signer-slashing-protection-enabled=false
  • Added support for slashing protection interchange format v5.
  • Historical blocks are now backfilled when syncing from a non-genesis state.

Bug Fixes

  • Updated jvm-libp2p to fix CantDecryptInboundException errors in logs.
  • Reduced log level when malformed response is received from a remote peer during sync.
  • Fixed incompatibility with the standard slashing protection interchange format.
  • Fix OpenAPI specification to remove the invalid exampleSetFlag field.
  • Fix response content for /eth/v1/beacon/states/:state_id/finality_checkpoints in OpenAPI specification.

v0.12.14

11 Nov 03:08
52e7811
Compare
Choose a tag to compare
v0.12.14 Pre-release
Pre-release

Timeline to Mainnet

The journey to launching the beacon chain is in its final stage with the announcement of the Eth2 deposit contract, and minimum genesis time of Tuesday, December 1, 2020 12:00:00 PM UTC.

Teku is ready to be a part of the Mainnet launch, and we're coordinating with other client teams to make the launch a success. Here's a timeline of key events, including the Teku releases that will lead up to Mainnet launch.

Note: The exact genesis time depends on when enough deposits are received. If it takes longer
to reach the minimum validators required, then the Mainnet genesis won't be set until enough
validators are registered. The Mainnet chain will then start 7 days after the genesis
is set. There will be a Teku release within the 7 days before the Mainnet chain starts, and users
should ensure they upgrade to it.


Event Scheduled Date Notes
Teku 0.12.14 release 11 November Includes the Mainnet ready specification available with the --network mainnet command line option.
Teku 20.11.0-RC1 release 18 November Makes mainnet the default network. Legacy options and APIs will be removed, see Upcoming Breaking Changes
Earliest date for Mainnet genesis state to be set 24 November If enough deposits are received by this time, the Mainnet genesis state will be generated. Otherwise this will be delayed until enough deposits are received
Teku 20.11.0 release Around 26 November First full production-ready release of Teku.
Earliest date for Mainnet launch 1 December This will be delayed if required deposit amounts are not received by 24 November. The chain will always launch 7 days after the genesis state is set.

Mainnet Genesis Release

Regardless of the Mainnet launch date, users should expect a Teku release in the week leading up to
the chain starting. It is important to upgrade your nodes to this version before the chain starts to
ensure a smooth launch.

CalVer Versioning

Teku will adopt the CalVer versioning convention for our production ready releases using the
YY.M.patch format. YY for year (20, 21, 22 etc), M for month (1, 2, 3, …, 11, 12) and patch for patch release number.

The final release on the old versioning system will be 0.12.14.

The first production-ready release will be 20.11.0.

Backward Compatibility Policy

Only versions with a 0 patch number may contain backwards incompatible changes (e.g. 20.11.0, 20.12.0 etc).
Upcoming backwards incompatible changes will be noted in the changelog at least one month prior to being applied.

Upcoming Breaking Changes

  • Docker images are now being published to consensys/teku. The pegasys/teku images will continue to be updated for the next few releases but please update your configuration to use consensys/teku.
  • eth2stats clients should now use the v1 node type with Teku and not the teku node type. The teku node type uses the legacy REST APIs which will be removed in the next release.
  • REST API endpoints are being migrated to the standard API. Deprecated endpoints will be removed in the 20.11.0-RC1 release. Current replacements:
    • GET /eth/v1/beacon/states/{state_id}/validators/{validator_id} replaced by POST /eth/v1/beacon/states/{state_id}/validators/{validator_id}
    • /network/enr replaced by /eth/v1/node/identity
    • /network/listen_addresses replaced by /eth/v1/node/identity
    • /network/peer_id replaced by /eth/v1/node/identity
    • /network/peers replaced by /eth/v1/node/peers
    • /network/peer_count replaced by /eth/v1/node/peers
    • /network/listen_port replaced by /eth/v1/node/identity
    • /node/fork replaced by /eth/v1/beacon/states/{state_id}/fork
    • /node/genesis_time replaced by /eth/v1/beacon/genesis
    • /node/syncing replaced by /eth/v1/node/syncing
    • /node/version replaced by /eth/v1/node/version
    • GET /validator/attestation replaced by /eth/v1/validator/attestation_data
    • POST /validator/attestation replaced by /eth/v1/beacon/pool/attestations
    • GET /validator/block replaced by /eth/v1/validator/blocks/{slot}
    • POST /validator/block replaced by /eth/v1/beacon/blocks
    • /validator/aggregate_attestation replaced by /eth/v1/validator/aggregate_attestation
    • POST /validator/duties replaced by POST /eth/v1/validator/duties/attester/{epoch} and GET /eth/v1/validator/duties/proposer/{epoch}
    • /validator/aggregate_and_proofs replaced by /eth/v1/validator/aggregate_and_proofs
    • /validator/beacon_committee_subscription replaced by /eth/v1/validator/beacon_committee_subscriptions
    • /validator/persistent_subnets_subscription deprecated. The beacon node now automatically establishes persistent subnet subscriptions based on calls to /eth/v1/validator/beacon_committee_subscriptions
    • /beacon/block deprecated. Replaced by /eth/v1/beacon/blocks/{block_id}
  • --validators-key-files and --validators-key-password-files have been replaced by --validator-keys. The old arguments will be removed in a future release.
  • Validator subcommands for generating and registering validators are now deprecated and will be removed in a future release to encourage the use of the Eth2 Launchpad, which is the most secure way of generating keys and sending deposits.

0.12.14

Breaking Changes

  • In post data for /eth/v1/validator/aggregate_and_proofs, index has been renamed to aggregator_index and attestation has been renamed to aggregate reflecting the latest version of the standard API spec.
  • Removed network definitions for spadina and zinken testnets which are no longer active.
  • The validator subcommands to generate validator keys and send deposit transactions have been removed. Use the Eth2 Launchpad to register validators.

Additions and Improvements

  • Added the Mainnet network definition. To use Mainnet, ensure the ETH1 node is connected to Eth1 Mainnet and specify --network mainnet.
  • New standard API endpoints:
    • GET /eth/v1/config/fork_schedule
    • GET /eth/v1/beacon/blocks/{block_id}
    • GET /eth/v1/beacon/blocks/{block_id}/attestations
    • GET /eth/v1/beacon/blocks/{block_id}/root
    • POST /eth/v1/beacon/pool/voluntary_exits
    • POST /eth/v1/beacon/pool/proposer_slashings
    • POST /eth/v1/beacon/pool/attester_slashings
    • GET /eth/v1/config/deposit_contract
  • Added support for the Toledo devnet.
  • Early access: Weak subjectivity sync no longer requires the initial block. Only the state needs to be provided via --Xws-initial-state. Additionally the Xws-initial-state option can be specified via a config file.
  • Support either plain text or JSON responses from external signers.
  • Identify which validator was affected when validator duties fail.
  • Removed support for uncompressed SSZ encoding for gossip and p2p RPC. All networks have been using SSZ_SNAPPY encoding for some time.

Bug Fixes

  • Fixed an issue where deposit events were retrieved from a range of blocks that was too large. This resulted in overloading local Geth nodes running on Mainnet, and exceeding the 10,000 log event limit in Infura responses.
  • Reduce log level for RpcTimeoutException during sync.
  • Check equality of the header in proposer slashings, not the signed wrapper. Fixes a potential state transition incompatibility found by fuzz testing.

v0.12.13

04 Nov 02:54
d16be28
Compare
Choose a tag to compare
v0.12.13 Pre-release
Pre-release

Breaking Changes

  • /eth/v1/beacon/{state}/committees now specifies the epoch as a query parameter instead of a part of the path
  • Discovery has been updated to discv5.1

Additions and Improvements

  • Reduced memory usage when finalizing after a long period of non-finalization and provided progress messages while finalized blocks are stored
  • New standard API endpoints:
    • GET /eth/v1/debug/beacon/heads
  • Updated discovery to use discv5.1 standard
  • Significantly reduced CPU usage, particularly during long periods of non-finalization by optimising the get_ancestor method in fork choice
  • Added libp2p_gossip_messages_total metric to report the number of gossip messages processed by gossip topic
  • Apache license notice is now displayed on startup

Bug Fixes

  • Handled retrieving states for finalized or head when the actual slot is empty
  • Fixed issue where EIP2335 keystores without a path or uuid field were rejected as invalid
  • Fixed error codes returned when validators were not found in standard API queries
  • Skip loading the latest finalized state on startup as it is not required to recreate the memory store
  • Fixed handling of empty responses from peers when requesting a single block that they do not have