Skip to main content

Start Teku from a recent state

To get Teku up and running in only a few minutes, start Teku from a recent finalized checkpoint state rather than syncing from genesis. Using a checkpoint state enables Teku to sync within the weak subjectivity period.

When starting from a recent checkpoint, Teku downloads historic chain data in the background.

tip

You need access to a beacon node with REST API enabled (for example, Teku) to download the finalized checkpoint state file.

Alternatively, you can use a checkpoint state endpoint from this community-maintained list of checkpoint state endpoints.

The following command downloads a recent finalized checkpoint state from a beacon node, and starts Teku:

teku --eth1-endpoint=http://localhost:8545 \
--validator-keys=/Users/me/mainnet/validator/keys:/Users/me/mainnet/validator/passwords \
--checkpoint-sync-url=https://beaconstate.ethstaker.cc

The command uses the --checkpoint-sync-url option to download the finalized checkpoint state. When using this option, you must delete your existing beacon node database, for example <data-path>/beacon/db, to enable Teku to download the new, finalized state for your node.

note

You can also download a finalized checkpoint state file, and specify the location using the --initial-state option. To download the file and name it state.ssz run:

curl -o state.ssz -H 'Accept: application/octet-stream' http://other-node:5051/eth/v2/debug/beacon/states/finalized

And to start Teku, run:

teku --eth1-endpoint=http://localhost:8545 \
--validator-keys=/Users/me/mainnet/validator/keys:/Users/me/mainnet/validator/passwords \
--initial-state=state.ssz

Another option is to use --initial-state with the URL of the state you want to use:

teku --eth1-endpoint=http://localhost:8545 \
--validator-keys=/Users/me/mainnet/validator/keys:/Users/me/mainnet/validator/passwords \
--initial-state=http://other-node:5051/eth/v2/debug/beacon/states/finalized