Skip to content

v20.11.0-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@ajsutton ajsutton released this 18 Nov 01:11
· 3559 commits to master since this release
8ceebf6

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.