Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Managing Validators

The lighthouse validator-manager uses the Keymanager API to list, import and delete keystores via the HTTP API. This requires the validator client running with the flag --http. By default, the validator client HTTP address is http://localhost:5062. If a different IP address or port is used, add the flag --vc-url http://IP:port_number to the command below.

Exit

The exit command exits one or more validators from the validator client. To exit:

Important note: Once the --beacon-node flag is used, it will publish the voluntary exit to the network. This action is irreversible.

lighthouse vm exit --vc-token <API-TOKEN-PATH> --validators pubkey1,pubkey2 --beacon-node http://beacon-node-url:5052

Example:

lighthouse vm exit --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators 0x8885c29b8f88ee9b9a37b480fd4384fed74bda33d85bc8171a904847e65688b6c9bb4362d6597fd30109fb2def6c3ae4,0xa262dae3dcd2b2e280af534effa16bedb27c06f2959e114d53bd2a248ca324a018dc73179899a066149471a94a1bc92f --beacon-node http://localhost:5052

If successful, the following log will be returned:

Successfully validated and published voluntary exit for validator 0x8885c29b8f88ee9b9a37b480fd4384fed74bda33d85bc8171a904847e65688b6c9bb4362d6597fd30109fb2def6c3ae4
Successfully validated and published voluntary exit for validator
0xa262dae3dcd2b2e280af534effa16bedb27c06f2959e114d53bd2a248ca324a018dc73179899a066149471a94a1bc92f

To exit all validators on the validator client, use the keyword all:

lighthouse vm exit --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators all --beacon-node http://localhost:5052

To check the voluntary exit status, refer to the list command.

The following command will only generate a presigned voluntary exit message and save it to a file named {validator_pubkey}.json. It will not publish the voluntary exit to the network.

To generate a presigned exit message and save it to a file, use the flag --presign:

lighthouse vm exit --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators all --presign

To generate a presigned exit message for a particular (future) epoch, use the flag --exit-epoch:

lighthouse vm exit --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators all --presign --exit-epoch 1234567 

The generated presigned exit message will only be valid at or after the specified exit-epoch, in this case, epoch 1234567.

Delete

The delete command deletes one or more validators from the validator client. It will also modify the validator_definitions.yml file automatically so there is no manual action required from the user after the delete. To delete:

lighthouse vm delete --vc-token <API-TOKEN-PATH> --validators pubkey1,pubkey2

Example:

lighthouse vm delete --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators 0x8885c29b8f88ee9b9a37b480fd4384fed74bda33d85bc8171a904847e65688b6c9bb4362d6597fd30109fb2def6c3ae4,0xa262dae3dcd2b2e280af534effa16bedb27c06f2959e114d53bd2a248ca324a018dc73179899a066149471a94a1bc92f

To delete all validators on the validator client, use the keyword all:

lighthouse vm delete --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators all

Import

The import command imports validator keystores generated by the ethstaker-deposit-cli. To import a validator keystore:

lighthouse vm import --vc-token <API-TOKEN-PATH> --keystore-file /path/to/json --password keystore_password

Example:

lighthouse vm import --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --keystore-file keystore.json --password keystore_password

List

To list the validators running on the validator client:

lighthouse vm list --vc-token ~/.lighthouse/mainnet/validators/api-token.txt

The list command can also be used to check the voluntary exit status of validators. To do so, use both --beacon-node and --validators flags. The --validators flag accepts a comma-separated list of validator public keys, or the keyword all to check the voluntary exit status of all validators attached to the validator client.

lighthouse vm list --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators 0x8de7ec501d574152f52a962bf588573df2fc3563fd0c6077651208ed20f24f3d8572425706b343117b48bdca56808416 --beacon-node http://localhost:5052

If the validator voluntary exit has been accepted by the chain, the following log will be returned:

Voluntary exit for validator 0x8de7ec501d574152f52a962bf588573df2fc3563fd0c6077651208ed20f24f3d8572425706b343117b48bdca56808416 has been accepted into the beacon chain, but not yet finalized. Finalization may take several minutes or longer. Before finalization there is a low probability that the exit may be reverted.
Current epoch: 2, Exit epoch: 7, Withdrawable epoch: 263
Please keep your validator running till exit epoch
Exit epoch in approximately 480 secs

When the exit epoch is reached, querying the status will return:

Validator 0x8de7ec501d574152f52a962bf588573df2fc3563fd0c6077651208ed20f24f3d8572425706b343117b48bdca56808416 has exited at epoch: 7

You can safely shut down the validator client at this point.