mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-23 06:44:35 +00:00
Add voluntary exit via validator manager (#6612)
* #4303 * #4804 -Add voluntary exit feature to the validator manager -Add delete all validators by using the keyword "all"
This commit is contained in:
@@ -2,6 +2,54 @@
|
||||
|
||||
The `lighthouse validator-manager` uses the [Keymanager API](https://ethereum.github.io/keymanager-APIs/#/) 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.**
|
||||
|
||||
```bash
|
||||
lighthouse vm exit --vc-token <API-TOKEN-PATH> --validators pubkey1,pubkey2 --beacon-node http://beacon-node-url:5052
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```text
|
||||
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`:
|
||||
|
||||
```bash
|
||||
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](./validator_manager_api.md#list).
|
||||
|
||||
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`:
|
||||
|
||||
```bash
|
||||
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`:
|
||||
|
||||
```bash
|
||||
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`:
|
||||
@@ -16,6 +64,12 @@ 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`:
|
||||
|
||||
```bash
|
||||
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:
|
||||
@@ -37,3 +91,26 @@ To list the validators running on the validator client:
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
Validator 0x8de7ec501d574152f52a962bf588573df2fc3563fd0c6077651208ed20f24f3d8572425706b343117b48bdca56808416 has exited at epoch: 7
|
||||
```
|
||||
|
||||
You can safely shut down the validator client at this point.
|
||||
|
||||
Reference in New Issue
Block a user