Files
lighthouse/book/src/help_vm_create.md
chonghe d9d84242a7 CLI in Lighthouse Book (#4571)
* Add cli.sh file

* update bash script

* update Makefile

* update

* modified test-suite

* fix path

* Fix cli.sh permissions

* update cmd

* cli_manual

* Revise to update

* Update directory in Github

* Correct cli.txt directory

* test old cli_manual

* change exit 1

* Update cli and makefile

* Move cli.sh

* remove files

* fix permission

* Indentation and revision

* Fixed permission

* Create new cli folder

* remove dummy

* put a dummy file

* Revise cli.sh

* comment

* function

* remove vm.md

* test make cli

* test

* testing

* testing

* update

* update

* test

* test

* add vm

* change back non-debug mode

* add exist and update for future debug

* revise

* remove troubleshooting part

* update

* add summary.md

* test

* test

* Update Makefile

Co-authored-by: Mac L <mjladson@pm.me>

* Update Makefile

Co-authored-by: Mac L <mjladson@pm.me>

* Remove help-cli.md and rearrange

* Remove help-cli.md

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* remove maxperf

* move then to same line as if

* Fix indent and echo file not found

* To be explicit in replacing the old file

* Add logging when there are changes

* Add local variables

* spacing

* remove cargo fmt

* update .md files

* Edit exit message to avoid confusion

* Remove am and add vm subcommands

* Add cargo-fmt

* Revise test-suite.yml

* Update SUMMARY.md

* Add set -e

* Add vm

* Fix

* Add vm

* set -e

* Remove return 1 and add :

* Small revision

* Fix typo

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Indent

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Remove .exe in Windows

* Fix period with \.

* test

* check diff

* linux commit

* Add cli.sh file

* update bash script

* update Makefile

* update

* modified test-suite

* fix path

* Fix cli.sh permissions

* update cmd

* cli_manual

* Revise to update

* Update directory in Github

* Correct cli.txt directory

* test old cli_manual

* change exit 1

* Update cli and makefile

* Move cli.sh

* remove files

* fix permission

* Indentation and revision

* Fixed permission

* Create new cli folder

* remove dummy

* put a dummy file

* Revise cli.sh

* comment

* function

* remove vm.md

* test make cli

* test

* testing

* testing

* update

* update

* test

* test

* add vm

* change back non-debug mode

* add exist and update for future debug

* revise

* remove troubleshooting part

* update

* add summary.md

* test

* test

* Update Makefile

Co-authored-by: Mac L <mjladson@pm.me>

* Update Makefile

Co-authored-by: Mac L <mjladson@pm.me>

* Remove help-cli.md and rearrange

* Remove help-cli.md

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* remove maxperf

* move then to same line as if

* Fix indent and echo file not found

* To be explicit in replacing the old file

* Add logging when there are changes

* Add local variables

* spacing

* remove cargo fmt

* Edit exit message to avoid confusion

* update .md files

* Remove am and add vm subcommands

* Add cargo-fmt

* Revise test-suite.yml

* Update SUMMARY.md

* Add set -e

* Add vm

* Fix

* Add vm

* set -e

* Remove return 1 and add :

* Small revision

* Fix typo

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Indent

* Update scripts/cli.sh

Co-authored-by: Mac L <mjladson@pm.me>

* Remove .exe in Windows

* Fix period with \.

* test

* check diff

* Revert "Merge branch 'book-cli' of https://github.com/chong-he/lighthouse into book-cli"

This reverts commit 314005d3f8, reversing
changes made to a007f61378.

* update

* update

* Remove echo diff

* Dockerize

* Remove `-ti`

* take ownership inside container

* fix mistake

* proper escaping, restore ownership afterwards

* try without taking ownership of repo

* update

* add diff for troubleshooting

* binary

* update using linux

* binary

* make file

* remove diff

* add diff

* update progressive balance help text

* Remove diff

---------

Co-authored-by: Mac L <mjladson@pm.me>
Co-authored-by: antondlr <anton@delaruelle.net>
2023-12-07 10:39:22 +11:00

9.5 KiB

Validator Manager Create

Creates new validators from BIP-39 mnemonic. A JSON file will be created which contains all the validator keystores and
other validator data. This file can then be imported to a validator client using the "import-validators" command.
Another, optional JSON file is created which contains a list of validator deposits in the same format as the
"ethereum/staking-deposit-cli" tool.

USAGE:
    lighthouse validator_manager create [FLAGS] [OPTIONS] --output-path <DIRECTORY>

FLAGS:
        --disable-deposits                    When provided don't generate the deposits JSON file that is commonly used
                                              for submitting validator deposits via a web UI. Using this flag will save
                                              several seconds per validator if the user has an alternate strategy for
                                              submitting deposits.
        --disable-log-timestamp               If present, do not include timestamps in logging output.
        --disable-malloc-tuning               If present, do not configure the system allocator. Providing this flag
                                              will generally increase memory usage, it should only be provided when
                                              debugging specific memory allocation issues.
        --force-bls-withdrawal-credentials    If present, allows BLS withdrawal credentials rather than an execution
                                              address. This is not recommended.
    -h, --help                                Prints help information
        --log-color                           Force outputting colors when emitting logs to the terminal.
        --logfile-compress                    If present, compress old log files. This can help reduce the space needed
                                              to store old logs.
        --logfile-no-restricted-perms         If present, log files will be generated as world-readable meaning they can
                                              be read by any user on the machine. Note that logs can often contain
                                              sensitive information about your validator and so this flag should be used
                                              with caution. For Windows users, the log file permissions will be
                                              inherited from the parent folder.
        --specify-voting-keystore-password    If present, the user will be prompted to enter the voting keystore
                                              password that will be used to encrypt the voting keystores. If this flag
                                              is not provided, a random password will be used. It is not necessary to
                                              keep backups of voting keystore passwords if the mnemonic is safely backed
                                              up.
        --stdin-inputs                        If present, read all user inputs from stdin instead of tty.
    -V, --version                             Prints version information

OPTIONS:
        --beacon-node <HTTP_ADDRESS>
            A HTTP(S) address of a beacon node using the beacon-API. If this value is provided, an error will be raised
            if any validator key here is already known as a validator by that beacon node. This helps prevent the same
            validator being created twice and therefore slashable conditions.
        --builder-proposals <builder-proposals>
            When provided, all created validators will attempt to create blocks via builder rather than the local EL.
            [possible values: true, false]
        --count <VALIDATOR_COUNT>
            The number of validators to create, regardless of how many already exist

    -d, --datadir <DIR>
            Used to specify a custom root data directory for lighthouse keys and databases. Defaults to
            $HOME/.lighthouse/{network} where network is the value of the `network` flag Note: Users should specify
            separate custom datadirs for different networks.
        --debug-level <LEVEL>
            Specifies the verbosity level used when emitting logs to the terminal. [default: info]  [possible values:
            info, debug, trace, warn, error, crit]
        --deposit-gwei <DEPOSIT_GWEI>
            The GWEI value of the deposit amount. Defaults to the minimum amount required for an active validator
            (MAX_EFFECTIVE_BALANCE)
        --eth1-withdrawal-address <ETH1_ADDRESS>
            If this field is set, the given eth1 address will be used to create the withdrawal credentials. Otherwise,
            it will generate withdrawal credentials with the mnemonic-derived withdrawal public key in EIP-2334 format.
        --first-index <FIRST_INDEX>
            The first of consecutive key indexes you wish to create. [default: 0]

        --gas-limit <UINT64>
            All created validators 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 this flag. If not supplied, a default URL or the --checkpoint-sync-url may
            be used. If the genesis state is already included in this binary then this value will be ignored.
        --genesis-state-url-timeout <SECONDS>
            The timeout in seconds for the request to --genesis-state-url. [default: 180]

        --log-format <FORMAT>
            Specifies the log format used when emitting logs to the terminal. [possible values: JSON]

        --logfile <FILE>
            File path where the log file will be stored. Once it grows to the value specified in `--logfile-max-size` a
            new log file is generated where future logs are stored. Once the number of log files exceeds the value
            specified in `--logfile-max-number` the oldest log file will be overwritten.
        --logfile-debug-level <LEVEL>
            The verbosity level used when emitting logs to the log file. [default: debug]  [possible values: info,
            debug, trace, warn, error, crit]
        --logfile-format <FORMAT>
            Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON]

        --logfile-max-number <COUNT>
            The maximum number of log files that will be stored. If set to 0, background file logging is disabled.
            [default: 5]
        --logfile-max-size <SIZE>
            The maximum size (in MB) each log file can grow to before rotating. If set to 0, background file logging is
            disabled. [default: 200]
        --mnemonic-path <MNEMONIC_PATH>                         If present, the mnemonic will be read in from this file.
        --network <network>
            Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis,
            chiado, sepolia, holesky]
        --output-path <DIRECTORY>
            The path to a directory where the validator and (optionally) deposits files will be created. The directory
            will be created if it does not exist.
        --safe-slots-to-import-optimistically <INTEGER>
            Used to coordinate manual overrides of the SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY parameter. This flag should
            only be used if the user has a clear understanding that the broad Ethereum community has elected to override
            this parameter in the event of an attack at the PoS transition block. Incorrect use of this flag can cause
            your node to possibly accept an invalid chain or sync more slowly. Be extremely careful with this flag.
        --suggested-fee-recipient <ETH1_ADDRESS>
            All created validators will use this value for the suggested fee recipient. Omit this flag to use the
            default value from the VC.
        --terminal-block-hash-epoch-override <EPOCH>
            Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH parameter. This flag should
            only be used if the user has a clear understanding that the broad Ethereum community has elected to override
            the terminal PoW block. Incorrect use of this flag will cause your node to experience a consensus failure.
            Be extremely careful with this flag.
        --terminal-block-hash-override <TERMINAL_BLOCK_HASH>
            Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH parameter. This flag should only be used if
            the user has a clear understanding that the broad Ethereum community has elected to override the terminal
            PoW block. Incorrect use of this flag will cause your node to experience a consensus failure. Be extremely
            careful with this flag.
        --terminal-total-difficulty-override <INTEGER>
            Used to coordinate manual overrides to the TERMINAL_TOTAL_DIFFICULTY parameter. Accepts a 256-bit decimal
            integer (not a hex value). This flag should only be used if the user has a clear understanding that the
            broad Ethereum community has elected to override the terminal difficulty. Incorrect use of this flag will
            cause your node to experience a consensus failure. Be extremely careful with this flag.
    -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 database.