v0.12.11
Pre-releaseAdditions and Improvements
-
Teku now supports running the validator client as a separate process via the
teku validator-client
subcommand. The in-process validator client is still supported.IMPORTANT: To avoid being slashed, ensure validator keys are only passed as arguments to either the beacon node or the validator client but never both at the same time.
-
Migrates to a new directory structure for data storage to provide clear separation between beacon node and validator files. Existing databases will be automatically migrated.
-
Improved management of states to reduce on-heap memory usage during long periods of non-finalization.
-
Head update and chain reorg events are no longer published during sync. A single coalesced event is published when sync completes.
-
Reduced database growth rate during periods of non-finalization. State snapshots are only stored every two epochs instead of each epoch. This can be further adjusted with
--Xhot-state-persistence-frequency
. -
New standard REST API endpoints:
/eth/v1/beacon/headers/{block_id}
/eth/v1/beacon/states/:state_id/committees/
/eth/v1/beacon/states/:state_id/committees/:epoch
/eth/v1/beacon/states/:state_id/finality_checkpoints
/eth/v1/beacon/states/:state_id/validators
/eth/v1/beacon/states/:state_id/validator_balances
/eth/v1/validator/aggregate_attestation
/eth/v1/validator/aggregate_and_proofs
/eth/v1/validator/beacon_committee_subscriptions
/eth/v1/validator/attestation_data
/eth/v1/beacon/pool/attestations
/eth/v1/beacon/states/:state_id/root
/eth/v1/beacon/blocks
/eth/v1/validator/blocks/{slot}
-
/eth/v1/validator/duties/attester/:epoch
now includes thecommittees_at_slot
value. -
/eth/v1/validator/duties/attester/:epoch
now supports using thePOST
method to specify validator IDs, avoiding URL length limits. -
The beacon node now automatically manages persistent subnet subscriptions based on the requests to
/eth/v1/validator/beacon_committee_subscriptions
endpoint -
Log to the console if the ETH1 node's chain ID doesn't match the expected value from the ETH2 network definition. This alerts users if the ETH1 node is sync'd to the wrong ETH1 network. Thanks to
systemfreund
. -
Performance tracker reports now include information on duties which could not be performed due to an error.
-
Added support for v1.0.0-rc.0 of the beacon chain spec.
-
Added a
beacon_attestation_pool_size
metric to report the number of attestations held in the attestation pool. -
StrictNoSign
requirements are now enforced on gossip messages. Messages withfrom
,signature
orseqno
fields will be rejected. -
Removed support for
onyx
andaltona
options to the--network
command line option. These networks used an older, incompatible version of the beacon chain spec and have been shut down. -
The
--config-file
option can now be used to provide options for all subcommands. -
Added support for checking the weak subjectivity period and checkpoint. Violations are currently reported to the log file only while the remaining details and infrastructure for handling the weak subjectivity period are finalized.
Bug Fixes
- Fixed "Unhandled error while processes req/response"
NullPointerException
. - Fixed issue where performance tracker logs counted attestations twice.
- Force external signer connections to use HTTP1.1. HTTP2 connections were regularly failing in Azure.
- Fixed incompatibility with Lighthouse caused by sending an unexpected
RESET
after both sides of a stream were closed. - Fixed issue where REST API reported a 500 internal server error when syncing instead of 503.
- Fixed issue where REST APIs returning validator information incorrectly used the effective balance instead of the actual balance.
Upcoming Breaking Changes
- REST API endpoints are being migrated to the standard API. Deprecated endpoints will be removed in a future 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
- GET
--validators-key-files
and--validators-key-password-files
have been replaced by--validator-keys
. The old arguments still work but 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.