Files
lighthouse/book/src/help_bn.md
Paul Hauner 12d3d237cd Disallow genesis sync outside blob pruning window (#5038)
* Disallow Syncing From Genesis By Default

* Fix CLI Tests

* Perform checks in the `ClientBuilder`

* Tidy, fix tests

* Return an error based on the Deneb fork

* Fix typos

* Fix failing test

* Add missing CLI flag

* Fix CLI flags

* Add suggestion from Sean

* Fix conflict with blob sidecars epochs

---------

Co-authored-by: Mark Mackey <mark@sigmaprime.io>
2024-01-09 14:17:01 -05:00

38 KiB

Beacon Node

Sigma Prime <contact@sigmaprime.io>
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 [FLAGS] [OPTIONS]

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        Explictly 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          Disable warning logs for duplicate gossip messages. The WARN level log is
                                               useful for detecting a duplicate validator key running elsewhere.
                                               However, this may result in excessive warning logs if the validator is
                                               broadcasting messages to multiple beacon nodes via the validator client
                                               --broadcast flag. In this case, disabling these warn logs may be useful.
    -x, --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-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.
        --enable-private-discovery             Lighthouse by default does not discover private IP addresses. Set this
                                               flag to enable connection attempts to local addresses.
    -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.
        --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-allow-sync-stalled              Forces the HTTP to indicate that the node is synced when sync is actually
                                               stalled. This is useful for very small testnets. TESTING ONLY. DO NOT USE
                                               ON MAINNET.
        --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.
        --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.
    -V, --version                              Prints version information
    -z, --zero-ports                           Sets all listening TCP/UDP ports to 0, allowing the OS to choose some
                                               arbitrary free ports.

OPTIONS:
        --auto-compact-db <auto-compact-db>
            Enable or disable automatic compaction of the database on finalization. [default: true]

        --beacon-processor-aggregate-batch-size <INTEGER>
            Specifies the number of gossip aggregate attestations in a signature verification batch. Higher values may
            reduce CPU usage in a healthy network while lower values may increase CPU usage in an unhealthy or hostile
            network. [default: 64]
        --beacon-processor-attestation-batch-size <INTEGER>
            Specifies the number of gossip attestations in a signature verification batch. Higher values may reduce CPU
            usage in a healthy network whilst lower values may increase CPU usage in an unhealthy or hostile network.
            [default: 64]
        --beacon-processor-max-workers <INTEGER>
            Specifies the maximum concurrent tasks for the task scheduler. Increasing this value may increase resource
            consumption. Reducing the value may result in decreased resource usage and diminished performance. The
            default value is the number of logical CPU cores on the host.
        --beacon-processor-reprocess-queue-len <INTEGER>
            Specifies the length of the queue for messages requiring delayed processing. Higher values may prevent
            messages from being dropped while lower values may help protect the node from becoming overwhelmed.
            [default: 12288]
        --beacon-processor-work-queue-len <INTEGER>
            Specifies the length of the inbound event queue. Higher values may prevent messages from being dropped while
            lower values may help protect the node from becoming overwhelmed. [default: 16384]
        --blob-prune-margin-epochs <EPOCHS>
            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 <DIR>
            Data directory for the blobs database.

        --block-cache-size <SIZE>
            Specifies how many blocks the database should cache in memory [default: 5]

        --boot-nodes <ENR/MULTIADDR LIST>
            One or more comma-delimited base64-encoded ENR's to bootstrap the p2p network. Multiaddr is also supported.

        --builder <builder>
            The URL of a service compatible with the MEV-boost API.

        --builder-fallback-epochs-since-finalization <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]
        --builder-fallback-skips <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]
        --builder-fallback-skips-per-epoch <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]
        --builder-profit-threshold <WEI_VALUE>
            This flag is deprecated and has no effect.

        --builder-user-agent <STRING>
            The HTTP user agent to send alongside requests to the builder URL. The default is Lighthouse's version
            string.
        --checkpoint-block <BLOCK_SSZ>
            Set a checkpoint block to start syncing from. Must be aligned and match --checkpoint-state. Using
            --checkpoint-sync-url instead is recommended.
        --checkpoint-state <STATE_SSZ>
            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 <BEACON_NODE>
            Set the remote beacon node HTTP endpoint to use for checkpoint sync.

        --checkpoint-sync-url-timeout <SECONDS>
            Set the timeout for checkpoint sync calls to remote beacon node HTTP endpoint. [default: 180]

    -d, --datadir <DIR>
            Used to specify a custom root data directory for lighthouse keys and databases. Defaults to
            $HOME/.lighthouse/{network} where network is the value of the `network` flag Note: Users should specify
            separate custom datadirs for different networks.
        --debug-level <LEVEL>
            Specifies the verbosity level used when emitting logs to the terminal. [default: info]  [possible values:
            info, debug, trace, warn, error, crit]
        --discovery-port <PORT>
            The UDP port that discovery will listen on. Defaults to `port`

        --discovery-port6 <PORT>
            The UDP port that discovery will listen on over IPv6 if listening over both IPv4 and IPv6. Defaults to
            `port6`
        --enr-address <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 <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.
        --enr-quic6-port <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.
        --enr-tcp-port <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.
        --enr-tcp6-port <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.
        --enr-udp-port <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.
        --enr-udp6-port <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.
        --epochs-per-blob-prune <EPOCHS>
            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 <N>
            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 <BLOCKS>
            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 <BLOCKS>
            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 <EXECUTION-ENDPOINT>
            Server endpoint for an execution layer JWT-authenticated HTTP JSON-RPC connection. Uses the same endpoint to
            populate the deposit cache.
        --execution-jwt <EXECUTION-JWT>
            File path which contains the hex-encoded JWT secret for the execution endpoint provided in the --execution-
            endpoint flag.
        --execution-jwt-id <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
        --execution-jwt-secret-key <EXECUTION-JWT-SECRET-KEY>
            Hex-encoded JWT secret for the execution endpoint provided in the --execution-endpoint flag.

        --execution-jwt-version <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
        --execution-timeout-multiplier <NUM>
            Unsigned integer to multiply the default execution timeouts by. [default: 1]

        --fork-choice-before-proposal-timeout <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]
        --freezer-dir <DIR>
            Data directory for the freezer database.

        --genesis-state-url <URL>
            A URL of a beacon-API compatible server from which to download the genesis state. Checkpoint sync server
            URLs can generally be used with this flag. If not supplied, a default URL or the --checkpoint-sync-url may
            be used. If the genesis state is already included in this binary then this value will be ignored.
        --genesis-state-url-timeout <SECONDS>
            The timeout in seconds for the request to --genesis-state-url. [default: 180]

        --graffiti <GRAFFITI>
            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 <SIZE>
            Specifies how many states from the freezer database should cache in memory [default: 1]

        --http-address <ADDRESS>
            Set the listen address for the RESTful HTTP API server.

        --http-allow-origin <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).
        --http-duplicate-block-status <STATUS_CODE>
            Status code to send when a block that is already known is POSTed to the HTTP API.

        --http-enable-beacon-processor <BOOLEAN>
            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 <PORT>
            Set the listen TCP port for the RESTful HTTP API server.

        --http-spec-fork <FORK>
            Serve the spec for a specific hard fork on /eth/v1/config/spec. It should not be necessary to set this flag.

        --http-sse-capacity-multiplier <N>
            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 <http-tls-cert>
            The path of the certificate to be used when serving the HTTP API server over TLS.

        --http-tls-key <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.
        --invalid-gossip-verified-blocks-path <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.
        --libp2p-addresses <MULTIADDR>
            One or more comma-delimited multiaddrs to manually connect to a libp2p peer without an ENR.

        --listen-address <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.
            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]
        --log-format <FORMAT>
            Specifies the log format used when emitting logs to the terminal. [possible values: JSON]

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

        --logfile-max-number <COUNT>
            The maximum number of log files that will be stored. If set to 0, background file logging is disabled.
            [default: 5]
        --logfile-max-size <SIZE>
            The maximum size (in MB) each log file can grow to before rotating. If set to 0, background file logging is
            disabled. [default: 200]
        --max-skip-slots <NUM_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.
        --metrics-address <ADDRESS>
            Set the listen address for the Prometheus metrics HTTP server.

        --metrics-allow-origin <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).
        --metrics-port <PORT>
            Set the listen TCP port for the Prometheus metrics HTTP server.

        --monitoring-endpoint <ADDRESS>
            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 <SECONDS>
            Defines how many seconds to wait between each message sent to the monitoring-endpoint. Default: 60s

        --network <network>
            Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis,
            chiado, sepolia, holesky]
        --network-dir <DIR>
            Data directory for network keys. Defaults to network/ inside the beacon node dir.

        --port <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]
        --port6 <PORT>
            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 <MILLISECONDS>
            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 <MODE>
            Control the progressive balances cache mode. The default `fast` mode uses the cache to speed up fork choice.
            A more conservative `checked` mode compares the cache's results against results without the cache. If there
            is a mismatch, it falls back to the cache-free result. Using the default `fast` mode is recommended unless
            advised otherwise by the Lighthouse team. [possible values: disabled, checked, strict, fast]
        --proposer-reorg-cutoff <MILLISECONDS>
            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 <N1,N2,...>
            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 <EPOCHS>
            Maximum number of epochs since finalization at which proposer reorgs are allowed. Default: 2

        --proposer-reorg-threshold <PERCENT>
            Percentage of vote weight below which to attempt a proposer reorg. Default: 20%

        --prune-blobs <BOOLEAN>
            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-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]
        --quic-port <PORT>
            The UDP port that quic will listen on. Defaults to `port` + 1

        --quic-port6 <PORT>
            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 <INTEGER>
            Used to coordinate manual overrides of the SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY parameter. This flag should
            only be used if the user has a clear understanding that the broad Ethereum community has elected to override
            this parameter in the event of an attack at the PoS transition block. Incorrect use of this flag can cause
            your node to possibly accept an invalid chain or sync more slowly. Be extremely careful with this flag.
        --shuffling-cache-size <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.
        --slasher-att-cache-size <COUNT>
            Set the maximum number of attestation roots for the slasher to cache

        --slasher-backend <DATABASE>
            Set the database backend to be used by the slasher. [possible values: lmdb, disabled]

        --slasher-broadcast <slasher-broadcast>
            Broadcast slashings found by the slasher to the rest of the network [Enabled by default]. [default: true]

        --slasher-chunk-size <EPOCHS>
            Number of epochs per validator per chunk stored on disk.

        --slasher-dir <PATH>
            Set the slasher's database directory.

        --slasher-history-length <EPOCHS>
            Configure how many epochs of history the slasher keeps. Immutable after initialization.

        --slasher-max-db-size <GIGABYTES>
            Maximum size of the MDBX database used by the slasher.

        --slasher-slot-offset <SECONDS>
            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 <SECONDS>
            Configure how often the slasher runs batch processing.

        --slasher-validator-chunk-size <NUM_VALIDATORS>
            Number of validators per chunk stored on disk.

        --slots-per-restore-point <SLOT_COUNT>
            Specifies how often a freezer DB restore point should be stored. Cannot be changed after initialization.
            [default: 8192 (mainnet) or 64 (minimal)]
        --suggested-fee-recipient <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.
        --target-peers <target-peers>
            The target number of peers.

        --terminal-block-hash-epoch-override <EPOCH>
            Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH parameter. This flag should
            only be used if the user has a clear understanding that the broad Ethereum community has elected to override
            the terminal PoW block. Incorrect use of this flag will cause your node to experience a consensus failure.
            Be extremely careful with this flag.
        --terminal-block-hash-override <TERMINAL_BLOCK_HASH>
            Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH parameter. This flag should only be used if
            the user has a clear understanding that the broad Ethereum community has elected to override the terminal
            PoW block. Incorrect use of this flag will cause your node to experience a consensus failure. Be extremely
            careful with this flag.
        --terminal-total-difficulty-override <INTEGER>
            Used to coordinate manual overrides to the TERMINAL_TOTAL_DIFFICULTY parameter. Accepts a 256-bit decimal
            integer (not a hex value). This flag should only be used if the user has a clear understanding that the
            broad Ethereum community has elected to override the terminal difficulty. Incorrect use of this flag will
            cause your node to experience a consensus failure. Be extremely careful with this flag.
    -t, --testnet-dir <DIR>
            Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective
            if there is no existing database.
        --trusted-peers <TRUSTED_PEERS>
            One or more comma-delimited trusted peer ids which always have the highest score according to the peer
            scoring system.
        --trusted-setup-file-override <FILE>
            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 <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 <INTEGER>
            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 <PUBKEYS>
            A comma-separated list of 0x-prefixed validator public keys. These validators will receive special
            monitoring and additional logging.
        --wss-checkpoint <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.