Teku
WARNING: Do not import your validator keys into multiple validator clients and run them at the same time, or you might get slashed. If moving validators to a new setup or different validator client, ensure deletion of the previous validator keys before continuing.
Storing your keystore password in a text file is required so that Teku can decrypt and load your validators automatically.
Create a temporary file to store your keystore password. Type your password in this file.
sudo nano $HOME/validators-password.txtTo exit and save, press Ctrl + X, then Y, then Enter.
Confirm that your keystore password is correct.
sudo cat $HOME/validators-password.txtWhen specifying directories for your validator-keys, Teku expects to find identically named keystore and password files.
For example keystore-m_12221_3600_1_0_0-11222333.json and keystore-m_12221_3600_1_0_0-11222333.txt
Run the following command to create a corresponding password file for every one of your validators.
for f in $HOME/staking-deposit-cli/validator_keys/keystore*.json; do sudo cp $HOME/validators-password.txt $HOME/staking-deposit-cli/validator_keys/$(basename $f .json).txt; doneCopy your validator_keys to the data directory.
sudo mkdir -p /var/lib/teku/validator_keys
sudo cp $HOME/staking-deposit-cli/validator_keys/keystore* /var/lib/teku/validator_keysSetup ownership permissions, including hardening the access to this directory.
sudo chown -R consensus:consensus /var/lib/teku/
sudo chmod -R 700 /var/lib/teku/validator_keysVerify that your validator's keystore .json files and validator's passwords .txt files are present by checking the following directory.
sudo ls -l /var/lib/teku/validator_keysExample output of two validator's keystore.json files with matching password.txt files.
-rwx------ 1 consensus consensus 710 Sep 19 23:39 keystore-m_12381_3600_1_0_0-1695165818.json
-rwx------ 1 consensus consensus 43 Sep 19 23:39 keystore-m_12381_3600_1_0_0-1695165818.txt
-rwx------ 1 consensus consensus 710 Sep 19 23:39 keystore-m_12381_3600_2_0_0-1695165819.json
-rwx------ 1 consensus consensus 43 Sep 19 23:39 keystore-m_12381_3600_2_0_0-1695165819.txtDelete the temporary keystore password file.
sudo rm $HOME/validators-password.txtFinally, restart Teku to use the new validators.
sudo systemctl restart consensusCheck your logs to confirm that the validators are up and functioning.
sudo journalctl -fu consensus | cczeFor example when using 2 validators, logs will show the following:
INFO - Loading 2 validator keys...
INFO - Loaded 2 Validators: 95d3986, 82b225fPress Ctrl + C to exit the logs.
Example of Synced Teku Validator Client Logs
Once the validator is active and proceeded through the validator activation queue, attestation messages will appear indicating successful attestations.
Notice the key words "
Validator *** Published attestation".
teku[65367]: 03:50:51.761 INFO - Validator cc1f3ade status is active_ongoing.
teku[65367]: 03:50:52.203 INFO - Validator *** Published attestation Count: 1, Slot: 31362, Root: 90FC0DF4D5958E469134A015203B53B3FB94A0FC1038FB2462882906D4A729A2Last updated