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.
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.
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