v0.12.14
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 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
. Thepegasys/teku
images will continue to be updated for the next few releases but please update your configuration to useconsensys/teku
. - eth2stats clients should now use the
v1
node type with Teku and not theteku
node type. Theteku
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}
- GET
--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 toaggregator_index
andattestation
has been renamed toaggregate
reflecting the latest version of the standard API spec. - Removed network definitions for
spadina
andzinken
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
- GET
- 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 theXws-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 usingSSZ_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.