mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-07 16:55:46 +00:00
Validator manager commands for the Keymanager APIs (#6261)
* Validator manager commands for standard key-manager APIs * Merge latest unstable * Fix Some in lib.rs * Replace Arg::with_name with Arg::new * Update takes_value * Remove clap::App * Change App to Command * Add command in use * Remove generic in ArgMatches * Fix matches.get_flag * Fixes * fix error handling * SetTrue in import * Fix * Fix builder-proposal flag (will delete the flag later) * Minor fix * Fix prefer_builder_proposals * Remove unwrap * Error handling from Michael * Add cli help text * Use None in import to simplify * Delete unwrap * Revert flags option * Simplify help command code * Remove flag header in move * Merge remote-tracking branch 'origin/unstable' into pahor/validator-manager-standard-keystore * Add log in VC when keystore is deleted * Delete duplicated log when validator does not exist * Simplify log code * Rename remove to delete * cargo-fmt * Try to remove a function * make-cli * Error handling * Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm * Update CLI hel text * make-cli * Fix checks * Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm * Try to fix check errors * Fix test * Remove changes * Update flag name * CLI display order * Move builde_proposals flag * Add doc * mdlint * Update validator_manager/src/list_validators.rs Co-authored-by: Mac L <mjladson@pm.me> * Delete empty line * Fix list * Simplify delete * Add support to delete more validators * Fix test * Rename response * Add (s) * Add test to delete multiple validators * Book and cli * Make cli * Only log when keystore is deleted * Revise deletion log * Add validator pubkey to error message * Merge import * Thank you Mac * Test * Add flags * Error handling for password * make cli * Merge remote-tracking branch 'origin/unstable' into vm * make cli * Fix test * Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm * Fix test * vm test * Debug trait thank you Michael * Fix test * Merge branch 'unstable' into vm * test * testing * Combine import validator(s) * make cli * Add requires * Update book * mdlint * Only show import log when import is successful * delete testing * Test for standard format * Test standard format * Test * fix builder_proposals flag * Fix test for standard format * Add requires * Fix vm test * make cli * Remove flag header * Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm * make cli * Delete space * Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm * Merge branch 'unstable' into vm * Rename delete_validator to delete_validators * Rearrange * Remove pub in run function * Fix grammar * Apply suggestions from code review Co-authored-by: Michael Sproul <micsproul@gmail.com> * Remove description * Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm * Close bracket * make cli * Revise list code and test * Revise import flag * make cli * Comment out test * Update vm test * Simplify * Merge remote-tracking branch 'origin/unstable' into vm * make cli * Add test * Add password as a requirement for keystore file * Correct flags in docs * typo
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
* [The `validator-manager` Command](./validator-manager.md)
|
||||
* [Creating validators](./validator-manager-create.md)
|
||||
* [Moving validators](./validator-manager-move.md)
|
||||
* [Managing validators](./validator-manager-api.md)
|
||||
* [Slashing Protection](./slashing-protection.md)
|
||||
* [Voluntary Exits](./voluntary-exit.md)
|
||||
* [Partial Withdrawals](./partial-withdrawal.md)
|
||||
|
||||
@@ -23,6 +23,11 @@ Commands:
|
||||
"create-validators" command. This command only supports validators
|
||||
signing via a keystore on the local file system (i.e., not Web3Signer
|
||||
validators).
|
||||
list
|
||||
Lists all validators in a validator client using the HTTP API.
|
||||
delete
|
||||
Deletes one or more validators from a validator client using the HTTP
|
||||
API.
|
||||
help
|
||||
Print this message or the help of the given subcommand(s)
|
||||
|
||||
|
||||
@@ -5,9 +5,17 @@ Uploads validators to a validator client using the HTTP API. The validators are
|
||||
defined in a JSON file which can be generated using the "create-validators"
|
||||
command.
|
||||
|
||||
Usage: lighthouse validator_manager import [OPTIONS] --validators-file <PATH_TO_JSON_FILE>
|
||||
Usage: lighthouse validator_manager import [OPTIONS]
|
||||
|
||||
Options:
|
||||
--builder-boost-factor <UINT64>
|
||||
When provided, the imported validator will use this percentage
|
||||
multiplier to apply to the builder's payload value when choosing
|
||||
between a builder payload header and payload from the local execution
|
||||
node.
|
||||
--builder-proposals <builder-proposals>
|
||||
When provided, the imported validator will attempt to create blocks
|
||||
via builder rather than the local EL. [possible values: true, false]
|
||||
-d, --datadir <DIR>
|
||||
Used to specify a custom root data directory for lighthouse keys and
|
||||
databases. Defaults to $HOME/.lighthouse/{network} where network is
|
||||
@@ -17,6 +25,10 @@ Options:
|
||||
Specifies the verbosity level used when emitting logs to the terminal.
|
||||
[default: info] [possible values: info, debug, trace, warn, error,
|
||||
crit]
|
||||
--gas-limit <UINT64>
|
||||
When provided, the imported validator will use this gas limit. It is
|
||||
recommended to leave this as the default value by not specifying this
|
||||
flag.
|
||||
--genesis-state-url <URL>
|
||||
A URL of a beacon-API compatible server from which to download the
|
||||
genesis state. Checkpoint sync server URLs can generally be used with
|
||||
@@ -26,6 +38,10 @@ Options:
|
||||
--genesis-state-url-timeout <SECONDS>
|
||||
The timeout in seconds for the request to --genesis-state-url.
|
||||
[default: 180]
|
||||
--keystore-file <PATH_TO_KEYSTORE_FILE>
|
||||
The path to a keystore JSON file to be imported to the validator
|
||||
client. This file is usually created using staking-deposit-cli or
|
||||
ethstaker-deposit-cli
|
||||
--log-format <FORMAT>
|
||||
Specifies the log format used when emitting logs to the terminal.
|
||||
[possible values: JSON]
|
||||
@@ -50,6 +66,15 @@ Options:
|
||||
--network <network>
|
||||
Name of the Eth2 chain Lighthouse will sync and follow. [possible
|
||||
values: mainnet, gnosis, chiado, sepolia, holesky]
|
||||
--password <STRING>
|
||||
Password of the keystore file.
|
||||
--prefer-builder-proposals <prefer-builder-proposals>
|
||||
When provided, the imported validator will always prefer blocks
|
||||
constructed by builders, regardless of payload value. [possible
|
||||
values: true, false]
|
||||
--suggested-fee-recipient <ETH1_ADDRESS>
|
||||
When provided, the imported validator will use the suggested fee
|
||||
recipient. Omit this flag to use the default value from the VC.
|
||||
-t, --testnet-dir <DIR>
|
||||
Path to directory containing eth2_testnet specs. Defaults to a
|
||||
hard-coded Lighthouse testnet. Only effective if there is no existing
|
||||
@@ -60,10 +85,8 @@ Options:
|
||||
--vc-token <PATH>
|
||||
The file containing a token required by the validator client.
|
||||
--vc-url <HTTP_ADDRESS>
|
||||
A HTTP(S) address of a validator client using the keymanager-API. If
|
||||
this value is not supplied then a 'dry run' will be conducted where no
|
||||
changes are made to the validator client. [default:
|
||||
http://localhost:5062]
|
||||
A HTTP(S) address of a validator client using the keymanager-API.
|
||||
[default: http://localhost:5062]
|
||||
|
||||
Flags:
|
||||
--disable-log-timestamp
|
||||
|
||||
39
book/src/validator-manager-api.md
Normal file
39
book/src/validator-manager-api.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Managing Validators
|
||||
|
||||
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`.
|
||||
|
||||
## 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`:
|
||||
|
||||
```bash
|
||||
lighthouse vm delete --vc-token <API-TOKEN-PATH> --validators pubkey1,pubkey2
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
lighthouse vm delete --vc-token ~/.lighthouse/mainnet/validators/api-token.txt --validators 0x8885c29b8f88ee9b9a37b480fd4384fed74bda33d85bc8171a904847e65688b6c9bb4362d6597fd30109fb2def6c3ae4,0xa262dae3dcd2b2e280af534effa16bedb27c06f2959e114d53bd2a248ca324a018dc73179899a066149471a94a1bc92f
|
||||
```
|
||||
|
||||
## Import
|
||||
|
||||
The `import` command imports validator keystores generated by the staking-deposit-cli/ethstaker-deposit-cli. To import a validator keystore:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
lighthouse vm list --vc-token ~/.lighthouse/mainnet/validators/api-token.txt
|
||||
```
|
||||
@@ -69,6 +69,8 @@ lighthouse \
|
||||
> Be sure to remove `./validators.json` after the import is successful since it
|
||||
> contains unencrypted validator keystores.
|
||||
|
||||
> Note: To import validators with validator-manager using keystore files created using the staking deposit CLI, refer to [Managing Validators](./validator-manager-api.md#import).
|
||||
|
||||
## Detailed Guide
|
||||
|
||||
This guide will create two validators and import them to a VC. For simplicity,
|
||||
|
||||
Reference in New Issue
Block a user