v20.11.0-RC1
Pre-releaseTimeline 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
. Thepegasys/teku
images will continue to be updated for the next few releases but please update your configuration to useconsensys/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
- GET
- 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
- By block root, slot or keyword (eg
- 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.