From 7f4af13ceafd0369ceb8b31604fef2be713c6dd4 Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Tue, 16 Apr 2024 01:06:16 +0300 Subject: [PATCH] help text, text width, and a few flag fixes --- account_manager/src/lib.rs | 13 + account_manager/src/validator/mod.rs | 10 + account_manager/src/wallet/mod.rs | 10 + beacon_node/src/cli.rs | 12 +- beacon_node/src/config.rs | 2 - book/src/help_bn.md | 748 +++++++++++++-------- book/src/help_general.md | 177 +++-- book/src/help_vc.md | 368 ++++++---- book/src/help_vm.md | 157 +++-- book/src/help_vm_create.md | 212 +++--- book/src/help_vm_import.md | 155 +++-- book/src/help_vm_move.md | 173 +++-- boot_node/src/cli.rs | 12 +- database_manager/src/lib.rs | 9 + lighthouse/src/main.rs | 12 + validator_client/src/cli.rs | 10 + validator_manager/src/create_validators.rs | 9 + validator_manager/src/import_validators.rs | 9 + validator_manager/src/lib.rs | 13 +- validator_manager/src/move_validators.rs | 10 + 20 files changed, 1351 insertions(+), 770 deletions(-) diff --git a/account_manager/src/lib.rs b/account_manager/src/lib.rs index 4963d9354b3..755f8a84d0b 100644 --- a/account_manager/src/lib.rs +++ b/account_manager/src/lib.rs @@ -2,8 +2,11 @@ mod common; pub mod validator; pub mod wallet; +use clap::Arg; +use clap::ArgAction; use clap::ArgMatches; use clap::Command; +use clap_utils::FLAG_HEADER; use environment::Environment; use types::EthSpec; @@ -17,6 +20,16 @@ pub fn cli_app() -> Command { Command::new(CMD) .visible_aliases(["a", "am", "account", CMD]) .about("Utilities for generating and managing Ethereum 2.0 accounts.") + .display_order(0) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .subcommand(wallet::cli_app()) .subcommand(validator::cli_app()) } diff --git a/account_manager/src/validator/mod.rs b/account_manager/src/validator/mod.rs index b699301cde3..ccb3a940a1f 100644 --- a/account_manager/src/validator/mod.rs +++ b/account_manager/src/validator/mod.rs @@ -8,6 +8,7 @@ pub mod slashing_protection; use crate::{VALIDATOR_DIR_FLAG, VALIDATOR_DIR_FLAG_ALIAS}; use clap::{Arg, ArgAction, ArgMatches, Command}; +use clap_utils::FLAG_HEADER; use directory::{parse_path_or_default_with_flag, DEFAULT_VALIDATOR_DIR}; use environment::Environment; use std::path::PathBuf; @@ -19,6 +20,15 @@ pub fn cli_app() -> Command { Command::new(CMD) .display_order(0) .about("Provides commands for managing Eth2 validators.") + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new(VALIDATOR_DIR_FLAG) .long(VALIDATOR_DIR_FLAG) diff --git a/account_manager/src/wallet/mod.rs b/account_manager/src/wallet/mod.rs index 1a4b55f8764..59f5f362529 100644 --- a/account_manager/src/wallet/mod.rs +++ b/account_manager/src/wallet/mod.rs @@ -4,6 +4,7 @@ pub mod recover; use crate::WALLETS_DIR_FLAG; use clap::{Arg, ArgAction, ArgMatches, Command}; +use clap_utils::FLAG_HEADER; use directory::{ensure_dir_exists, parse_path_or_default_with_flag, DEFAULT_WALLET_DIR}; use std::path::PathBuf; @@ -13,6 +14,15 @@ pub fn cli_app() -> Command { Command::new(CMD) .about("Manage wallets, from which validator keys can be derived.") .display_order(0) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new(WALLETS_DIR_FLAG) .long(WALLETS_DIR_FLAG) diff --git a/beacon_node/src/cli.rs b/beacon_node/src/cli.rs index fabaa9af387..c7691eb3521 100644 --- a/beacon_node/src/cli.rs +++ b/beacon_node/src/cli.rs @@ -4,6 +4,7 @@ use strum::VariantNames; pub fn cli_app() -> Command { Command::new("beacon_node") + .display_order(0) .visible_aliases(["b", "bn", "beacon"]) .version(crate_version!()) .author("Sigma Prime ") @@ -14,6 +15,15 @@ pub fn cli_app() -> Command { /* * Configuration directory locations. */ + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new("network-dir") .long("network-dir") @@ -271,7 +281,7 @@ pub fn cli_app() -> Command { local node on this address. This will update the `ip4` or `ip6` ENR fields \ accordingly. To update both, set this flag twice with the different values.") .action(ArgAction::Append) - .num_args(0..=2) + .num_args(1..=2) .display_order(0) ) .arg( diff --git a/beacon_node/src/config.rs b/beacon_node/src/config.rs index f37615e6d00..38c6eb4da7f 100644 --- a/beacon_node/src/config.rs +++ b/beacon_node/src/config.rs @@ -945,8 +945,6 @@ pub fn parse_listening_addresses( .map_err(|parse_error| format!("Failed to parse --port6 as an integer: {parse_error}"))? .unwrap_or(9090); - println!("{}", port); - // parse the possible discovery ports. let maybe_disc_port = cli_args .get_one::("discovery-port") diff --git a/book/src/help_bn.md b/book/src/help_bn.md index a10402d8ab7..f61ee6e0a8b 100644 --- a/book/src/help_bn.md +++ b/book/src/help_bn.md @@ -1,425 +1,605 @@ # Beacon Node ``` -The primary component which connects to the Ethereum 2.0 P2P network and downloads, verifies and stores blocks. Provides a HTTP API -for querying the beacon chain and publishing messages to the network. +The primary component which connects to the Ethereum 2.0 P2P network and +downloads, verifies and stores blocks. Provides a HTTP API for querying the +beacon chain and publishing messages to the network. Usage: lighthouse beacon_node [OPTIONS] Options: --auto-compact-db - Enable or disable automatic compaction of the database on finalization. [default: true] + Enable or disable automatic compaction of the database on + finalization. [default: true] --blob-prune-margin-epochs - The margin for blob pruning in epochs. The oldest blobs are pruned up until data_availability_boundary - - blob_prune_margin_epochs. [default: 0] + The margin for blob pruning in epochs. The oldest blobs are pruned up + until data_availability_boundary - blob_prune_margin_epochs. [default: + 0] --blobs-dir Data directory for the blobs database. --block-cache-size - Specifies how many blocks the database should cache in memory [default: 5] + Specifies how many blocks the database should cache in memory + [default: 5] --boot-nodes - One or more comma-delimited base64-encoded ENR's to bootstrap the p2p network. Multiaddr is also supported. + One or more comma-delimited base64-encoded ENR's to bootstrap the p2p + network. Multiaddr is also supported. --builder The URL of a service compatible with the MEV-boost API. --builder-fallback-epochs-since-finalization - If this node is proposing a block and the chain has not finalized within this number of epochs, it will NOT query any - connected builders, and will use the local execution engine for payload construction. Setting this value to anything less - than 2 will cause the node to NEVER query connected builders. Setting it to 2 will cause this condition to be hit if there - are skips slots at the start of an epoch, right before this node is set to propose. [default: 3] + If this node is proposing a block and the chain has not finalized + within this number of epochs, it will NOT query any connected + builders, and will use the local execution engine for payload + construction. Setting this value to anything less than 2 will cause + the node to NEVER query connected builders. Setting it to 2 will cause + this condition to be hit if there are skips slots at the start of an + epoch, right before this node is set to propose. [default: 3] --builder-fallback-skips - If this node is proposing a block and has seen this number of skip slots on the canonical chain in a row, it will NOT query - any connected builders, and will use the local execution engine for payload construction. [default: 3] + If this node is proposing a block and has seen this number of skip + slots on the canonical chain in a row, it will NOT query any connected + builders, and will use the local execution engine for payload + construction. [default: 3] --builder-fallback-skips-per-epoch - If this node is proposing a block and has seen this number of skip slots on the canonical chain in the past - `SLOTS_PER_EPOCH`, it will NOT query any connected builders, and will use the local execution engine for payload - construction. [default: 8] + If this node is proposing a block and has seen this number of skip + slots on the canonical chain in the past `SLOTS_PER_EPOCH`, it will + NOT query any connected builders, and will use the local execution + engine for payload construction. [default: 8] --builder-profit-threshold This flag is deprecated and has no effect. --builder-user-agent - The HTTP user agent to send alongside requests to the builder URL. The default is Lighthouse's version string. + The HTTP user agent to send alongside requests to the builder URL. The + default is Lighthouse's version string. --checkpoint-blobs - Set the checkpoint blobs to start syncing from. Must be aligned and match --checkpoint-block. Using --checkpoint-sync-url - instead is recommended. + Set the checkpoint blobs to start syncing from. Must be aligned and + match --checkpoint-block. Using --checkpoint-sync-url instead is + recommended. --checkpoint-block - Set a checkpoint block to start syncing from. Must be aligned and match --checkpoint-state. Using --checkpoint-sync-url - instead is recommended. + Set a checkpoint block to start syncing from. Must be aligned and + match --checkpoint-state. Using --checkpoint-sync-url instead is + recommended. --checkpoint-state - Set a checkpoint state to start syncing from. Must be aligned and match --checkpoint-block. Using --checkpoint-sync-url - instead is recommended. + Set a checkpoint state to start syncing from. Must be aligned and + match --checkpoint-block. Using --checkpoint-sync-url instead is + recommended. --checkpoint-sync-url Set the remote beacon node HTTP endpoint to use for checkpoint sync. --checkpoint-sync-url-timeout - Set the timeout for checkpoint sync calls to remote beacon node HTTP endpoint. [default: 180] + Set the timeout for checkpoint sync calls to remote beacon node HTTP + endpoint. [default: 180] -d, --datadir - 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. + 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 - Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values: info, debug, - trace, warn, error, crit] + Specifies the verbosity level used when emitting logs to the terminal. + [default: info] [possible values: info, debug, trace, warn, error, + crit] --discovery-port The UDP port that discovery will listen on. Defaults to `port` --discovery-port6 - The UDP port that discovery will listen on over IPv6 if listening over both IPv4 and IPv6. Defaults to `port6` - --enr-address [
...] - The IP address/ DNS address to broadcast to other peers on how to reach this node. If a DNS address is provided, the - enr-address is set to the IP address it resolves to and does not auto-update based on PONG responses in discovery. Set this - only if you are sure other nodes can connect to your local node on this address. This will update the `ip4` or `ip6` ENR - fields accordingly. To update both, set this flag twice with the different values. + The UDP port that discovery will listen on over IPv6 if listening over + both IPv4 and IPv6. Defaults to `port6` + --enr-address
... + The IP address/ DNS address to broadcast to other peers on how to + reach this node. If a DNS address is provided, the enr-address is set + to the IP address it resolves to and does not auto-update based on + PONG responses in discovery. Set this only if you are sure other nodes + can connect to your local node on this address. This will update the + `ip4` or `ip6` ENR fields accordingly. To update both, set this flag + twice with the different values. --enr-quic-port - The quic UDP4 port that will be set on the local ENR. Set this only if you are sure other nodes can connect to your local - node on this port over IPv4. + The quic UDP4 port that will be set on the local ENR. Set this only if + you are sure other nodes can connect to your local node on this port + over IPv4. --enr-quic6-port - The quic UDP6 port that will be set on the local ENR. Set this only if you are sure other nodes can connect to your local - node on this port over IPv6. + The quic UDP6 port that will be set on the local ENR. Set this only if + you are sure other nodes can connect to your local node on this port + over IPv6. --enr-tcp-port - The TCP4 port of the local ENR. Set this only if you are sure other nodes can connect to your local node on this port over - IPv4. The --port flag is used if this is not set. + The TCP4 port of the local ENR. Set this only if you are sure other + nodes can connect to your local node on this port over IPv4. The + --port flag is used if this is not set. --enr-tcp6-port - The TCP6 port of the local ENR. Set this only if you are sure other nodes can connect to your local node on this port over - IPv6. The --port6 flag is used if this is not set. + The TCP6 port of the local ENR. Set this only if you are sure other + nodes can connect to your local node on this port over IPv6. The + --port6 flag is used if this is not set. --enr-udp-port - The UDP4 port of the local ENR. Set this only if you are sure other nodes can connect to your local node on this port over - IPv4. + The UDP4 port of the local ENR. Set this only if you are sure other + nodes can connect to your local node on this port over IPv4. --enr-udp6-port - The UDP6 port of the local ENR. Set this only if you are sure other nodes can connect to your local node on this port over - IPv6. + The UDP6 port of the local ENR. Set this only if you are sure other + nodes can connect to your local node on this port over IPv6. --epochs-per-blob-prune - The epoch interval with which to prune blobs from Lighthouse's database when they are older than the data availability - boundary relative to the current epoch. [default: 1] + The epoch interval with which to prune blobs from Lighthouse's + database when they are older than the data availability boundary + relative to the current epoch. [default: 1] --epochs-per-migration - The number of epochs to wait between running the migration of data from the hot DB to the cold DB. Less frequent runs can - be useful for minimizing disk writes [default: 1] + The number of epochs to wait between running the migration of data + from the hot DB to the cold DB. Less frequent runs can be useful for + minimizing disk writes [default: 1] --eth1-blocks-per-log-query - Specifies the number of blocks that a deposit log query should span. This will reduce the size of responses from the Eth1 - endpoint. [default: 1000] + Specifies the number of blocks that a deposit log query should span. + This will reduce the size of responses from the Eth1 endpoint. + [default: 1000] --eth1-cache-follow-distance - Specifies the distance between the Eth1 chain head and the last block which should be imported into the cache. Setting this - value lower can help compensate for irregular Proof-of-Work block times, but setting it too low can make the node - vulnerable to re-orgs. + Specifies the distance between the Eth1 chain head and the last block + which should be imported into the cache. Setting this value lower can + help compensate for irregular Proof-of-Work block times, but setting + it too low can make the node vulnerable to re-orgs. --execution-endpoint - Server endpoint for an execution layer JWT-authenticated HTTP JSON-RPC connection. Uses the same endpoint to populate the - deposit cache. + Server endpoint for an execution layer JWT-authenticated HTTP JSON-RPC + connection. Uses the same endpoint to populate the deposit cache. --execution-jwt - File path which contains the hex-encoded JWT secret for the execution endpoint provided in the --execution-endpoint flag. + File path which contains the hex-encoded JWT secret for the execution + endpoint provided in the --execution-endpoint flag. --execution-jwt-id - Used by the beacon node to communicate a unique identifier to execution nodes during JWT authentication. It corresponds to - the 'id' field in the JWT claims object.Set to empty by default + Used by the beacon node to communicate a unique identifier to + execution nodes during JWT authentication. It corresponds to the 'id' + field in the JWT claims object.Set to empty by default --execution-jwt-secret-key - Hex-encoded JWT secret for the execution endpoint provided in the --execution-endpoint flag. + Hex-encoded JWT secret for the execution endpoint provided in the + --execution-endpoint flag. --execution-jwt-version - Used by the beacon node to communicate a client version to execution nodes during JWT authentication. It corresponds to the - 'clv' field in the JWT claims object.Set to empty by default + Used by the beacon node to communicate a client version to execution + nodes during JWT authentication. It corresponds to the 'clv' field in + the JWT claims object.Set to empty by default --execution-timeout-multiplier - Unsigned integer to multiply the default execution timeouts by. [default: 1] + Unsigned integer to multiply the default execution timeouts by. + [default: 1] --fork-choice-before-proposal-timeout - Set the maximum number of milliseconds to wait for fork choice before proposing a block. You can prevent waiting at all by - setting the timeout to 0, however you risk proposing atop the wrong parent block. [default: 250] + Set the maximum number of milliseconds to wait for fork choice before + proposing a block. You can prevent waiting at all by setting the + timeout to 0, however you risk proposing atop the wrong parent block. + [default: 250] --freezer-dir Data directory for the freezer database. --genesis-state-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. + 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 - The timeout in seconds for the request to --genesis-state-url. [default: 180] + The timeout in seconds for the request to --genesis-state-url. + [default: 180] --graffiti - Specify your custom graffiti to be included in blocks. Defaults to the current version and commit, truncated to fit in 32 - bytes. + Specify your custom graffiti to be included in blocks. Defaults to the + current version and commit, truncated to fit in 32 bytes. --historic-state-cache-size - Specifies how many states from the freezer database should cache in memory [default: 1] + Specifies how many states from the freezer database should cache in + memory [default: 1] --http-address
Set the listen address for the RESTful HTTP API server. --http-allow-origin - Set the value of the Access-Control-Allow-Origin response HTTP header. Use * to allow any origin (not recommended in - production). If no value is supplied, the CORS allowed origin is set to the listen address of this server (e.g., - http://localhost:5052). + Set the value of the Access-Control-Allow-Origin response HTTP header. + Use * to allow any origin (not recommended in production). If no value + is supplied, the CORS allowed origin is set to the listen address of + this server (e.g., http://localhost:5052). --http-duplicate-block-status - Status code to send when a block that is already known is POSTed to the HTTP API. + Status code to send when a block that is already known is POSTed to + the HTTP API. --http-enable-beacon-processor - The beacon processor is a scheduler which provides quality-of-service and DoS protection. When set to "true", HTTP API - requests will be queued and scheduled alongside other tasks. When set to "false", HTTP API responses will be executed - immediately. + The beacon processor is a scheduler which provides quality-of-service + and DoS protection. When set to "true", HTTP API requests will be + queued and scheduled alongside other tasks. When set to "false", HTTP + API responses will be executed immediately. --http-port Set the listen TCP port for the RESTful HTTP API server. --http-sse-capacity-multiplier - Multiplier to apply to the length of HTTP server-sent-event (SSE) channels. Increasing this value can prevent messages from - being dropped. + Multiplier to apply to the length of HTTP server-sent-event (SSE) + channels. Increasing this value can prevent messages from being + dropped. --http-tls-cert - The path of the certificate to be used when serving the HTTP API server over TLS. + The path of the certificate to be used when serving the HTTP API + server over TLS. --http-tls-key - The path of the private key to be used when serving the HTTP API server over TLS. Must not be password-protected. + The path of the private key to be used when serving the HTTP API + server over TLS. Must not be password-protected. --inbound-rate-limiter-protocols - Configures the inbound rate limiter (requests received by this node).Rate limit quotas per protocol can be set in the form - of :/. To set quotas for multiple protocols, separate them by ';'. This is enabled - by default, using default quotas. To disable rate limiting use the disable-inbound-rate-limiter flag instead. + Configures the inbound rate limiter (requests received by this + node).Rate limit quotas per protocol can be set in the form of + :/. To set quotas for multiple + protocols, separate them by ';'. This is enabled by default, using + default quotas. To disable rate limiting use the + disable-inbound-rate-limiter flag instead. --invalid-gossip-verified-blocks-path - If a block succeeds gossip validation whilst failing full validation, store the block SSZ as a file at this path. This - feature is only recommended for developers. This directory is not pruned, users should be careful to avoid filling up their - disks. + If a block succeeds gossip validation whilst failing full validation, + store the block SSZ as a file at this path. This feature is only + recommended for developers. This directory is not pruned, users should + be careful to avoid filling up their disks. --libp2p-addresses - One or more comma-delimited multiaddrs to manually connect to a libp2p peer without an ENR. + One or more comma-delimited multiaddrs to manually connect to a libp2p + peer without an ENR. --listen-address [
...] - The address lighthouse will listen for UDP and TCP connections. To listen over IpV4 and IpV6 set this flag twice with the - different values. + The address lighthouse will listen for UDP and TCP connections. To + listen over IpV4 and IpV6 set this flag twice with the different + values. Examples: - --listen-address '0.0.0.0' will listen over IPv4. - --listen-address '::' will listen over IPv6. - - --listen-address '0.0.0.0' --listen-address '::' will listen over both IPv4 and IPv6. The order of the given addresses is - not relevant. However, multiple IPv4, or multiple IPv6 addresses will not be accepted. [default: 0.0.0.0] + - --listen-address '0.0.0.0' --listen-address '::' will listen over + both IPv4 and IPv6. The order of the given addresses is not relevant. + However, multiple IPv4, or multiple IPv6 addresses will not be + accepted. [default: 0.0.0.0] --log-format - Specifies the log format used when emitting logs to the terminal. [possible values: JSON] + Specifies the log format used when emitting logs to the terminal. + [possible values: JSON] --logfile - 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. + 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 - The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info, debug, trace, warn, - error, crit] + The verbosity level used when emitting logs to the log file. [default: + debug] [possible values: info, debug, trace, warn, error, crit] --logfile-format - Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON] + Specifies the log format used when emitting logs to the logfile. + [possible values: DEFAULT, JSON] --logfile-max-number - The maximum number of log files that will be stored. If set to 0, background file logging is disabled. [default: 5] + The maximum number of log files that will be stored. If set to 0, + background file logging is disabled. [default: 5] --logfile-max-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] + The maximum size (in MB) each log file can grow to before rotating. If + set to 0, background file logging is disabled. [default: 200] --max-skip-slots - Refuse to skip more than this many slots when processing an attestation. This prevents nodes on minority forks from wasting - our time and disk space, but could also cause unnecessary consensus failures, so is disabled by default. + Refuse to skip more than this many slots when processing an + attestation. This prevents nodes on minority forks from wasting our + time and disk space, but could also cause unnecessary consensus + failures, so is disabled by default. --metrics-address
Set the listen address for the Prometheus metrics HTTP server. --metrics-allow-origin - Set the value of the Access-Control-Allow-Origin response HTTP header. Use * to allow any origin (not recommended in - production). If no value is supplied, the CORS allowed origin is set to the listen address of this server (e.g., - http://localhost:5054). + Set the value of the Access-Control-Allow-Origin response HTTP header. + Use * to allow any origin (not recommended in production). If no value + is supplied, the CORS allowed origin is set to the listen address of + this server (e.g., http://localhost:5054). --metrics-port Set the listen TCP port for the Prometheus metrics HTTP server. --monitoring-endpoint
- Enables the monitoring service for sending system metrics to a remote endpoint. This can be used to monitor your setup on - certain services (e.g. beaconcha.in). This flag sets the endpoint where the beacon node metrics will be sent. Note: This - will send information to a remote sever which may identify and associate your validators, IP address and other personal - information. Always use a HTTPS connection and never provide an untrusted URL. + Enables the monitoring service for sending system metrics to a remote + endpoint. This can be used to monitor your setup on certain services + (e.g. beaconcha.in). This flag sets the endpoint where the beacon node + metrics will be sent. Note: This will send information to a remote + sever which may identify and associate your validators, IP address and + other personal information. Always use a HTTPS connection and never + provide an untrusted URL. --monitoring-endpoint-period - Defines how many seconds to wait between each message sent to the monitoring-endpoint. Default: 60s + Defines how many seconds to wait between each message sent to the + monitoring-endpoint. Default: 60s --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, chiado, sepolia, - holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible + values: mainnet, prater, goerli, gnosis, chiado, sepolia, holesky] --network-dir - Data directory for network keys. Defaults to network/ inside the beacon node dir. + Data directory for network keys. Defaults to network/ inside the + beacon node dir. --port - The TCP/UDP ports to listen on. There are two UDP ports. The discovery UDP port will be set to this value and the Quic UDP - port will be set to this value + 1. The discovery port can be modified by the --discovery-port flag and the quic port can - be modified by the --quic-port flag. If listening over both IPv4 and IPv6 the --port flag will apply to the IPv4 address - and --port6 to the IPv6 address. [default: 9000] + The TCP/UDP ports to listen on. There are two UDP ports. The discovery + UDP port will be set to this value and the Quic UDP port will be set + to this value + 1. The discovery port can be modified by the + --discovery-port flag and the quic port can be modified by the + --quic-port flag. If listening over both IPv4 and IPv6 the --port flag + will apply to the IPv4 address and --port6 to the IPv6 address. + [default: 9000] --port6 - The TCP/UDP ports to listen on over IPv6 when listening over both IPv4 and IPv6. Defaults to 9090 when required. The Quic - UDP port will be set to this value + 1. [default: 9090] + The TCP/UDP ports to listen on over IPv6 when listening over both IPv4 + and IPv6. Defaults to 9090 when required. The Quic UDP port will be + set to this value + 1. [default: 9090] --prepare-payload-lookahead - The time before the start of a proposal slot at which payload attributes should be sent. Low values are useful for - execution nodes which don't improve their payload after the first call, and high values are useful for ensuring the EL is - given ample notice. Default: 1/3 of a slot. + The time before the start of a proposal slot at which payload + attributes should be sent. Low values are useful for execution nodes + which don't improve their payload after the first call, and high + values are useful for ensuring the EL is given ample notice. Default: + 1/3 of a slot. --progressive-balances - Deprecated. This optimisation is now the default and cannot be disabled. + Deprecated. This optimisation is now the default and cannot be + disabled. --proposer-reorg-cutoff - Maximum delay after the start of the slot at which to propose a reorging block. Lower values can prevent failed reorgs by - ensuring the block has ample time to propagate and be processed by the network. The default is 1/12th of a slot (1 second - on mainnet) + Maximum delay after the start of the slot at which to propose a + reorging block. Lower values can prevent failed reorgs by ensuring the + block has ample time to propagate and be processed by the network. The + default is 1/12th of a slot (1 second on mainnet) --proposer-reorg-disallowed-offsets - Comma-separated list of integer offsets which can be used to avoid proposing reorging blocks at certain slots. An offset of - N means that reorging proposals will not be attempted at any slot such that `slot % SLOTS_PER_EPOCH == N`. By default only - re-orgs at offset 0 will be avoided. Any offsets supplied with this flag will impose additional restrictions. + Comma-separated list of integer offsets which can be used to avoid + proposing reorging blocks at certain slots. An offset of N means that + reorging proposals will not be attempted at any slot such that `slot % + SLOTS_PER_EPOCH == N`. By default only re-orgs at offset 0 will be + avoided. Any offsets supplied with this flag will impose additional + restrictions. --proposer-reorg-epochs-since-finalization - Maximum number of epochs since finalization at which proposer reorgs are allowed. Default: 2 + Maximum number of epochs since finalization at which proposer reorgs + are allowed. Default: 2 --proposer-reorg-parent-threshold - Percentage of parent vote weight above which to attempt a proposer reorg. Default: 160% + Percentage of parent vote weight above which to attempt a proposer + reorg. Default: 160% --proposer-reorg-threshold - Percentage of head vote weight below which to attempt a proposer reorg. Default: 20% + Percentage of head vote weight below which to attempt a proposer + reorg. Default: 20% --prune-blobs - Prune blobs from Lighthouse's database when they are older than the data data availability boundary relative to the current - epoch. [default: true] + Prune blobs from Lighthouse's database when they are older than the + data data availability boundary relative to the current epoch. + [default: true] --prune-payloads - Prune execution payloads from Lighthouse's database. This saves space but imposes load on the execution client, as payloads - need to be reconstructed and sent to syncing peers. [default: true] + Prune execution payloads from Lighthouse's database. This saves space + but imposes load on the execution client, as payloads need to be + reconstructed and sent to syncing peers. [default: true] --quic-port The UDP port that quic will listen on. Defaults to `port` + 1 --quic-port6 - The UDP port that quic will listen on over IPv6 if listening over both IPv4 and IPv6. Defaults to `port6` + 1 + The UDP port that quic will listen on over IPv6 if listening over both + IPv4 and IPv6. Defaults to `port6` + 1 --safe-slots-to-import-optimistically - 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. + 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. --self-limiter-protocols - Enables the outbound rate limiter (requests made by this node).Rate limit quotas per protocol can be set in the form of - :/. To set quotas for multiple protocols, separate them by ';'. If the self rate - limiter is enabled and a protocol is not present in the configuration, the quotas used for the inbound rate limiter will be - used. + Enables the outbound rate limiter (requests made by this node).Rate + limit quotas per protocol can be set in the form of + :/. To set quotas for multiple + protocols, separate them by ';'. If the self rate limiter is enabled + and a protocol is not present in the configuration, the quotas used + for the inbound rate limiter will be used. --shuffling-cache-size - Some HTTP API requests can be optimised by caching the shufflings at each epoch. This flag allows the user to set the - shuffling cache size in epochs. Shufflings are dependent on validator count and setting this value to a large number can - consume a large amount of memory. + Some HTTP API requests can be optimised by caching the shufflings at + each epoch. This flag allows the user to set the shuffling cache size + in epochs. Shufflings are dependent on validator count and setting + this value to a large number can consume a large amount of memory. --slasher-att-cache-size Set the maximum number of attestation roots for the slasher to cache --slasher-backend - Set the database backend to be used by the slasher. [possible values: lmdb, disabled] + Set the database backend to be used by the slasher. [possible values: + lmdb, disabled] --slasher-broadcast - Broadcast slashings found by the slasher to the rest of the network [Enabled by default]. [default: true] + Broadcast slashings found by the slasher to the rest of the network + [Enabled by default]. [default: true] --slasher-chunk-size Number of epochs per validator per chunk stored on disk. --slasher-dir Set the slasher's database directory. --slasher-history-length - Configure how many epochs of history the slasher keeps. Immutable after initialization. + Configure how many epochs of history the slasher keeps. Immutable + after initialization. --slasher-max-db-size Maximum size of the MDBX database used by the slasher. --slasher-slot-offset - Set the delay from the start of the slot at which the slasher should ingest attestations. Only effective if the - slasher-update-period is a multiple of the slot duration. + Set the delay from the start of the slot at which the slasher should + ingest attestations. Only effective if the slasher-update-period is a + multiple of the slot duration. --slasher-update-period Configure how often the slasher runs batch processing. --slasher-validator-chunk-size Number of validators per chunk stored on disk. --slots-per-restore-point - Specifies how often a freezer DB restore point should be stored. Cannot be changed after initialization. [default: 8192 - (mainnet) or 64 (minimal)] + Specifies how often a freezer DB restore point should be stored. + Cannot be changed after initialization. [default: 8192 (mainnet) or 64 + (minimal)] --state-cache-size Specifies the size of the snapshot cache [default: 3] --suggested-fee-recipient - Emergency fallback fee recipient for use in case the validator client does not have one configured. You should set this - flag on the validator client instead of (or in addition to) setting it here. + Emergency fallback fee recipient for use in case the validator client + does not have one configured. You should set this flag on the + validator client instead of (or in addition to) setting it here. -t, --testnet-dir - Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective if there is no - existing database. + Path to directory containing eth2_testnet specs. Defaults to a + hard-coded Lighthouse testnet. Only effective if there is no existing + database. --target-peers The target number of peers. --terminal-block-hash-epoch-override - 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. + 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 - 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. + 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 - 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. + 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. --trusted-peers - One or more comma-delimited trusted peer ids which always have the highest score according to the peer scoring system. + One or more comma-delimited trusted peer ids which always have the + highest score according to the peer scoring system. --trusted-setup-file-override - Path to a json file containing the trusted setup params. NOTE: This will override the trusted setup that is generated from - the mainnet kzg ceremony. Use with caution + Path to a json file containing the trusted setup params. NOTE: This + will override the trusted setup that is generated from the mainnet kzg + ceremony. Use with caution --validator-monitor-file - As per --validator-monitor-pubkeys, but the comma-separated list is contained within a file at the given path. + As per --validator-monitor-pubkeys, but the comma-separated list is + contained within a file at the given path. --validator-monitor-individual-tracking-threshold - Once the validator monitor reaches this number of local validators it will stop collecting per-validator Prometheus metrics - and issuing per-validator logs. Instead, it will provide aggregate metrics and logs. This avoids infeasibly high - cardinality in the Prometheus database and high log volume when using many validators. Defaults to 64. + Once the validator monitor reaches this number of local validators it + will stop collecting per-validator Prometheus metrics and issuing + per-validator logs. Instead, it will provide aggregate metrics and + logs. This avoids infeasibly high cardinality in the Prometheus + database and high log volume when using many validators. Defaults to + 64. --validator-monitor-pubkeys - A comma-separated list of 0x-prefixed validator public keys. These validators will receive special monitoring and - additional logging. + A comma-separated list of 0x-prefixed validator public keys. These + validators will receive special monitoring and additional logging. --wss-checkpoint - Specify a weak subjectivity checkpoint in `block_root:epoch` format to verify the node's sync against. The block root - should be 0x-prefixed. Note that this flag is for verification only, to perform a checkpoint sync from a recent state use - --checkpoint-sync-url. - -h, --help - Print help + Specify a weak subjectivity checkpoint in `block_root:epoch` format to + verify the node's sync against. The block root should be 0x-prefixed. + Note that this flag is for verification only, to perform a checkpoint + sync from a recent state use --checkpoint-sync-url. -V, --version Print version Flags: - --allow-insecure-genesis-sync Enable syncing from genesis, which is generally insecure and incompatible with data - availability checks. Checkpoint syncing is the preferred method for syncing a node. Only - use this flag when testing. DO NOT use on mainnet! - --always-prefer-builder-payload This flag is deprecated and has no effect. - --always-prepare-payload Send payload attributes with every fork choice update. This is intended for use by block - builders, relays and developers. You should set a fee recipient on this BN and also - consider adjusting the --prepare-payload-lookahead flag. - --builder-fallback-disable-checks This flag disables all checks related to chain health. This means the builder API will - always be used for payload construction, regardless of recent chain conditions. - --compact-db If present, apply compaction to the database on start-up. Use with caution. It is - generally not recommended unless auto-compaction is disabled. - --disable-backfill-rate-limiting Disable the backfill sync rate-limiting. This allow users to just sync the entire chain as - fast as possible, however it can result in resource contention which degrades staking - performance. Stakers should generally choose to avoid this flag since backfill sync is not - required for staking. - --disable-deposit-contract-sync Explicitly disables syncing of deposit logs from the execution node. This overrides any - previous option that depends on it. Useful if you intend to run a non-validating beacon - node. - --disable-duplicate-warn-logs This flag is deprecated and has no effect. - --disable-enr-auto-update Discovery automatically updates the nodes local ENR with an external IP address and port - as seen by other peers on the network. This disables this feature, fixing the ENR's - IP/PORT to those specified on boot. - --disable-inbound-rate-limiter Disables the inbound rate limiter (requests received by this node). - --disable-lock-timeouts Disable the timeouts applied to some internal locks by default. This can lead to less - spurious failures on slow hardware but is considered experimental as it may obscure - performance issues. - --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. - --disable-optimistic-finalized-sync Force Lighthouse to verify every execution block hash with the execution client during - finalized sync. By default block hashes will be checked in Lighthouse and only passed to - the EL if initial verification fails. - --disable-packet-filter Disables the discovery packet filter. Useful for testing in smaller networks - --disable-proposer-reorgs Do not attempt to reorg late blocks from other validators when proposing. - --disable-quic Disables the quic transport. The node will rely solely on the TCP transport for libp2p - connections. - --disable-upnp Disables UPnP support. Setting this will prevent Lighthouse from attempting to - automatically establish external port mappings. - --dummy-eth1 If present, uses an eth1 backend that generates static dummy data.Identical to the method - used at the 2019 Canada interop. - -e, --enr-match Sets the local ENR IP address and port to match those set for lighthouse. Specifically, - the IP address will be the value of --listen-address and the UDP port will be - --discovery-port. - --enable-private-discovery Lighthouse by default does not discover private IP addresses. Set this flag to enable - connection attempts to local addresses. - --eth1 If present the node will connect to an eth1 node. This is required for block production, - you must use this flag if you wish to serve a validator. - --eth1-purge-cache Purges the eth1 block and deposit caches - --genesis-backfill Attempts to download blocks all the way back to genesis when checkpoint syncing. - --gui Enable the graphical user interface and all its requirements. This enables --http and - --validator-monitor-auto and enables SSE logging. - --http Enable the RESTful HTTP API server. Disabled by default. - --http-enable-tls Serves the RESTful HTTP API server over TLS. This feature is currently experimental. - --import-all-attestations Import and aggregate all attestations, regardless of validator subscriptions. This will - only import attestations from already-subscribed subnets, use with --subscribe-all-subnets - to ensure all attestations are received for import. - --light-client-server Act as a full node supporting light clients on the p2p network [experimental] - --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. - --metrics Enable the Prometheus metrics HTTP server. Disabled by default. - --private Prevents sending various client identification information. - --proposer-only Sets this beacon node at be a block proposer only node. This will run the beacon node in a - minimal configuration that is sufficient for block publishing only. This flag should be - used for a beacon node being referenced by validator client using the --proposer-node - flag. This configuration is for enabling more secure setups. - --purge-db If present, the chain database will be deleted. Use with caution. - --reconstruct-historic-states After a checkpoint sync, reconstruct historic states in the database. This requires - syncing all the way back to genesis. - --reset-payload-statuses When present, Lighthouse will forget the payload statuses of any already-imported blocks. - This can assist in the recovery from a consensus failure caused by the execution layer. - --self-limiter Enables the outbound rate limiter (requests made by this node). Use the - self-limiter-protocol flag to set per protocol configurations. If the self rate limiter is - enabled and a protocol is not present in the configuration, the quotas used for the - inbound rate limiter will be used. - --shutdown-after-sync Shutdown beacon node as soon as sync is completed. Backfill sync will not be performed - before shutdown. - --slasher Run a slasher alongside the beacon node. It is currently only recommended for expert users - because of the immaturity of the slasher UX and the extra resources required. - --staking Standard option for a staking beacon node. This will enable the HTTP server on - localhost:5052 and import deposit logs from the execution node. This is equivalent to - `--http` on merge-ready networks, or `--http --eth1` pre-merge - --subscribe-all-subnets Subscribe to all subnets regardless of validator count. This will also advertise the - beacon node as being long-lived subscribed to all subnets. - --validator-monitor-auto Enables the automatic detection and monitoring of validators connected to the HTTP API and - using the subnet subscription endpoint. This generally has the effect of providing - additional logging and metrics for locally controlled validators. - -z, --zero-ports Sets all listening TCP/UDP ports to 0, allowing the OS to choose some arbitrary free - ports. -``` \ No newline at end of file + --allow-insecure-genesis-sync + Enable syncing from genesis, which is generally insecure and + incompatible with data availability checks. Checkpoint syncing is the + preferred method for syncing a node. Only use this flag when testing. + DO NOT use on mainnet! + --always-prefer-builder-payload + This flag is deprecated and has no effect. + --always-prepare-payload + Send payload attributes with every fork choice update. This is + intended for use by block builders, relays and developers. You should + set a fee recipient on this BN and also consider adjusting the + --prepare-payload-lookahead flag. + --builder-fallback-disable-checks + This flag disables all checks related to chain health. This means the + builder API will always be used for payload construction, regardless + of recent chain conditions. + --compact-db + If present, apply compaction to the database on start-up. Use with + caution. It is generally not recommended unless auto-compaction is + disabled. + --disable-backfill-rate-limiting + Disable the backfill sync rate-limiting. This allow users to just sync + the entire chain as fast as possible, however it can result in + resource contention which degrades staking performance. Stakers should + generally choose to avoid this flag since backfill sync is not + required for staking. + --disable-deposit-contract-sync + Explicitly disables syncing of deposit logs from the execution node. + This overrides any previous option that depends on it. Useful if you + intend to run a non-validating beacon node. + --disable-duplicate-warn-logs + This flag is deprecated and has no effect. + --disable-enr-auto-update + Discovery automatically updates the nodes local ENR with an external + IP address and port as seen by other peers on the network. This + disables this feature, fixing the ENR's IP/PORT to those specified on + boot. + --disable-inbound-rate-limiter + Disables the inbound rate limiter (requests received by this node). + --disable-lock-timeouts + Disable the timeouts applied to some internal locks by default. This + can lead to less spurious failures on slow hardware but is considered + experimental as it may obscure performance issues. + --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. + --disable-optimistic-finalized-sync + Force Lighthouse to verify every execution block hash with the + execution client during finalized sync. By default block hashes will + be checked in Lighthouse and only passed to the EL if initial + verification fails. + --disable-packet-filter + Disables the discovery packet filter. Useful for testing in smaller + networks + --disable-proposer-reorgs + Do not attempt to reorg late blocks from other validators when + proposing. + --disable-quic + Disables the quic transport. The node will rely solely on the TCP + transport for libp2p connections. + --disable-upnp + Disables UPnP support. Setting this will prevent Lighthouse from + attempting to automatically establish external port mappings. + --dummy-eth1 + If present, uses an eth1 backend that generates static dummy + data.Identical to the method used at the 2019 Canada interop. + -e, --enr-match + Sets the local ENR IP address and port to match those set for + lighthouse. Specifically, the IP address will be the value of + --listen-address and the UDP port will be --discovery-port. + --enable-private-discovery + Lighthouse by default does not discover private IP addresses. Set this + flag to enable connection attempts to local addresses. + --eth1 + If present the node will connect to an eth1 node. This is required for + block production, you must use this flag if you wish to serve a + validator. + --eth1-purge-cache + Purges the eth1 block and deposit caches + --genesis-backfill + Attempts to download blocks all the way back to genesis when + checkpoint syncing. + --gui + Enable the graphical user interface and all its requirements. This + enables --http and --validator-monitor-auto and enables SSE logging. + -h, --help + Prints help information + --http + Enable the RESTful HTTP API server. Disabled by default. + --http-enable-tls + Serves the RESTful HTTP API server over TLS. This feature is currently + experimental. + --import-all-attestations + Import and aggregate all attestations, regardless of validator + subscriptions. This will only import attestations from + already-subscribed subnets, use with --subscribe-all-subnets to ensure + all attestations are received for import. + --light-client-server + Act as a full node supporting light clients on the p2p network + [experimental] + --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. + --metrics + Enable the Prometheus metrics HTTP server. Disabled by default. + --private + Prevents sending various client identification information. + --proposer-only + Sets this beacon node at be a block proposer only node. This will run + the beacon node in a minimal configuration that is sufficient for + block publishing only. This flag should be used for a beacon node + being referenced by validator client using the --proposer-node flag. + This configuration is for enabling more secure setups. + --purge-db + If present, the chain database will be deleted. Use with caution. + --reconstruct-historic-states + After a checkpoint sync, reconstruct historic states in the database. + This requires syncing all the way back to genesis. + --reset-payload-statuses + When present, Lighthouse will forget the payload statuses of any + already-imported blocks. This can assist in the recovery from a + consensus failure caused by the execution layer. + --self-limiter + Enables the outbound rate limiter (requests made by this node). Use + the self-limiter-protocol flag to set per protocol configurations. If + the self rate limiter is enabled and a protocol is not present in the + configuration, the quotas used for the inbound rate limiter will be + used. + --shutdown-after-sync + Shutdown beacon node as soon as sync is completed. Backfill sync will + not be performed before shutdown. + --slasher + Run a slasher alongside the beacon node. It is currently only + recommended for expert users because of the immaturity of the slasher + UX and the extra resources required. + --staking + Standard option for a staking beacon node. This will enable the HTTP + server on localhost:5052 and import deposit logs from the execution + node. This is equivalent to `--http` on merge-ready networks, or + `--http --eth1` pre-merge + --subscribe-all-subnets + Subscribe to all subnets regardless of validator count. This will also + advertise the beacon node as being long-lived subscribed to all + subnets. + --validator-monitor-auto + Enables the automatic detection and monitoring of validators connected + to the HTTP API and using the subnet subscription endpoint. This + generally has the effect of providing additional logging and metrics + for locally controlled validators. + -z, --zero-ports + Sets all listening TCP/UDP ports to 0, allowing the OS to choose some + arbitrary free ports. +``` \ No newline at end of file diff --git a/book/src/help_general.md b/book/src/help_general.md index c780a2b77f4..f31345f3dc0 100644 --- a/book/src/help_general.md +++ b/book/src/help_general.md @@ -1,96 +1,139 @@ # Lighthouse General Commands ``` -Ethereum 2.0 client by Sigma Prime. Provides a full-featured beacon node, a validator client and utilities for managing validator -accounts. +Ethereum 2.0 client by Sigma Prime. Provides a full-featured beacon node, a +validator client and utilities for managing validator accounts. Usage: lighthouse [OPTIONS] [COMMAND] Commands: - database_manager Manage a beacon node database [aliases: db] - validator_manager Utilities for managing a Lighthouse validator client via the HTTP API. [aliases: vm, validator-manager, - validator_manager] - beacon_node The primary component which connects to the Ethereum 2.0 P2P network and downloads, verifies and stores - blocks. Provides a HTTP API for querying the beacon chain and publishing messages to the network. [aliases: - b, bn, beacon] - boot_node Start a special Lighthouse process that only serves as a discv5 boot-node. This process will *not* import - blocks or perform most typical beacon node functions. Instead, it will simply run the discv5 service and - assist nodes on the network to discover each other. This is the recommended way to provide a network - boot-node since it has a reduced attack surface compared to a full beacon node. - validator_client When connected to a beacon node, performs the duties of a staked validator (e.g., proposing blocks and - attestations). [aliases: v, vc, validator] - account_manager Utilities for generating and managing Ethereum 2.0 accounts. [aliases: a, am, account, account_manager] - help Print this message or the help of the given subcommand(s) + account_manager + Utilities for generating and managing Ethereum 2.0 accounts. [aliases: + a, am, account, account_manager] + beacon_node + The primary component which connects to the Ethereum 2.0 P2P network + and downloads, verifies and stores blocks. Provides a HTTP API for + querying the beacon chain and publishing messages to the network. + [aliases: b, bn, beacon] + boot_node + Start a special Lighthouse process that only serves as a discv5 + boot-node. This process will *not* import blocks or perform most + typical beacon node functions. Instead, it will simply run the discv5 + service and assist nodes on the network to discover each other. This + is the recommended way to provide a network boot-node since it has a + reduced attack surface compared to a full beacon node. + database_manager + Manage a beacon node database [aliases: db] + validator_client + When connected to a beacon node, performs the duties of a staked + validator (e.g., proposing blocks and attestations). [aliases: v, vc, + validator] + validator_manager + Utilities for managing a Lighthouse validator client via the HTTP API. + [aliases: vm, validator-manager, validator_manager] + help + Print this message or the help of the given subcommand(s) Options: -d, --datadir - 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. + 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 - Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values: info, debug, - trace, warn, error, crit] + Specifies the verbosity level used when emitting logs to the terminal. + [default: info] [possible values: info, debug, trace, warn, error, + crit] --genesis-state-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. + 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 - The timeout in seconds for the request to --genesis-state-url. [default: 180] + The timeout in seconds for the request to --genesis-state-url. + [default: 180] --log-format - Specifies the log format used when emitting logs to the terminal. [possible values: JSON] + Specifies the log format used when emitting logs to the terminal. + [possible values: JSON] --logfile - 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. + 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 - The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info, debug, trace, warn, - error, crit] + The verbosity level used when emitting logs to the log file. [default: + debug] [possible values: info, debug, trace, warn, error, crit] --logfile-format - Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON] + Specifies the log format used when emitting logs to the logfile. + [possible values: DEFAULT, JSON] --logfile-max-number - The maximum number of log files that will be stored. If set to 0, background file logging is disabled. [default: 5] + The maximum number of log files that will be stored. If set to 0, + background file logging is disabled. [default: 5] --logfile-max-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] + The maximum size (in MB) each log file can grow to before rotating. If + set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, chiado, sepolia, - holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible + values: mainnet, prater, goerli, gnosis, chiado, sepolia, holesky] --safe-slots-to-import-optimistically - 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. + 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. -t, --testnet-dir - Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective if there is no - existing database. + Path to directory containing eth2_testnet specs. Defaults to a + hard-coded Lighthouse testnet. Only effective if there is no existing + database. --terminal-block-hash-epoch-override - 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. + 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 - 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. + 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 - 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. - -h, --help - Print help + 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. -V, --version Print version Flags: - --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. - -l DEPRECATED Enables environment logging giving access to sub-protocol logs such as discv5 and - libp2p - --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. -``` \ No newline at end of file + --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. + -h, --help + Prints help information + -l + DEPRECATED Enables environment logging giving access to sub-protocol + logs such as discv5 and libp2p + --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. +``` \ No newline at end of file diff --git a/book/src/help_vc.md b/book/src/help_vc.md index 8e70e243ca1..642bb3791ea 100644 --- a/book/src/help_vc.md +++ b/book/src/help_vc.md @@ -1,195 +1,279 @@ # Validator Client ``` -When connected to a beacon node, performs the duties of a staked validator (e.g., proposing blocks and attestations). +When connected to a beacon node, performs the duties of a staked validator +(e.g., proposing blocks and attestations). Usage: lighthouse validator_client [OPTIONS] Options: --beacon-nodes - Comma-separated addresses to one or more beacon node HTTP APIs. Default is http://localhost:5052. + Comma-separated addresses to one or more beacon node HTTP APIs. + Default is http://localhost:5052. --beacon-nodes-tls-certs - Comma-separated paths to custom TLS certificates to use when connecting to a beacon node (and/or proposer node). These - certificates must be in PEM format and are used in addition to the OS trust store. Commas must only be used as a delimiter, - and must not be part of the certificate path. + Comma-separated paths to custom TLS certificates to use when + connecting to a beacon node (and/or proposer node). These certificates + must be in PEM format and are used in addition to the OS trust store. + Commas must only be used as a delimiter, and must not be part of the + certificate path. --broadcast - Comma-separated list of beacon API topics to broadcast to all beacon nodes. Possible values are: none, attestations, - blocks, subscriptions, sync-committee. Default (when flag is omitted) is to broadcast subscriptions only. + Comma-separated list of beacon API topics to broadcast to all beacon + nodes. Possible values are: none, attestations, blocks, subscriptions, + sync-committee. Default (when flag is omitted) is to broadcast + subscriptions only. --builder-boost-factor - Defines the boost factor, a percentage multiplier to apply to the builder's payload value when choosing between a builder - payload header and payload from the local execution node. + Defines the boost factor, a 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-registration-timestamp-override - This flag takes a unix timestamp value that will be used to override the timestamp used in the builder api registration + This flag takes a unix timestamp value that will be used to override + the timestamp used in the builder api registration -d, --datadir - 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. + 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 - Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values: info, debug, - trace, warn, error, crit] + Specifies the verbosity level used when emitting logs to the terminal. + [default: info] [possible values: info, debug, trace, warn, error, + crit] --gas-limit - The gas limit to be used in all builder proposals for all validators managed by this validator client. Note this will not - necessarily be used if the gas limit set here moves too far from the previous block's gas limit. [default: 30,000,000] + The gas limit to be used in all builder proposals for all validators + managed by this validator client. Note this will not necessarily be + used if the gas limit set here moves too far from the previous block's + gas limit. [default: 30,000,000] --genesis-state-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. + 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 - The timeout in seconds for the request to --genesis-state-url. [default: 180] + The timeout in seconds for the request to --genesis-state-url. + [default: 180] --graffiti Specify your custom graffiti to be included in blocks. --graffiti-file Specify a graffiti file to load validator graffitis from. --http-address
- Set the address for the HTTP address. The HTTP server is not encrypted and therefore it is unsafe to publish on a public - network. When this flag is used, it additionally requires the explicit use of the `--unencrypted-http-transport` flag to - ensure the user is aware of the risks involved. For access via the Internet, users should apply transport-layer security - like a HTTPS reverse-proxy or SSH tunnelling. + Set the address for the HTTP address. The HTTP server is not encrypted + and therefore it is unsafe to publish on a public network. When this + flag is used, it additionally requires the explicit use of the + `--unencrypted-http-transport` flag to ensure the user is aware of the + risks involved. For access via the Internet, users should apply + transport-layer security like a HTTPS reverse-proxy or SSH tunnelling. --http-allow-origin - Set the value of the Access-Control-Allow-Origin response HTTP header. Use * to allow any origin (not recommended in - production). If no value is supplied, the CORS allowed origin is set to the listen address of this server (e.g., - http://localhost:5062). + Set the value of the Access-Control-Allow-Origin response HTTP header. + Use * to allow any origin (not recommended in production). If no value + is supplied, the CORS allowed origin is set to the listen address of + this server (e.g., http://localhost:5062). --http-port Set the listen TCP port for the RESTful HTTP API server. --log-format - Specifies the log format used when emitting logs to the terminal. [possible values: JSON] + Specifies the log format used when emitting logs to the terminal. + [possible values: JSON] --logfile - 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. + 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 - The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info, debug, trace, warn, - error, crit] + The verbosity level used when emitting logs to the log file. [default: + debug] [possible values: info, debug, trace, warn, error, crit] --logfile-format - Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON] + Specifies the log format used when emitting logs to the logfile. + [possible values: DEFAULT, JSON] --logfile-max-number - The maximum number of log files that will be stored. If set to 0, background file logging is disabled. [default: 5] + The maximum number of log files that will be stored. If set to 0, + background file logging is disabled. [default: 5] --logfile-max-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] + The maximum size (in MB) each log file can grow to before rotating. If + set to 0, background file logging is disabled. [default: 200] --metrics-address
Set the listen address for the Prometheus metrics HTTP server. --metrics-allow-origin - Set the value of the Access-Control-Allow-Origin response HTTP header. Use * to allow any origin (not recommended in - production). If no value is supplied, the CORS allowed origin is set to the listen address of this server (e.g., - http://localhost:5064). + Set the value of the Access-Control-Allow-Origin response HTTP header. + Use * to allow any origin (not recommended in production). If no value + is supplied, the CORS allowed origin is set to the listen address of + this server (e.g., http://localhost:5064). --metrics-port Set the listen TCP port for the Prometheus metrics HTTP server. --monitoring-endpoint
- Enables the monitoring service for sending system metrics to a remote endpoint. This can be used to monitor your setup on - certain services (e.g. beaconcha.in). This flag sets the endpoint where the beacon node metrics will be sent. Note: This - will send information to a remote sever which may identify and associate your validators, IP address and other personal - information. Always use a HTTPS connection and never provide an untrusted URL. + Enables the monitoring service for sending system metrics to a remote + endpoint. This can be used to monitor your setup on certain services + (e.g. beaconcha.in). This flag sets the endpoint where the beacon node + metrics will be sent. Note: This will send information to a remote + sever which may identify and associate your validators, IP address and + other personal information. Always use a HTTPS connection and never + provide an untrusted URL. --monitoring-endpoint-period - Defines how many seconds to wait between each message sent to the monitoring-endpoint. Default: 60s + Defines how many seconds to wait between each message sent to the + monitoring-endpoint. Default: 60s --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, chiado, sepolia, - holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible + values: mainnet, prater, goerli, gnosis, chiado, sepolia, holesky] --proposer-nodes - Comma-separated addresses to one or more beacon node HTTP APIs. These specify nodes that are used to send beacon block - proposals. A failure will revert back to the standard beacon nodes specified in --beacon-nodes. + Comma-separated addresses to one or more beacon node HTTP APIs. These + specify nodes that are used to send beacon block proposals. A failure + will revert back to the standard beacon nodes specified in + --beacon-nodes. --safe-slots-to-import-optimistically - 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. + 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. --secrets-dir - The directory which contains the password to unlock the validator voting keypairs. Each password should be contained in a - file where the name is the 0x-prefixed hex representation of the validators voting public key. Defaults to - ~/.lighthouse/{network}/secrets. + The directory which contains the password to unlock the validator + voting keypairs. Each password should be contained in a file where the + name is the 0x-prefixed hex representation of the validators voting + public key. Defaults to ~/.lighthouse/{network}/secrets. --suggested-fee-recipient - Once the merge has happened, this address will receive transaction fees from blocks proposed by this validator client. If a - fee recipient is configured in the validator definitions it takes priority over this value. + Once the merge has happened, this address will receive transaction + fees from blocks proposed by this validator client. If a fee recipient + is configured in the validator definitions it takes priority over this + value. -t, --testnet-dir - Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective if there is no - existing database. + Path to directory containing eth2_testnet specs. Defaults to a + hard-coded Lighthouse testnet. Only effective if there is no existing + database. --terminal-block-hash-epoch-override - 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. + 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 - 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. + 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 - 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. + 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. --validator-registration-batch-size - Defines the number of validators per validator/register_validator request sent to the BN. This value can be reduced to - avoid timeouts from builders. [default: 500] + Defines the number of validators per validator/register_validator + request sent to the BN. This value can be reduced to avoid timeouts + from builders. [default: 500] --validators-dir - The directory which contains the validator keystores, deposit data for each validator along with the common slashing - protection database and the validator_definitions.yml + The directory which contains the validator keystores, deposit data for + each validator along with the common slashing protection database and + the validator_definitions.yml --web3-signer-keep-alive-timeout - Keep-alive timeout for each web3signer connection. Set to 'null' to never timeout [default: 90000] + Keep-alive timeout for each web3signer connection. Set to 'null' to + never timeout [default: 90000] --web3-signer-max-idle-connections - Maximum number of idle connections to maintain per web3signer host. Default is unlimited. - -h, --help - Print help + Maximum number of idle connections to maintain per web3signer host. + Default is unlimited. Flags: - --builder-proposals If this flag is set, Lighthouse will query the Beacon Node for only block headers - during proposals and will sign over headers. Useful for outsourcing execution payload - construction during proposals. - --disable-auto-discover If present, do not attempt to discover new validators in the validators-dir. - Validators will need to be manually added to the validator_definitions.yml file. - --disable-latency-measurement-service Disables the service that periodically attempts to measure latency to BNs. - --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. - --disable-run-on-all DEPRECATED. Use --broadcast. By default, Lighthouse publishes attestation, sync - committee subscriptions and proposer preparation messages to all beacon nodes - provided in the `--beacon-nodes flag`. This option changes that behaviour such that - these api calls only go out to the first available and synced beacon node - --disable-slashing-protection-web3signer Disable Lighthouse's slashing protection for all web3signer keys. This can reduce the - I/O burden on the VC but is only safe if slashing protection is enabled on the remote - signer and is implemented correctly. DO NOT ENABLE THIS FLAG UNLESS YOU ARE CERTAIN - THAT SLASHING PROTECTION IS ENABLED ON THE REMOTE SIGNER. YOU WILL GET SLASHED IF YOU - USE THIS FLAG WITHOUT ENABLING WEB3SIGNER'S SLASHING PROTECTION. - --distributed Enables functionality required for running the validator in a distributed validator - cluster. - --enable-doppelganger-protection If this flag is set, Lighthouse will delay startup for three epochs and monitor for - messages on the network by any of the validators managed by this client. This will - result in three (possibly four) epochs worth of missed attestations. If an - attestation is detected during this period, it means it is very likely that you are - running a second validator client with the same keys. This validator client will - immediately shutdown if this is detected in order to avoid potentially committing a - slashable offense. Use this flag in order to ENABLE this functionality, without this - flag Lighthouse will begin attesting immediately. - --enable-high-validator-count-metrics Enable per validator metrics for > 64 validators. Note: This flag is automatically - enabled for <= 64 validators. Enabling this metric for higher validator counts will - lead to higher volume of prometheus metrics being collected. - --http Enable the RESTful HTTP API server. Disabled by default. - --http-allow-keystore-export If present, allow access to the DELETE /lighthouse/keystores HTTP API method, which - allows exporting keystores and passwords to HTTP API consumers who have access to the - API token. This method is useful for exporting validators, however it should be used - with caution since it exposes private key data to authorized users. - --http-store-passwords-in-secrets-dir If present, any validators created via the HTTP will have keystore passwords stored - in the secrets-dir rather than the validator definitions file. - --init-slashing-protection If present, do not require the slashing protection database to exist before running. - You SHOULD NOT use this flag unless you're certain that a new slashing protection - database is required. Usually, your database will have been initialized when you - imported your validator keys. If you misplace your database and then run with this - flag you risk being slashed. - --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. - --metrics Enable the Prometheus metrics HTTP server. Disabled by default. - --prefer-builder-proposals If this flag is set, Lighthouse will always prefer blocks constructed by builders, - regardless of payload value. - --produce-block-v3 Enable block production via the block v3 endpoint for this validator client. This - should only be enabled when paired with a beacon node that has this endpoint - implemented. This flag will be enabled by default in future. - --unencrypted-http-transport This is a safety flag to ensure that the user is aware that the http transport is - unencrypted and using a custom HTTP address is unsafe. - --use-long-timeouts If present, the validator client will use longer timeouts for requests made to the - beacon node. This flag is generally not recommended, longer timeouts can cause missed - duties when fallbacks are used. -``` \ No newline at end of file + --builder-proposals + If this flag is set, Lighthouse will query the Beacon Node for only + block headers during proposals and will sign over headers. Useful for + outsourcing execution payload construction during proposals. + --disable-auto-discover + If present, do not attempt to discover new validators in the + validators-dir. Validators will need to be manually added to the + validator_definitions.yml file. + --disable-latency-measurement-service + Disables the service that periodically attempts to measure latency to + BNs. + --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. + --disable-run-on-all + DEPRECATED. Use --broadcast. By default, Lighthouse publishes + attestation, sync committee subscriptions and proposer preparation + messages to all beacon nodes provided in the `--beacon-nodes flag`. + This option changes that behaviour such that these api calls only go + out to the first available and synced beacon node + --disable-slashing-protection-web3signer + Disable Lighthouse's slashing protection for all web3signer keys. This + can reduce the I/O burden on the VC but is only safe if slashing + protection is enabled on the remote signer and is implemented + correctly. DO NOT ENABLE THIS FLAG UNLESS YOU ARE CERTAIN THAT + SLASHING PROTECTION IS ENABLED ON THE REMOTE SIGNER. YOU WILL GET + SLASHED IF YOU USE THIS FLAG WITHOUT ENABLING WEB3SIGNER'S SLASHING + PROTECTION. + --distributed + Enables functionality required for running the validator in a + distributed validator cluster. + --enable-doppelganger-protection + If this flag is set, Lighthouse will delay startup for three epochs + and monitor for messages on the network by any of the validators + managed by this client. This will result in three (possibly four) + epochs worth of missed attestations. If an attestation is detected + during this period, it means it is very likely that you are running a + second validator client with the same keys. This validator client will + immediately shutdown if this is detected in order to avoid potentially + committing a slashable offense. Use this flag in order to ENABLE this + functionality, without this flag Lighthouse will begin attesting + immediately. + --enable-high-validator-count-metrics + Enable per validator metrics for > 64 validators. Note: This flag is + automatically enabled for <= 64 validators. Enabling this metric for + higher validator counts will lead to higher volume of prometheus + metrics being collected. + -h, --help + Prints help information + --http + Enable the RESTful HTTP API server. Disabled by default. + --http-allow-keystore-export + If present, allow access to the DELETE /lighthouse/keystores HTTP API + method, which allows exporting keystores and passwords to HTTP API + consumers who have access to the API token. This method is useful for + exporting validators, however it should be used with caution since it + exposes private key data to authorized users. + --http-store-passwords-in-secrets-dir + If present, any validators created via the HTTP will have keystore + passwords stored in the secrets-dir rather than the validator + definitions file. + --init-slashing-protection + If present, do not require the slashing protection database to exist + before running. You SHOULD NOT use this flag unless you're certain + that a new slashing protection database is required. Usually, your + database will have been initialized when you imported your validator + keys. If you misplace your database and then run with this flag you + risk being slashed. + --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. + --metrics + Enable the Prometheus metrics HTTP server. Disabled by default. + --prefer-builder-proposals + If this flag is set, Lighthouse will always prefer blocks constructed + by builders, regardless of payload value. + --produce-block-v3 + Enable block production via the block v3 endpoint for this validator + client. This should only be enabled when paired with a beacon node + that has this endpoint implemented. This flag will be enabled by + default in future. + --unencrypted-http-transport + This is a safety flag to ensure that the user is aware that the http + transport is unencrypted and using a custom HTTP address is unsafe. + --use-long-timeouts + If present, the validator client will use longer timeouts for requests + made to the beacon node. This flag is generally not recommended, + longer timeouts can cause missed duties when fallbacks are used. +``` \ No newline at end of file diff --git a/book/src/help_vm.md b/book/src/help_vm.md index 0999eecbd6b..1b9324f4199 100644 --- a/book/src/help_vm.md +++ b/book/src/help_vm.md @@ -6,82 +6,121 @@ Utilities for managing a Lighthouse validator client via the HTTP API. Usage: lighthouse validator_manager [OPTIONS] [COMMAND] Commands: - 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. - import 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. - move 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. This command only supports validators signing via a keystore on the - local file system (i.e., not Web3Signer validators). - help Print this message or the help of the given subcommand(s) + 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. + import + 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. + move + 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. This command only supports validators + signing via a keystore on the local file system (i.e., not Web3Signer + validators). + help + Print this message or the help of the given subcommand(s) Options: -d, --datadir - 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. + 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 - Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values: info, debug, - trace, warn, error, crit] + Specifies the verbosity level used when emitting logs to the terminal. + [default: info] [possible values: info, debug, trace, warn, error, + crit] --genesis-state-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. + 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 - The timeout in seconds for the request to --genesis-state-url. [default: 180] + The timeout in seconds for the request to --genesis-state-url. + [default: 180] --log-format - Specifies the log format used when emitting logs to the terminal. [possible values: JSON] + Specifies the log format used when emitting logs to the terminal. + [possible values: JSON] --logfile - 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. + 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 - The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info, debug, trace, warn, - error, crit] + The verbosity level used when emitting logs to the log file. [default: + debug] [possible values: info, debug, trace, warn, error, crit] --logfile-format - Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON] + Specifies the log format used when emitting logs to the logfile. + [possible values: DEFAULT, JSON] --logfile-max-number - The maximum number of log files that will be stored. If set to 0, background file logging is disabled. [default: 5] + The maximum number of log files that will be stored. If set to 0, + background file logging is disabled. [default: 5] --logfile-max-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] + The maximum size (in MB) each log file can grow to before rotating. If + set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, chiado, sepolia, - holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible + values: mainnet, prater, goerli, gnosis, chiado, sepolia, holesky] --safe-slots-to-import-optimistically - 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. + 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. -t, --testnet-dir - Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective if there is no - existing database. + Path to directory containing eth2_testnet specs. Defaults to a + hard-coded Lighthouse testnet. Only effective if there is no existing + database. --terminal-block-hash-epoch-override - 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. + 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 - 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. + 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 - 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. - -h, --help - Print help + 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. Flags: - --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. - --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. -``` \ No newline at end of file + --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. + -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. +``` \ No newline at end of file diff --git a/book/src/help_vm_create.md b/book/src/help_vm_create.md index 45123e82be8..7a01cf16374 100644 --- a/book/src/help_vm_create.md +++ b/book/src/help_vm_create.md @@ -1,123 +1,167 @@ # 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. +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 [OPTIONS] --output-path Options: --beacon-node - 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. + 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-boost-factor - Defines the boost factor, a percentage multiplier to apply to the builder's payload value when choosing between a builder - payload header and payload from the local execution node. + Defines the boost factor, a 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 - When provided, all created validators will attempt to create blocks via builder rather than the local EL. [possible values: - true, false] + When provided, all created validators will attempt to create blocks + via builder rather than the local EL. [possible values: true, false] --count - The number of validators to create, regardless of how many already exist + The number of validators to create, regardless of how many already + exist -d, --datadir - 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. + 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 - Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values: info, debug, - trace, warn, error, crit] + Specifies the verbosity level used when emitting logs to the terminal. + [default: info] [possible values: info, debug, trace, warn, error, + crit] --deposit-gwei - The GWEI value of the deposit amount. Defaults to the minimum amount required for an active validator - (MAX_EFFECTIVE_BALANCE) + The GWEI value of the deposit amount. Defaults to the minimum amount + required for an active validator (MAX_EFFECTIVE_BALANCE) --eth1-withdrawal-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. + 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 The first of consecutive key indexes you wish to create. [default: 0] --gas-limit - All created validators will use this gas limit. It is recommended to leave this as the default value by not specifying this - flag. + 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 - 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. + 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 - The timeout in seconds for the request to --genesis-state-url. [default: 180] + The timeout in seconds for the request to --genesis-state-url. + [default: 180] --log-format - Specifies the log format used when emitting logs to the terminal. [possible values: JSON] + Specifies the log format used when emitting logs to the terminal. + [possible values: JSON] --logfile - 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. + 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 - The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info, debug, trace, warn, - error, crit] + The verbosity level used when emitting logs to the log file. [default: + debug] [possible values: info, debug, trace, warn, error, crit] --logfile-format - Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON] + Specifies the log format used when emitting logs to the logfile. + [possible values: DEFAULT, JSON] --logfile-max-number - The maximum number of log files that will be stored. If set to 0, background file logging is disabled. [default: 5] + The maximum number of log files that will be stored. If set to 0, + background file logging is disabled. [default: 5] --logfile-max-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] + 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 If present, the mnemonic will be read in from this file. --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, chiado, sepolia, - holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible + values: mainnet, prater, goerli, gnosis, chiado, sepolia, holesky] --output-path - 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. + 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. --prefer-builder-proposals - If this flag is set, Lighthouse will always prefer blocks constructed by builders, regardless of payload value. [possible - values: true, false] + If this flag is set, Lighthouse will always prefer blocks constructed + by builders, regardless of payload value. [possible values: true, + false] --safe-slots-to-import-optimistically - 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. + 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 - All created validators will use this value for the suggested fee recipient. Omit this flag to use the default value from - the VC. + All created validators will use this value for the suggested fee + recipient. Omit this flag to use the default value from the VC. -t, --testnet-dir - Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective if there is no - existing database. + Path to directory containing eth2_testnet specs. Defaults to a + hard-coded Lighthouse testnet. Only effective if there is no existing + database. --terminal-block-hash-epoch-override - 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. + 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 - 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. + 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 - 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. - -h, --help - Print help + 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. 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. - --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. -``` \ No newline at end of file + --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. +``` \ No newline at end of file diff --git a/book/src/help_vm_import.md b/book/src/help_vm_import.md index 10140318f02..02f5747d69f 100644 --- a/book/src/help_vm_import.md +++ b/book/src/help_vm_import.md @@ -1,89 +1,124 @@ # Validator Manager Import ``` -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. +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 Options: -d, --datadir - 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. + 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 - Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values: info, debug, - trace, warn, error, crit] + Specifies the verbosity level used when emitting logs to the terminal. + [default: info] [possible values: info, debug, trace, warn, error, + crit] --genesis-state-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. + 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 - The timeout in seconds for the request to --genesis-state-url. [default: 180] + The timeout in seconds for the request to --genesis-state-url. + [default: 180] --log-format - Specifies the log format used when emitting logs to the terminal. [possible values: JSON] + Specifies the log format used when emitting logs to the terminal. + [possible values: JSON] --logfile - 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. + 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 - The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info, debug, trace, warn, - error, crit] + The verbosity level used when emitting logs to the log file. [default: + debug] [possible values: info, debug, trace, warn, error, crit] --logfile-format - Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON] + Specifies the log format used when emitting logs to the logfile. + [possible values: DEFAULT, JSON] --logfile-max-number - The maximum number of log files that will be stored. If set to 0, background file logging is disabled. [default: 5] + The maximum number of log files that will be stored. If set to 0, + background file logging is disabled. [default: 5] --logfile-max-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] + The maximum size (in MB) each log file can grow to before rotating. If + set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, chiado, sepolia, - holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible + values: mainnet, prater, goerli, gnosis, chiado, sepolia, holesky] --safe-slots-to-import-optimistically - 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. + 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. -t, --testnet-dir - Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective if there is no - existing database. + Path to directory containing eth2_testnet specs. Defaults to a + hard-coded Lighthouse testnet. Only effective if there is no existing + database. --terminal-block-hash-epoch-override - 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. + 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 - 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. + 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 - 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. + 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. --validators-file - The path to a JSON file containing a list of validators to be imported to the validator client. This file is usually named - "validators.json". + The path to a JSON file containing a list of validators to be imported + to the validator client. This file is usually named "validators.json". --vc-token The file containing a token required by the validator client. --vc-url - 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] - -h, --help - Print help + 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] Flags: - --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. - --ignore-duplicates If present, ignore any validators which already exist on the VC. Without this flag, the process - will terminate without making any changes. This flag should be used with caution, whilst it does - not directly cause slashable conditions, it might be an indicator that something is amiss. Users - should also be careful to avoid submitting duplicate deposits for validators that already exist - on the VC. - --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. -``` \ No newline at end of file + --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. + -h, --help + Prints help information + --ignore-duplicates + If present, ignore any validators which already exist on the VC. + Without this flag, the process will terminate without making any + changes. This flag should be used with caution, whilst it does not + directly cause slashable conditions, it might be an indicator that + something is amiss. Users should also be careful to avoid submitting + duplicate deposits for validators that already exist on the VC. + --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. +``` \ No newline at end of file diff --git a/book/src/help_vm_move.md b/book/src/help_vm_move.md index 24d6d7b5f4e..2bca6652319 100644 --- a/book/src/help_vm_move.md +++ b/book/src/help_vm_move.md @@ -1,108 +1,145 @@ # Validator Manager Move ``` -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. This command only supports validators signing via a keystore on the local file system (i.e., not -Web3Signer validators). +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. This command only supports validators signing via a keystore on the +local file system (i.e., not Web3Signer validators). Usage: lighthouse validator_manager move [OPTIONS] --src-vc-token --src-vc-url --dest-vc-token --dest-vc-url Options: --builder-boost-factor - Defines the boost factor, a percentage multiplier to apply to the builder's payload value when choosing between a builder - payload header and payload from the local execution node. + Defines the boost factor, a 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 - When provided, all created validators will attempt to create blocks via builder rather than the local EL. [possible values: - true, false] + When provided, all created validators will attempt to create blocks + via builder rather than the local EL. [possible values: true, false] --count The number of validators to move. -d, --datadir - 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. + 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 - Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values: info, debug, - trace, warn, error, crit] + Specifies the verbosity level used when emitting logs to the terminal. + [default: info] [possible values: info, debug, trace, warn, error, + crit] --dest-vc-token - The file containing a token required by the destination validator client. + The file containing a token required by the destination validator + client. --dest-vc-url - A HTTP(S) address of a validator client using the keymanager-API. This validator client is the "destination" and will have - new validators added as they are removed from the "source" validator client. + A HTTP(S) address of a validator client using the keymanager-API. This + validator client is the "destination" and will have new validators + added as they are removed from the "source" validator client. --gas-limit - All created validators will use this gas limit. It is recommended to leave this as the default value by not specifying this - flag. + 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 - 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. + 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 - The timeout in seconds for the request to --genesis-state-url. [default: 180] + The timeout in seconds for the request to --genesis-state-url. + [default: 180] --log-format - Specifies the log format used when emitting logs to the terminal. [possible values: JSON] + Specifies the log format used when emitting logs to the terminal. + [possible values: JSON] --logfile - 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. + 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 - The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info, debug, trace, warn, - error, crit] + The verbosity level used when emitting logs to the log file. [default: + debug] [possible values: info, debug, trace, warn, error, crit] --logfile-format - Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON] + Specifies the log format used when emitting logs to the logfile. + [possible values: DEFAULT, JSON] --logfile-max-number - The maximum number of log files that will be stored. If set to 0, background file logging is disabled. [default: 5] + The maximum number of log files that will be stored. If set to 0, + background file logging is disabled. [default: 5] --logfile-max-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] + The maximum size (in MB) each log file can grow to before rotating. If + set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, chiado, sepolia, - holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible + values: mainnet, prater, goerli, gnosis, chiado, sepolia, holesky] --prefer-builder-proposals - If this flag is set, Lighthouse will always prefer blocks constructed by builders, regardless of payload value. [possible - values: true, false] + If this flag is set, Lighthouse will always prefer blocks constructed + by builders, regardless of payload value. [possible values: true, + false] --safe-slots-to-import-optimistically - 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. + 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. --src-vc-token The file containing a token required by the source validator client. --src-vc-url - A HTTP(S) address of a validator client using the keymanager-API. This validator client is the "source" and contains the - validators that are to be moved. + A HTTP(S) address of a validator client using the keymanager-API. This + validator client is the "source" and contains the validators that are + to be moved. --stdin-inputs If present, read all user inputs from stdin instead of tty. --suggested-fee-recipient - All created validators will use this value for the suggested fee recipient. Omit this flag to use the default value from - the VC. + All created validators will use this value for the suggested fee + recipient. Omit this flag to use the default value from the VC. -t, --testnet-dir - Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective if there is no - existing database. + Path to directory containing eth2_testnet specs. Defaults to a + hard-coded Lighthouse testnet. Only effective if there is no existing + database. --terminal-block-hash-epoch-override - 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. + 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 - 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. + 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 - 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. + 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. --validators - The validators to be moved. Either a list of 0x-prefixed validator pubkeys or the keyword "all". - -h, --help - Print help + The validators to be moved. Either a list of 0x-prefixed validator + pubkeys or the keyword "all". Flags: - --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. - --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. -``` \ No newline at end of file + --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. + -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. +``` \ No newline at end of file diff --git a/boot_node/src/cli.rs b/boot_node/src/cli.rs index 0854078e281..307b3043a2c 100644 --- a/boot_node/src/cli.rs +++ b/boot_node/src/cli.rs @@ -12,6 +12,16 @@ pub fn cli_app() -> Command { This is the recommended way to provide a network boot-node since it has a reduced attack \ surface compared to a full beacon node.") .styles(get_color_style()) + .display_order(0) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new("enr-address") .long("enr-address") @@ -23,7 +33,7 @@ pub fn cli_app() -> Command { local node on this address. This will update the `ip4` or `ip6` ENR fields \ accordingly. To update both, set this flag twice with the different values.") .action(ArgAction::Append) - .num_args(0..=2) + .num_args(1..=2) .required(true) .conflicts_with("network-dir") .display_order(0) diff --git a/database_manager/src/lib.rs b/database_manager/src/lib.rs index 804fc9da2a1..7a8e5141bfe 100644 --- a/database_manager/src/lib.rs +++ b/database_manager/src/lib.rs @@ -177,6 +177,15 @@ pub fn cli_app() -> Command { .visible_aliases(["db"]) .styles(get_color_style()) .about("Manage a beacon node database") + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new("slots-per-restore-point") .long("slots-per-restore-point") diff --git a/lighthouse/src/main.rs b/lighthouse/src/main.rs index 4b6ef255d88..5743bedfd70 100644 --- a/lighthouse/src/main.rs +++ b/lighthouse/src/main.rs @@ -80,6 +80,9 @@ fn main() { .version(SHORT_VERSION.as_str()) .author("Sigma Prime ") .styles(get_color_style()) + .next_line_help(true) + .term_width(80) + .disable_help_flag(true) .about( "Ethereum 2.0 client by Sigma Prime. Provides a full-featured beacon \ node, a validator client and utilities for managing validator accounts.", @@ -382,6 +385,15 @@ fn main() { .global(true) .display_order(0) ) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .subcommand(beacon_node::cli_app()) .subcommand(boot_node::cli_app()) .subcommand(validator_client::cli_app()) diff --git a/validator_client/src/cli.rs b/validator_client/src/cli.rs index ed91712b056..b4c66570c89 100644 --- a/validator_client/src/cli.rs +++ b/validator_client/src/cli.rs @@ -5,10 +5,20 @@ pub fn cli_app() -> Command { Command::new("validator_client") .visible_aliases(["v", "vc", "validator"]) .styles(get_color_style()) + .display_order(0) .about( "When connected to a beacon node, performs the duties of a staked \ validator (e.g., proposing blocks and attestations).", ) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new("beacon-nodes") .long("beacon-nodes") diff --git a/validator_manager/src/create_validators.rs b/validator_manager/src/create_validators.rs index 762cef9bc0f..2144b0ac7fa 100644 --- a/validator_manager/src/create_validators.rs +++ b/validator_manager/src/create_validators.rs @@ -45,6 +45,15 @@ pub fn cli_app() -> 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.", ) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new(OUTPUT_PATH_FLAG) .long(OUTPUT_PATH_FLAG) diff --git a/validator_manager/src/import_validators.rs b/validator_manager/src/import_validators.rs index b72ecf1f55e..1f864cdf416 100644 --- a/validator_manager/src/import_validators.rs +++ b/validator_manager/src/import_validators.rs @@ -21,6 +21,15 @@ pub fn cli_app() -> Command { are defined in a JSON file which can be generated using the \"create-validators\" \ command.", ) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new(VALIDATORS_FILE_FLAG) .long(VALIDATORS_FILE_FLAG) diff --git a/validator_manager/src/lib.rs b/validator_manager/src/lib.rs index 297bf397f5e..16b6bbddf47 100644 --- a/validator_manager/src/lib.rs +++ b/validator_manager/src/lib.rs @@ -1,5 +1,5 @@ -use clap::{ArgMatches, Command}; -use clap_utils::get_color_style; +use clap::{Arg, ArgAction, ArgMatches, Command}; +use clap_utils::{get_color_style, FLAG_HEADER}; use common::write_to_json_file; use environment::Environment; use serde::Serialize; @@ -44,6 +44,15 @@ pub fn cli_app() -> Command { .display_order(0) .styles(get_color_style()) .about("Utilities for managing a Lighthouse validator client via the HTTP API.") + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .subcommand(create_validators::cli_app()) .subcommand(import_validators::cli_app()) .subcommand(move_validators::cli_app()) diff --git a/validator_manager/src/move_validators.rs b/validator_manager/src/move_validators.rs index b95e759e9f8..9bc64b66e84 100644 --- a/validator_manager/src/move_validators.rs +++ b/validator_manager/src/move_validators.rs @@ -2,6 +2,7 @@ use super::common::*; use crate::DumpConfig; use account_utils::{read_password_from_user, ZeroizeString}; use clap::{Arg, ArgAction, ArgMatches, Command}; +use clap_utils::FLAG_HEADER; use eth2::{ lighthouse_vc::{ std_types::{ @@ -74,6 +75,15 @@ pub fn cli_app() -> Command { command. This command only supports validators signing via a keystore on the local \ file system (i.e., not Web3Signer validators).", ) + .arg( + Arg::new("help") + .long("help") + .short('h') + .help("Prints help information") + .action(ArgAction::HelpLong) + .display_order(0) + .help_heading(FLAG_HEADER) + ) .arg( Arg::new(SRC_VC_URL_FLAG) .long(SRC_VC_URL_FLAG)