Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

beacon-chain: Reorganize flags in help text #14959

Open
wants to merge 14 commits into
base: develop
Choose a base branch
from

Conversation

prestonvanloon
Copy link
Member

@prestonvanloon prestonvanloon commented Feb 19, 2025

What type of PR is this?

Other

What does this PR do? Why is it needed?

The beacon-chain flags are all over the place in the current release.

The gist of this reorganization follows this loosely defined design:

In the beacon chain, we have the following categories

- cmd 
	- Flags that are relevant to the running of Prysm itself.
- debug
	- Flags that are only relevant for debugging the process
- beacon-chain
	- Flags that are relevant to configuring the beacon chain
- merge
	- Flags that are relevant to configuring the merge
	- Can this be deleted? 
- p2p
	- Flags that are relevant to configuring p2p 
- log
	- Flags that are relevant to logging
- features
	- Flags that are experimental new features

Some of these can be split up into more logical categories and the flags can be better organized. Some flags are obviously misplaced.

New categories:
- builder
	- All flags that are appropriate to configuring an external builder
- sync
	- All flags that are relevant to syncing
- slasher
	- Flags relevant to slasher
- execution layer
	- Flags relevant to execution layer
- network 
	- All flags relevant to configuring the network
- db 
	- All flags relevant to configuring the db
- monitoring
	- All flags relevant to monitoring

The document above does not explain any ordering of the sections. I just ordered them in a way that made sense to me and feedback is welcome.

Important

Almost all of the changes are in the usage.go file for the beacon chain. However, there is one important change to review where the --slasher flag was removed from the feature flag set as it's a permanent feature and should be in the "slasher" section.

v5.3.0 `--help` text
NAME:
   beacon-chain - this is a beacon chain implementation for Ethereum
USAGE:
   beacon-chain [options] command [command options] [arguments...]
   
AUTHOR:
   
   
GLOBAL OPTIONS:
   db                    Defines commands for interacting with the Ethereum Beacon Node database
   generate-auth-secret  creates a random, 32 byte hex string in a plaintext file to be used for authenticating JSON-RPC requests. If no --output-file flag is defined, the file will be created in the current working directory
   help, h               Shows a list of commands or help for one command
   
cmd OPTIONS:
   --accept-terms-of-use                                Accepts Terms and Conditions (for non-interactive environments). (default: false)
   --api-timeout value                                  Specifies the timeout value for API requests in seconds. (default: 10s)
   --bootstrap-node value [ --bootstrap-node value ]    The address of bootstrap node. Beacon node will connect for peer discovery via DHT.  Multiple nodes can be passed by using the flag multiple times but not comma-separated. You can also pass YAML files containing multiple nodes. (default: "enr:-KG4QNTx85fjxABbSq_Rta9wy56nQ1fHK0PewJbGjLm1M4bMGx5-3Qq4ZX2-iFJ0pys_O90sVXNNOxp2E7afBsGsBrgDhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQEnfA2iXNlY3AyNTZrMaECGXWQ-rQ2KZKRH1aOW4IlPDBkY4XDphxg9pxKytFCkayDdGNwgiMog3VkcIIjKA", "enr:-KG4QF4B5WrlFcRhUU6dZETwY5ZzAXnA0vGC__L1Kdw602nDZwXSTs5RFXFIFUnbQJmhNGVU6OIX7KVrCSTODsz1tK4DhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQExNYEiXNlY3AyNTZrMaECQmM9vp7KhaXhI-nqL_R0ovULLCFSFTa9CPPSdb1zPX6DdGNwgiMog3VkcIIjKA", "enr:-Ku4QImhMc1z8yCiNJ1TyUxdcfNucje3BGwEHzodEZUan8PherEo4sF7pPHPSIB1NNuSg5fZy7qFsjmUKs2ea1Whi0EBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQOVphkDqal4QzPMksc5wnpuC3gvSC8AfbFOnZY_On34wIN1ZHCCIyg", "enr:-Ku4QP2xDnEtUXIjzJ_DhlCRN9SN99RYQPJL92TMlSv7U5C1YnYLjwOQHgZIUXw6c-BvRg2Yc2QsZxxoS_pPRVe0yK8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMeFF5GrS7UZpAH2Ly84aLK-TyvH-dRo0JM1i8yygH50YN1ZHCCJxA", "enr:-Ku4QPp9z1W4tAO8Ber_NQierYaOStqhDqQdOPY3bB3jDgkjcbk6YrEnVYIiCBbTxuar3CzS528d2iE7TdJsrL-dEKoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMw5fqqkw2hHC4F5HZZDPsNmPdB1Gi8JPQK7pRc9XHh-oN1ZHCCKvg", "enr:-Jq4QItoFUuug_n_qbYbU0OY04-np2wT8rUCauOOXNi0H3BWbDj-zbfZb7otA7jZ6flbBpx1LNZK2TDebZ9dEKx84LYBhGV0aDKQtTA_KgEAAAD__________4JpZIJ2NIJpcISsaa0ZiXNlY3AyNTZrMaEDHAD2JKYevx89W0CcFJFiskdcEzkH_Wdv9iW42qLK79ODdWRwgiMo", "enr:-Jq4QN_YBsUOqQsty1OGvYv48PMaiEt1AzGD1NkYQHaxZoTyVGqMYXg0K9c0LPNWC9pkXmggApp8nygYLsQwScwAgfgBhGV0aDKQtTA_KgEAAAD__________4JpZIJ2NIJpcISLosQxiXNlY3AyNTZrMaEDBJj7_dLFACaxBfaI8KZTh_SSJUjhyAyfshimvSqo22WDdWRwgiMo", "enr:-Ku4QHqVeJ8PPICcWk1vSn_XcSkjOkNiTg6Fmii5j6vUQgvzMc9L1goFnLKgXqBJspJjIsB91LTOleFmyWWrFVATGngBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAMRHkWJc2VjcDI1NmsxoQKLVXFOhp2uX6jeT0DvvDpPcU8FWMjQdR4wMuORMhpX24N1ZHCCIyg", "enr:-Ku4QG-2_Md3sZIAUebGYT6g0SMskIml77l6yR-M_JXc-UdNHCmHQeOiMLbylPejyJsdAPsTHJyjJB2sYGDLe0dn8uYBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhBLY-NyJc2VjcDI1NmsxoQORcM6e19T1T9gi7jxEZjk_sjVLGFscUNqAY9obgZaxbIN1ZHCCIyg", "enr:-Ku4QPn5eVhcoF1opaFEvg1b6JNFD2rqVkHQ8HApOKK61OIcIXD127bKWgAtbwI7pnxx6cDyk_nI88TrZKQaGMZj0q0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDayLMaJc2VjcDI1NmsxoQK2sBOLGcUb4AwuYzFuAVCaNHA-dy24UuEKkeFNgCVCsIN1ZHCCIyg", "enr:-Ku4QEWzdnVtXc2Q0ZVigfCGggOVB2Vc1ZCPEc6j21NIFLODSJbvNaef1g4PxhPwl_3kax86YPheFUSLXPRs98vvYsoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDZBrP2Jc2VjcDI1NmsxoQM6jr8Rb1ktLEsVcKAPa08wCsKUmvoQ8khiOl_SLozf9IN1ZHCCIyg", "enr:-LK4QA8FfhaAjlb_BXsXxSfiysR7R52Nhi9JBt4F8SPssu8hdE1BXQQEtVDC3qStCW60LSO7hEsVHv5zm8_6Vnjhcn0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAN4aBKJc2VjcDI1NmsxoQJerDhsJ-KxZ8sHySMOCmTO6sHM3iCFQ6VMvLTe948MyYN0Y3CCI4yDdWRwgiOM", "enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM")
   --chain-config-file value                            Path to a YAML file with chain config values.
   --clear-db                                           Prompt for clearing any previously stored data at the data directory. (default: false)
   --config-file value                                  Filepath to a yaml file with flag values.
   --datadir value                                      Data directory for the databases. (default: "/home/preston/.eth2")
   --disable-monitoring                                 Disables monitoring service. (default: false)
   --e2e-config                                         Enables the E2E testing config, only for use within end-to-end testing. (default: false)
   --enable-tracing                                     Enables request tracing. (default: false)
   --force-clear-db                                     Clears any previously stored data at the data directory. (default: false)
   --grpc-max-msg-size value                            Integer to define max receive message call size (in bytes).
                                                          If serving a public gRPC server, set this to a more reasonable size to avoid
                                                          resource exhaustion from large messages. 
                                                          Validators with as many as 10000 keys can be run with a max message size of less than 
                                                          50Mb. The default here is set to a very high value for local users. (default: 2147483647)
   --max-goroutines value                               Specifies the upper limit of goroutines running before a status check fails (default: 5000)
   --minimal-config                                     Uses minimal config with parameters as defined in the spec. (default: false)
   --monitor-indices value [ --monitor-indices value ]  List of validator indices to track performance
   --monitoring-host value                              Host used for listening and responding metrics for prometheus. (default: "127.0.0.1")
   --monitoring-port value                              Port used to listening and respond metrics for Prometheus. (default: 8080)
   --no-discovery                                       Enable only local network p2p and do not connect to cloud bootstrap nodes (default: false)
   --p2p-quic-port value                                The QUIC port used by libp2p. (default: 13000)
   --p2p-tcp-port value                                 The TCP port used by libp2p. (default: 13000)
   --p2p-udp-port value                                 The UDP port used by the discovery service discv5. (default: 12000)
   --relay-node value                                   The address of relay node. The beacon node will connect to the relay node and advertise their address via the relay node to other peers
   --restore-source-file value                          Filepath to the backed-up database file which will be used to restore the database
   --restore-target-dir value                           Target directory of the restored database (default: "/home/preston/.eth2")
   --rpc-max-page-size value                            Max number of items returned per page in RPC responses for paginated endpoints. (default: 0)
   --trace-sample-fraction value                        Indicates what fraction of p2p messages are sampled for tracing. (default: 0.2)
   --tracing-endpoint value                             Tracing endpoint defines where beacon chain traces are exposed to Jaeger. (default: "http://127.0.0.1:14268/api/traces")
   --tracing-process-name process_name                  Name to apply to tracing tag process_name.
   --verbosity value                                    Logging verbosity. (trace, debug, info, warn, error, fatal, panic) (default: "info")
   
debug OPTIONS:
   --blockprofilerate value      Turns on block profiling with the given rate. (default: 0)
   --cpuprofile value            Writes CPU profile to the given file.
   --memprofilerate value        Turns on memory profiling with the given rate. (default: 524288)
   --mutexprofilefraction value  Turns on mutex profiling with the given rate. (default: 0)
   --pprof                       Enables the pprof HTTP server. (default: false)
   --pprofaddr value             pprof HTTP server listening interface. (default: "127.0.0.1")
   --pprofport value             pprof HTTP server listening port. (default: 6060)
   --trace value                 Writes execution trace to the given file.
   
beacon-chain OPTIONS:
   --backfill-batch-size value                                         Number of blocks per backfill batch. A larger number will request more blocks at once from peers, but also consume more system memory to hold batches in memory during processing. This has a multiplicative effect with backfill-worker-count. (default: 32)
   --backfill-oldest-slot value                                        Specifies the oldest slot that backfill should download. If this value is greater than current_slot - MIN_EPOCHS_FOR_BLOCK_REQUESTS, it will be ignored with a warning log. (default: 0)
   --backfill-worker-count value                                       Number of concurrent backfill batch requests. A larger number will better utilize network resources, up to a system-dependent limit, but will also consume more system memory to hold batches in memory during processing. Multiply by backfill-batch-size and average block size (~2MB before deneb) to find the right number for your system. This has a multiplicative effect with backfill-batch-size. (default: 2)
   --beacon-db-pruning                                                 Enables pruning of beacon db beyond MIN_EPOCHS_FOR_BLOCK_REQUESTS duration. This is an opt-in feature, and should only be enabled if operators doesn't require historical data. (default: false)
   --blob-batch-limit value                                            The amount of blobs the local peer is bounded to request and respond to in a batch. (default: 192)
   --blob-batch-limit-burst-factor value                               The factor by which blob batch limit may increase on burst. (default: 3)
   --blob-path value                                                   Location for blob storage. Default location will be a 'blobs' directory next to the beacon db.
   --blob-retention-epochs value, --extend-blob-retention-epoch value  Override the default blob retention period (measured in epochs). The node will exit with an error at startup if the value is less than the default of 4096 epochs. (default: 4096)
   --blob-storage-layout value                                         Dictates how to organize the blob directory structure on disk, available options are: flat, by-epoch. (default: "flat")
   --block-batch-limit value                                           The amount of blocks the local peer is bounded to request and respond to in a batch. Maximum 128 (default: 64)
   --block-batch-limit-burst-factor value                              The factor by which block batch limit may increase on burst. (default: 2)
   --chain-id value                                                    Sets the chain id of the beacon chain (default: 0)
   --checkpoint-block value                                            Rather than syncing from genesis, you can start processing from a ssz-serialized BeaconState+Block. This flag allows you to specify a local file containing the checkpoint Block to load.
   --checkpoint-state value                                            Rather than syncing from genesis, you can start processing from a ssz-serialized BeaconState+Block. This flag allows you to specify a local file containing the checkpoint BeaconState to load.
   --checkpoint-sync-url value                                         URL of a synced beacon node to trust in obtaining checkpoint sync data. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag
   --contract-deployment-block value                                   The eth1 block in which the deposit contract was deployed. (default: 11184524)
   --deposit-contract value                                            Deposit contract address. Beacon chain node will listen logs coming from the deposit contract to determine when validator is eligible to participate. (default: "0x00000000219ab540356cBB839Cbe05303d7705Fa")
   --disable-debug-rpc-endpoints                                       Disables the debug Beacon API namespace. (default: false)
   --enable-experimental-backfill                                      Backfill is still experimental at this time. It will only be enabled if this flag is specified and the node was started using checkpoint sync. (default: false)
   --engine-endpoint-timeout-seconds value                             Sets the execution engine timeout (seconds) for execution payload semantics (forkchoiceUpdated, newPayload) (default: 0)
   --eth1-header-req-limit value                                       Sets the maximum number of headers that a deposit log query can fetch. (default: 1000)
   --execution-endpoint value                                          An execution client http endpoint. Can contain auth header as well in the format (default: "http://localhost:8551")
   --execution-headers value                                           A comma separated list of key value pairs to pass as HTTP headers for all execution client calls. Example: --execution-headers=key1=value1,key2=value2
   --gc-percent value                                                  The percentage of freshly allocated data to live data on which the gc will be run again. (default: 100)
   --genesis-beacon-api-url value                                      URL of a synced beacon node to trust for obtaining genesis state. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag
   --genesis-state value                                               Load a genesis state from ssz file. Testnet genesis files can be found in the eth2-clients/eth2-testnets repository on github.
   --historical-slasher-node                                           Enables required flags for serving historical data to a slasher client. Results in additional storage usage (default: false)
   --http-cors-domain value, --grpc-gateway-corsdomain value           Comma separated list of domains from which to accept cross origin requests. (default: "http://localhost:3000, http://0.0.0.0:3000, http://127.0.0.1:3000, http://localhost:4200, http://127.0.0.1:4200, http://0.0.0.0:4200, http://localhost:7500, http://127.0.0.1:7500, http://0.0.0.0:7500")
   --http-host value, --grpc-gateway-host value                        Host on which the HTTP server runs on. (default: "127.0.0.1")
   --http-mev-relay value                                              A MEV builder relay string http endpoint, this will be used to interact MEV builder network using API defined in: https://ethereum.github.io/builder-specs/#/Builder
   --http-modules prysm,eth                                            Comma-separated list of API module names. Possible values: prysm,eth. (default: "prysm,eth")
   --http-port value, --grpc-gateway-port value                        Port on which the HTTP server runs on. (default: 3500)
   --interop-eth1data-votes                                            Enable mocking of eth1 data votes for proposers to package into blocks (default: false)
   --jwt-id value                                                      JWT claims id. Could be used to identify the client
   --jwt-secret value                                                  REQUIRED if connecting to an execution node via HTTP. Provides a path to a file containing a hex-encoded string representing a 32 byte secret used for authentication with an execution node via HTTP. If this is not set, all requests to execution nodes via HTTP for consensus-related calls will fail, which will prevent your validators from performing their duties. This is not required if using an IPC connection.
   --local-block-value-boost value                                     A percentage boost for local block construction as a Uint64. This is used to prioritize local block construction over relay/builder block constructionBoost is an additional percentage to multiple local block value. Use builder block if: builder_bid_value * 100 > local_block_value * (local-block-value-boost + 100) (default: 10)
   --max-builder-consecutive-missed-slots value                        Number of consecutive skip slot to fallback from using relay/builder to local execution engine for block construction (default: 3)
   --max-builder-epoch-missed-slots value                              Number of total skip slot to fallback from using relay/builder to local execution engine for block construction in last epoch rolling window. The values are on the basis of the networks and the default value for mainnet is 5. (default: 0)
   --max-concurrent-dials value                                        Sets the maximum number of peers that a node will attempt to dial with from discovery. By default we will dials as many peers as possible. (default: 0)
   --min-builder-bid value                                             An absolute value in Gwei that the builder bid has to have in order for this beacon node to use the builder's block. Anything less than this value and the beacon will revert to local building. (default: 0)
   --min-builder-to-local-difference value                             An absolute value in Gwei that the builder bid has to have in order for this beacon node to use the builder's block. Anything less than this value and the beacon will revert to local building. (default: 0)
   --minimum-peers-per-subnet value                                    Sets the minimum number of peers that a node will attempt to peer with that are subscribed to a subnet. (default: 6)
   --network-id value                                                  Sets the network id of the beacon chain. (default: 0)
   --pruner-retention-epochs value                                     Specifies the retention period for the pruner service in terms of epochs. If this value is less than MIN_EPOCHS_FOR_BLOCK_REQUESTS, it will be ignored. (default: 0)
   --rpc-host value                                                    Host on which the RPC server should listen (default: "127.0.0.1")
   --rpc-port value                                                    RPC port exposed by a beacon node (default: 4000)
   --slasher-datadir value                                             Directory for the slasher database (default: "/home/preston/.eth2")
   --slots-per-archive-point value                                     The slot durations of when an archived state gets saved in the beaconDB. (default: 2048)
   --subscribe-all-subnets                                             Subscribe to all possible attestation and sync subnets. (default: false)
   --tls-cert value                                                    Certificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
   --tls-key value                                                     Key for secure gRPC. Pass this and the tls-cert flag in order to use gRPC securely.
   --weak-subjectivity-checkpoint block_root:epoch_number              Input in block_root:epoch_number format. This guarantees that syncing leads to the given Weak Subjectivity Checkpoint along the canonical chain. If such a sync is not possible, the node will treat it as a critical and irrecoverable failure
   
merge OPTIONS:
   --suggested-fee-recipient value             Post bellatrix, this address will receive the transaction fees produced by any blocks from this node. Default to junk whilst bellatrix is in development state. Validator client can override this value through the preparebeaconproposer api. (default: "0x0000000000000000000000000000000000000000")
   --terminal-block-hash-epoch-override value  Sets the block hash epoch to manual overrides the default TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal block hash activation epoch. Incorrect usage will result in your node experience consensus failure. (default: 0)
   --terminal-block-hash-override value        Sets the block hash to manual overrides the default TERMINAL_BLOCK_HASH value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal block hash. Incorrect usage will result in your node experience consensus failure.
   --terminal-total-difficulty-override value  Sets the total difficulty to manual overrides the default TERMINAL_TOTAL_DIFFICULTY value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal difficulty. Incorrect usage will result in your node experience consensus failure.
   
p2p OPTIONS:
   --enable-upnp                                  Enable the service (Beacon chain or Validator) to use UPnP when possible. (default: false)
   --min-sync-peers value                         The required number of valid peers to connect with before syncing. (default: 3)
   --p2p-allowlist value                          The CIDR subnet for allowing only certain peer connections. Using "public" would allow only public subnets. Example: 192.168.0.0/16 would permit connections to peers on your local network only. The default is to accept all connections.
   --p2p-denylist value [ --p2p-denylist value ]  The CIDR subnets for denying certainty peer connections. Using "private" would deny all private subnets. Example: 192.168.0.0/16 would deny connections from peers on your local network only. The default is to accept all connections.
   --p2p-host-dns value                           The DNS address advertised by libp2p. This may be used to advertise an external DNS.
   --p2p-host-ip value                            The IP address advertised by libp2p. This may be used to advertise an external IP.
   --p2p-local-ip value                           The local ip address to listen for incoming data.
   --p2p-max-peers value                          The max number of p2p peers to maintain. (default: 70)
   --p2p-metadata value                           The file containing the metadata to communicate with other peers.
   --p2p-priv-key value                           The file containing the private key to use in communications with other peers.
   --p2p-static-id                                Enables the peer id of the node to be fixed by saving the generated network key to the default key path. (default: false)
   --peer value [ --peer value ]                  Connect with this peer, this flag may be used multiple times. This peer is recognized as a trusted peer.
   --pubsub-queue-size value                      The size of the pubsub validation and outbound queue for the node. (default: 1000)
   
log OPTIONS:
   --log-file value    Specifies log file name, relative or absolute.
   --log-format value  Specifies log formatting. Supports: text, json, fluentd, journald. (default: "text")
   
features OPTIONS:
   --blob-save-fsync                         Forces new blob files to be fysnc'd before continuing, ensuring durable blob writes. (default: false)
   --dev                                     Enables experimental features still in development. These features may not be stable. (default: false)
   --disable-broadcast-slashings             Disables broadcasting slashings submitted to the beacon node. (default: false)
   --disable-committee-aware-packing         Changes the attestation packing algorithm to one that is not aware of attesting committees. (default: false)
   --disable-experimental-state              Turns off the latest and greatest changes to the beacon state. Disabling this is safe to do after the feature has been enabled. (default: false)
   --disable-grpc-connection-logging         Disables displaying logs for newly connected grpc clients. (default: false)
   --disable-peer-scorer                     (Danger): Disables P2P peer scorer. Do NOT use this in production! (default: false)
   --disable-quic                            Disables connecting using the QUIC protocol with peers. (default: false)
   --disable-registration-cache              Temporary flag for disabling the validator registration cache instead of using the DB. Note: registrations do not clear on restart while using the DB. (default: false)
   --disable-resource-manager                Disables running the libp2p resource manager. (default: false)
   --disable-staking-contract-check          Disables checking of staking contract deposits when proposing blocks, useful for devnets. (default: false)
   --disable-verbose-sig-verification        Disables identifying invalid signatures if batch verification fails when processing block. (default: false)
   --enable-discovery-reboot                 Experimental: Enables the discovery listener to rebooted in the event of connectivity issues. (default: false)
   --enable-experimental-attestation-pool    Enables an experimental attestation pool design. (default: false)
   --enable-full-ssz-data-logging            Enables displaying logs for full ssz data on rejected gossip messages. (default: false)
   --enable-historical-state-representation  Enables the beacon chain to save historical states in a space efficient manner. (Warning): Once enabled, this feature migrates your database in to a new schema and there is no going back. At worst, your entire database might get corrupted. (default: false)
   --enable-light-client                     Enables the light client support in the beacon node (default: false)
   --holesky                                 Runs Prysm configured for the Holesky test network. (default: false)
   --interop-write-ssz-state-transitions     Writes SSZ states to disk after attempted state transitio. (default: false)
   --mainnet                                 Runs on Ethereum main network. This is the default and can be omitted. (default: true)
   --prepare-all-payloads                    Informs the engine to prepare all local payloads. Useful for relayers and builders. (default: false)
   --save-full-execution-payloads            Saves beacon blocks with full execution payloads instead of execution payload headers in the database. (default: false)
   --save-invalid-blob-temp                  Writes invalid blobs to temp directory. (default: false)
   --save-invalid-block-temp                 Writes invalid blocks to temp directory. (default: false)
   --sepolia                                 Runs Prysm configured for the Sepolia test network. (default: false)
   --slasher                                 Enables a slasher in the beacon node for detecting slashable offenses. (default: false)
   
deprecated OPTIONS:
   --db-backup-output-dir value  Output directory for db backups.
This PR `--help` text
NAME:
   beacon-chain - this is a beacon chain implementation for Ethereum
USAGE:
   beacon-chain [options] command [command options] [arguments...]
   
AUTHOR:
   
   
GLOBAL OPTIONS:
   db                    Defines commands for interacting with the Ethereum Beacon Node database
   generate-auth-secret  creates a random, 32 byte hex string in a plaintext file to be used for authenticating JSON-RPC requests. If no --output-file flag is defined, the file will be created in the current working directory
   help, h               Shows a list of commands or help for one command
   
cmd OPTIONS:
   --accept-terms-of-use  Accepts Terms and Conditions (for non-interactive environments). (default: false)
   --config-file value    Filepath to a yaml file with flag values.
   
beacon-chain OPTIONS:
   --api-timeout value                                        Specifies the timeout value for API requests in seconds. (default: 10s)
   --chain-config-file value                                  Path to a YAML file with chain config values.
   --chain-id value                                           Sets the chain id of the beacon chain (default: 0)
   --disable-debug-rpc-endpoints                              Disables the debug Beacon API namespace. (default: false)
   --e2e-config                                               Enables the E2E testing config, only for use within end-to-end testing. (default: false)
   --grpc-max-msg-size value                                  Integer to define max receive message call size (in bytes).
                                                                If serving a public gRPC server, set this to a more reasonable size to avoid
                                                                resource exhaustion from large messages. 
                                                                Validators with as many as 10000 keys can be run with a max message size of less than 
                                                                50Mb. The default here is set to a very high value for local users. (default: 2147483647)
   --http-cors-domain value, --grpc-gateway-corsdomain value  Comma separated list of domains from which to accept cross origin requests. (default: "http://localhost:3000, http://0.0.0.0:3000, http://127.0.0.1:3000, http://localhost:4200, http://127.0.0.1:4200, http://0.0.0.0:4200, http://localhost:7500, http://127.0.0.1:7500, http://0.0.0.0:7500")
   --http-host value, --grpc-gateway-host value               Host on which the HTTP server runs on. (default: "127.0.0.1")
   --http-modules prysm,eth                                   Comma-separated list of API module names. Possible values: prysm,eth. (default: "prysm,eth")
   --http-port value, --grpc-gateway-port value               Port on which the HTTP server runs on. (default: 3500)
   --max-goroutines value                                     Specifies the upper limit of goroutines running before a status check fails (default: 5000)
   --minimal-config                                           Uses minimal config with parameters as defined in the spec. (default: false)
   --network-id value                                         Sets the network id of the beacon chain. (default: 0)
   --rpc-host value                                           Host on which the RPC server should listen (default: "127.0.0.1")
   --rpc-max-page-size value                                  Max number of items returned per page in RPC responses for paginated endpoints. (default: 0)
   --rpc-port value                                           RPC port exposed by a beacon node (default: 4000)
   --tls-cert value                                           Certificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
   --tls-key value                                            Key for secure gRPC. Pass this and the tls-cert flag in order to use gRPC securely.
   
p2p OPTIONS:
   --blob-batch-limit value                           The amount of blobs the local peer is bounded to request and respond to in a batch. (default: 192)
   --blob-batch-limit-burst-factor value              The factor by which blob batch limit may increase on burst. (default: 3)
   --block-batch-limit value                          The amount of blocks the local peer is bounded to request and respond to in a batch. Maximum 128 (default: 64)
   --block-batch-limit-burst-factor value             The factor by which block batch limit may increase on burst. (default: 2)
   --bootstrap-node value [ --bootstrap-node value ]  The address of bootstrap node. Beacon node will connect for peer discovery via DHT.  Multiple nodes can be passed by using the flag multiple times but not comma-separated. You can also pass YAML files containing multiple nodes. (default: "enr:-KG4QNTx85fjxABbSq_Rta9wy56nQ1fHK0PewJbGjLm1M4bMGx5-3Qq4ZX2-iFJ0pys_O90sVXNNOxp2E7afBsGsBrgDhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQEnfA2iXNlY3AyNTZrMaECGXWQ-rQ2KZKRH1aOW4IlPDBkY4XDphxg9pxKytFCkayDdGNwgiMog3VkcIIjKA", "enr:-KG4QF4B5WrlFcRhUU6dZETwY5ZzAXnA0vGC__L1Kdw602nDZwXSTs5RFXFIFUnbQJmhNGVU6OIX7KVrCSTODsz1tK4DhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQExNYEiXNlY3AyNTZrMaECQmM9vp7KhaXhI-nqL_R0ovULLCFSFTa9CPPSdb1zPX6DdGNwgiMog3VkcIIjKA", "enr:-Ku4QImhMc1z8yCiNJ1TyUxdcfNucje3BGwEHzodEZUan8PherEo4sF7pPHPSIB1NNuSg5fZy7qFsjmUKs2ea1Whi0EBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQOVphkDqal4QzPMksc5wnpuC3gvSC8AfbFOnZY_On34wIN1ZHCCIyg", "enr:-Ku4QP2xDnEtUXIjzJ_DhlCRN9SN99RYQPJL92TMlSv7U5C1YnYLjwOQHgZIUXw6c-BvRg2Yc2QsZxxoS_pPRVe0yK8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMeFF5GrS7UZpAH2Ly84aLK-TyvH-dRo0JM1i8yygH50YN1ZHCCJxA", "enr:-Ku4QPp9z1W4tAO8Ber_NQierYaOStqhDqQdOPY3bB3jDgkjcbk6YrEnVYIiCBbTxuar3CzS528d2iE7TdJsrL-dEKoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMw5fqqkw2hHC4F5HZZDPsNmPdB1Gi8JPQK7pRc9XHh-oN1ZHCCKvg", "enr:-Jq4QItoFUuug_n_qbYbU0OY04-np2wT8rUCauOOXNi0H3BWbDj-zbfZb7otA7jZ6flbBpx1LNZK2TDebZ9dEKx84LYBhGV0aDKQtTA_KgEAAAD__________4JpZIJ2NIJpcISsaa0ZiXNlY3AyNTZrMaEDHAD2JKYevx89W0CcFJFiskdcEzkH_Wdv9iW42qLK79ODdWRwgiMo", "enr:-Jq4QN_YBsUOqQsty1OGvYv48PMaiEt1AzGD1NkYQHaxZoTyVGqMYXg0K9c0LPNWC9pkXmggApp8nygYLsQwScwAgfgBhGV0aDKQtTA_KgEAAAD__________4JpZIJ2NIJpcISLosQxiXNlY3AyNTZrMaEDBJj7_dLFACaxBfaI8KZTh_SSJUjhyAyfshimvSqo22WDdWRwgiMo", "enr:-Ku4QHqVeJ8PPICcWk1vSn_XcSkjOkNiTg6Fmii5j6vUQgvzMc9L1goFnLKgXqBJspJjIsB91LTOleFmyWWrFVATGngBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAMRHkWJc2VjcDI1NmsxoQKLVXFOhp2uX6jeT0DvvDpPcU8FWMjQdR4wMuORMhpX24N1ZHCCIyg", "enr:-Ku4QG-2_Md3sZIAUebGYT6g0SMskIml77l6yR-M_JXc-UdNHCmHQeOiMLbylPejyJsdAPsTHJyjJB2sYGDLe0dn8uYBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhBLY-NyJc2VjcDI1NmsxoQORcM6e19T1T9gi7jxEZjk_sjVLGFscUNqAY9obgZaxbIN1ZHCCIyg", "enr:-Ku4QPn5eVhcoF1opaFEvg1b6JNFD2rqVkHQ8HApOKK61OIcIXD127bKWgAtbwI7pnxx6cDyk_nI88TrZKQaGMZj0q0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDayLMaJc2VjcDI1NmsxoQK2sBOLGcUb4AwuYzFuAVCaNHA-dy24UuEKkeFNgCVCsIN1ZHCCIyg", "enr:-Ku4QEWzdnVtXc2Q0ZVigfCGggOVB2Vc1ZCPEc6j21NIFLODSJbvNaef1g4PxhPwl_3kax86YPheFUSLXPRs98vvYsoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDZBrP2Jc2VjcDI1NmsxoQM6jr8Rb1ktLEsVcKAPa08wCsKUmvoQ8khiOl_SLozf9IN1ZHCCIyg", "enr:-LK4QA8FfhaAjlb_BXsXxSfiysR7R52Nhi9JBt4F8SPssu8hdE1BXQQEtVDC3qStCW60LSO7hEsVHv5zm8_6Vnjhcn0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAN4aBKJc2VjcDI1NmsxoQJerDhsJ-KxZ8sHySMOCmTO6sHM3iCFQ6VMvLTe948MyYN0Y3CCI4yDdWRwgiOM", "enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM")
   --enable-upnp                                      Enable the service (Beacon chain or Validator) to use UPnP when possible. (default: false)
   --max-concurrent-dials value                       Sets the maximum number of peers that a node will attempt to dial with from discovery. By default we will dials as many peers as possible. (default: 0)
   --min-sync-peers value                             The required number of valid peers to connect with before syncing. (default: 3)
   --minimum-peers-per-subnet value                   Sets the minimum number of peers that a node will attempt to peer with that are subscribed to a subnet. (default: 6)
   --no-discovery                                     Enable only local network p2p and do not connect to cloud bootstrap nodes (default: false)
   --p2p-allowlist value                              The CIDR subnet for allowing only certain peer connections. Using "public" would allow only public subnets. Example: 192.168.0.0/16 would permit connections to peers on your local network only. The default is to accept all connections.
   --p2p-denylist value [ --p2p-denylist value ]      The CIDR subnets for denying certainty peer connections. Using "private" would deny all private subnets. Example: 192.168.0.0/16 would deny connections from peers on your local network only. The default is to accept all connections.
   --p2p-host-dns value                               The DNS address advertised by libp2p. This may be used to advertise an external DNS.
   --p2p-host-ip value                                The IP address advertised by libp2p. This may be used to advertise an external IP.
   --p2p-local-ip value                               The local ip address to listen for incoming data.
   --p2p-max-peers value                              The max number of p2p peers to maintain. (default: 70)
   --p2p-metadata value                               The file containing the metadata to communicate with other peers.
   --p2p-priv-key value                               The file containing the private key to use in communications with other peers.
   --p2p-quic-port value                              The QUIC port used by libp2p. (default: 13000)
   --p2p-static-id                                    Enables the peer id of the node to be fixed by saving the generated network key to the default key path. (default: false)
   --p2p-tcp-port value                               The TCP port used by libp2p. (default: 13000)
   --p2p-udp-port value                               The UDP port used by the discovery service discv5. (default: 12000)
   --peer value [ --peer value ]                      Connect with this peer, this flag may be used multiple times. This peer is recognized as a trusted peer.
   --pubsub-queue-size value                          The size of the pubsub validation and outbound queue for the node. (default: 1000)
   --relay-node value                                 The address of relay node. The beacon node will connect to the relay node and advertise their address via the relay node to other peers
   --subscribe-all-subnets                            Subscribe to all possible attestation and sync subnets. (default: false)
   
db OPTIONS:
   --backfill-batch-size value                                         Number of blocks per backfill batch. A larger number will request more blocks at once from peers, but also consume more system memory to hold batches in memory during processing. This has a multiplicative effect with backfill-worker-count. (default: 32)
   --backfill-oldest-slot value                                        Specifies the oldest slot that backfill should download. If this value is greater than current_slot - MIN_EPOCHS_FOR_BLOCK_REQUESTS, it will be ignored with a warning log. (default: 0)
   --backfill-worker-count value                                       Number of concurrent backfill batch requests. A larger number will better utilize network resources, up to a system-dependent limit, but will also consume more system memory to hold batches in memory during processing. Multiply by backfill-batch-size and average block size (~2MB before deneb) to find the right number for your system. This has a multiplicative effect with backfill-batch-size. (default: 2)
   --beacon-db-pruning                                                 Enables pruning of beacon db beyond MIN_EPOCHS_FOR_BLOCK_REQUESTS duration. This is an opt-in feature, and should only be enabled if operators doesn't require historical data. (default: false)
   --blob-path value                                                   Location for blob storage. Default location will be a 'blobs' directory next to the beacon db.
   --blob-retention-epochs value, --extend-blob-retention-epoch value  Override the default blob retention period (measured in epochs). The node will exit with an error at startup if the value is less than the default of 4096 epochs. (default: 4096)
   --blob-storage-layout value                                         Dictates how to organize the blob directory structure on disk, available options are: flat, by-epoch. (default: "flat")
   --clear-db                                                          Prompt for clearing any previously stored data at the data directory. (default: false)
   --datadir value                                                     Data directory for the databases. (default: "/home/preston/.eth2")
   --enable-experimental-backfill                                      Backfill is still experimental at this time. It will only be enabled if this flag is specified and the node was started using checkpoint sync. (default: false)
   --force-clear-db                                                    Clears any previously stored data at the data directory. (default: false)
   --pruner-retention-epochs value                                     Specifies the retention period for the pruner service in terms of epochs. If this value is less than MIN_EPOCHS_FOR_BLOCK_REQUESTS, it will be ignored. (default: 0)
   --restore-source-file value                                         Filepath to the backed-up database file which will be used to restore the database
   --restore-target-dir value                                          Target directory of the restored database (default: "/home/preston/.eth2")
   --slots-per-archive-point value                                     The slot durations of when an archived state gets saved in the beaconDB. (default: 2048)
   
builder OPTIONS:
   --http-mev-relay value                        A MEV builder relay string http endpoint, this will be used to interact MEV builder network using API defined in: https://ethereum.github.io/builder-specs/#/Builder
   --local-block-value-boost value               A percentage boost for local block construction as a Uint64. This is used to prioritize local block construction over relay/builder block constructionBoost is an additional percentage to multiple local block value. Use builder block if: builder_bid_value * 100 > local_block_value * (local-block-value-boost + 100) (default: 10)
   --max-builder-consecutive-missed-slots value  Number of consecutive skip slot to fallback from using relay/builder to local execution engine for block construction (default: 3)
   --max-builder-epoch-missed-slots value        Number of total skip slot to fallback from using relay/builder to local execution engine for block construction in last epoch rolling window. The values are on the basis of the networks and the default value for mainnet is 5. (default: 0)
   --min-builder-bid value                       An absolute value in Gwei that the builder bid has to have in order for this beacon node to use the builder's block. Anything less than this value and the beacon will revert to local building. (default: 0)
   --min-builder-to-local-difference value       An absolute value in Gwei that the builder bid has to have in order for this beacon node to use the builder's block. Anything less than this value and the beacon will revert to local building. (default: 0)
   --suggested-fee-recipient value               Post bellatrix, this address will receive the transaction fees produced by any blocks from this node. Default to junk whilst bellatrix is in development state. Validator client can override this value through the preparebeaconproposer api. (default: "0x0000000000000000000000000000000000000000")
   
sync OPTIONS:
   --checkpoint-block value                                Rather than syncing from genesis, you can start processing from a ssz-serialized BeaconState+Block. This flag allows you to specify a local file containing the checkpoint Block to load.
   --checkpoint-state value                                Rather than syncing from genesis, you can start processing from a ssz-serialized BeaconState+Block. This flag allows you to specify a local file containing the checkpoint BeaconState to load.
   --checkpoint-sync-url value                             URL of a synced beacon node to trust in obtaining checkpoint sync data. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag
   --genesis-beacon-api-url value                          URL of a synced beacon node to trust for obtaining genesis state. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag
   --genesis-state value                                   Load a genesis state from ssz file. Testnet genesis files can be found in the eth2-clients/eth2-testnets repository on github.
   --weak-subjectivity-checkpoint block_root:epoch_number  Input in block_root:epoch_number format. This guarantees that syncing leads to the given Weak Subjectivity Checkpoint along the canonical chain. If such a sync is not possible, the node will treat it as a critical and irrecoverable failure
   
execution layer OPTIONS:
   --contract-deployment-block value        The eth1 block in which the deposit contract was deployed. (default: 11184524)
   --deposit-contract value                 Deposit contract address. Beacon chain node will listen logs coming from the deposit contract to determine when validator is eligible to participate. (default: "0x00000000219ab540356cBB839Cbe05303d7705Fa")
   --engine-endpoint-timeout-seconds value  Sets the execution engine timeout (seconds) for execution payload semantics (forkchoiceUpdated, newPayload) (default: 0)
   --eth1-header-req-limit value            Sets the maximum number of headers that a deposit log query can fetch. (default: 1000)
   --execution-endpoint value               An execution client http endpoint. Can contain auth header as well in the format (default: "http://localhost:8551")
   --execution-headers value                A comma separated list of key value pairs to pass as HTTP headers for all execution client calls. Example: --execution-headers=key1=value1,key2=value2
   --interop-eth1data-votes                 Enable mocking of eth1 data votes for proposers to package into blocks (default: false)
   --jwt-id value                           JWT claims id. Could be used to identify the client
   --jwt-secret value                       REQUIRED if connecting to an execution node via HTTP. Provides a path to a file containing a hex-encoded string representing a 32 byte secret used for authentication with an execution node via HTTP. If this is not set, all requests to execution nodes via HTTP for consensus-related calls will fail, which will prevent your validators from performing their duties. This is not required if using an IPC connection.
   
monitoring OPTIONS:
   --disable-monitoring                                 Disables monitoring service. (default: false)
   --enable-tracing                                     Enables request tracing. (default: false)
   --monitor-indices value [ --monitor-indices value ]  List of validator indices to track performance
   --monitoring-host value                              Host used for listening and responding metrics for prometheus. (default: "127.0.0.1")
   --monitoring-port value                              Port used to listening and respond metrics for Prometheus. (default: 8080)
   --trace-sample-fraction value                        Indicates what fraction of p2p messages are sampled for tracing. (default: 0.2)
   --tracing-endpoint value                             Tracing endpoint defines where beacon chain traces are exposed to Jaeger. (default: "http://127.0.0.1:14268/api/traces")
   --tracing-process-name process_name                  Name to apply to tracing tag process_name.
   
slasher OPTIONS:
   --historical-slasher-node  Enables required flags for serving historical data to a slasher client. Results in additional storage usage (default: false)
   --slasher                  Enables a slasher in the beacon node for detecting slashable offenses. (default: false)
   --slasher-datadir value    Directory for the slasher database (default: "/home/preston/.eth2")
   
log OPTIONS:
   --log-file value    Specifies log file name, relative or absolute.
   --log-format value  Specifies log formatting. Supports: text, json, fluentd, journald. (default: "text")
   --verbosity value   Logging verbosity. (trace, debug, info, warn, error, fatal, panic) (default: "info")
   
features OPTIONS:
   --blob-save-fsync                         Forces new blob files to be fysnc'd before continuing, ensuring durable blob writes. (default: false)
   --dev                                     Enables experimental features still in development. These features may not be stable. (default: false)
   --disable-broadcast-slashings             Disables broadcasting slashings submitted to the beacon node. (default: false)
   --disable-committee-aware-packing         Changes the attestation packing algorithm to one that is not aware of attesting committees. (default: false)
   --disable-experimental-state              Turns off the latest and greatest changes to the beacon state. Disabling this is safe to do after the feature has been enabled. (default: false)
   --disable-grpc-connection-logging         Disables displaying logs for newly connected grpc clients. (default: false)
   --disable-peer-scorer                     (Danger): Disables P2P peer scorer. Do NOT use this in production! (default: false)
   --disable-quic                            Disables connecting using the QUIC protocol with peers. (default: false)
   --disable-registration-cache              Temporary flag for disabling the validator registration cache instead of using the DB. Note: registrations do not clear on restart while using the DB. (default: false)
   --disable-resource-manager                Disables running the libp2p resource manager. (default: false)
   --disable-staking-contract-check          Disables checking of staking contract deposits when proposing blocks, useful for devnets. (default: false)
   --disable-verbose-sig-verification        Disables identifying invalid signatures if batch verification fails when processing block. (default: false)
   --enable-discovery-reboot                 Experimental: Enables the discovery listener to rebooted in the event of connectivity issues. (default: false)
   --enable-experimental-attestation-pool    Enables an experimental attestation pool design. (default: false)
   --enable-full-ssz-data-logging            Enables displaying logs for full ssz data on rejected gossip messages. (default: false)
   --enable-historical-state-representation  Enables the beacon chain to save historical states in a space efficient manner. (Warning): Once enabled, this feature migrates your database in to a new schema and there is no going back. At worst, your entire database might get corrupted. (default: false)
   --enable-light-client                     Enables the light client support in the beacon node (default: false)
   --holesky                                 Runs Prysm configured for the Holesky test network. (default: false)
   --interop-write-ssz-state-transitions     Writes SSZ states to disk after attempted state transitio. (default: false)
   --mainnet                                 Runs on Ethereum main network. This is the default and can be omitted. (default: true)
   --prepare-all-payloads                    Informs the engine to prepare all local payloads. Useful for relayers and builders. (default: false)
   --save-full-execution-payloads            Saves beacon blocks with full execution payloads instead of execution payload headers in the database. (default: false)
   --save-invalid-blob-temp                  Writes invalid blobs to temp directory. (default: false)
   --save-invalid-block-temp                 Writes invalid blocks to temp directory. (default: false)
   --sepolia                                 Runs Prysm configured for the Sepolia test network. (default: false)
   
merge OPTIONS:
   --terminal-block-hash-epoch-override value  Sets the block hash epoch to manual overrides the default TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal block hash activation epoch. Incorrect usage will result in your node experience consensus failure. (default: 0)
   --terminal-block-hash-override value        Sets the block hash to manual overrides the default TERMINAL_BLOCK_HASH value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal block hash. Incorrect usage will result in your node experience consensus failure.
   --terminal-total-difficulty-override value  Sets the total difficulty to manual overrides the default TERMINAL_TOTAL_DIFFICULTY value. WARNING: This flag should be used only if you have a clear understanding that community has decided to override the terminal difficulty. Incorrect usage will result in your node experience consensus failure.
   
deprecated OPTIONS:
   --db-backup-output-dir value  Output directory for db backups.
   
debug OPTIONS:
   --blockprofilerate value      Turns on block profiling with the given rate. (default: 0)
   --cpuprofile value            Writes CPU profile to the given file.
   --gc-percent value            The percentage of freshly allocated data to live data on which the gc will be run again. (default: 100)
   --memprofilerate value        Turns on memory profiling with the given rate. (default: 524288)
   --mutexprofilefraction value  Turns on mutex profiling with the given rate. (default: 0)
   --pprof                       Enables the pprof HTTP server. (default: false)
   --pprofaddr value             pprof HTTP server listening interface. (default: "127.0.0.1")
   --pprofport value             pprof HTTP server listening port. (default: 6060)
   --trace value                 Writes execution trace to the given file.
   

Which issues(s) does this PR fix?

Other notes for review

  • Beacon flags: Comment on deprecated section
  • Beacon flags: Organize flags relevant to logging, comment on logging section
  • Beacon flags: Organize flags relevant to p2p, comment on p2p section
  • Beacon flags: Introduce db flag section, organize flags relevant to db, comment on db section
  • Beacon flags: Introduce builder flag section, organize flags relevant to builder, comment on builder section
  • Beacon flags: Introduce sync flag section, organize flags relevant to sync, comment on sync section
  • Beacon flags: Introduce execution layer flag section, organize flags relevant to execution layer, comment on execution layer section
  • Beacon flags: Introduce monitoring flag section, organize flags relevant to monitoring, comment on monitoring section
  • Beacon flags: Organizing remaining flags in cmd and beacon-chain sections
  • Beacon flags: Introduce slasher flag section, organize flags relevant to slasher, comment on slasher section
  • Move slasher flag from features to the slasher section
  • Changelog fragment
  • Beacon flags: reorganize sections

Acknowledgements

@prestonvanloon prestonvanloon requested a review from a team as a code owner February 19, 2025 17:25
@prestonvanloon
Copy link
Member Author

prestonvanloon commented Feb 19, 2025

Slasher e2e is broken, possibly a regression here. Investigating

Fixed.

cmd.E2EConfigFlag,
cmd.GrpcMaxCallRecvMsgSizeFlag,
cmd.MaxGoroutines,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmd.MaxGoroutines should go to debug

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep, makes sense

Name: "cmd",
Flags: []cli.Flag{
cmd.MinimalConfigFlag,
cmd.AcceptTosFlag,
cmd.ConfigFileFlag,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmd.ConfigFileFlag is here but there are other config flags in beacon-chain:

  • cmd.ChainConfigFileFlag (what's the difference between this one and cmd.ConfigFileFlag?)
  • cmd.E2EConfigFlag
  • flags.ChainID
  • flags.NetworkID (what's the difference between this one and flags.ChainID?)
  • cmd.MinimalConfigFlag

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't feel right, but I am not entirely sure where they belong. The comment says Flags relevant to running the process - which ones of these are relevant?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The config file is used for setting all of the flags.

The other things you mentioned are for configuring the beacon chain so it feels more appropriate to keep them in the beacon chain section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants