Documentation ¶
Overview ¶
Package cmd defines the command line flags for the shared utilities.
Index ¶
- Variables
- func ConfigureBeaconChain(ctx *cli.Context) error
- func ConfigureValidator(ctx *cli.Context) error
- func ConfirmAction(actionText, deniedText string) (bool, error)
- func DefaultDataDir() string
- func EnterPassword(confirmPassword bool, pr PasswordReader) (string, error)
- func ExpandSingleEndpointIfFile(ctx *cli.Context, flag *cli.StringFlag) error
- func FixDefaultDataDir(prevDataDir, curDataDir string) error
- func Init(c *Flags)
- func InitWithReset(c *Flags) func()
- func LoadFlagsFromConfig(cliCtx *cli.Context, flags []cli.Flag) error
- func ValidateNoArgs(ctx *cli.Context) error
- func WrapFlags(flags []cli.Flag) []cli.Flag
- type Flags
- type PasswordReader
- type StdInPasswordReader
Constants ¶
This section is empty.
Variables ¶
var ( // MinimalConfigFlag declares to use the minimal config for running Ethereum consensus. MinimalConfigFlag = &cli.BoolFlag{ Name: "minimal-config", Usage: "Uses minimal config with parameters as defined in the spec.", } // E2EConfigFlag declares to use a testing specific config for running Ethereum consensus in end-to-end testing. E2EConfigFlag = &cli.BoolFlag{ Name: "e2e-config", Usage: "Enables the E2E testing config, only for use within end-to-end testing.", } // RPCMaxPageSizeFlag defines the maximum numbers per page returned in RPC responses from this // beacon node (default: 500). RPCMaxPageSizeFlag = &cli.IntFlag{ Name: "rpc-max-page-size", Usage: "Max number of items returned per page in RPC responses for paginated endpoints.", } // VerbosityFlag defines the logrus configuration. VerbosityFlag = &cli.StringFlag{ Name: "verbosity", Usage: "Logging verbosity. (trace, debug, info, warn, error, fatal, panic)", Value: "info", } // DataDirFlag defines a path on disk where Prysm databases are stored. DataDirFlag = &cli.StringFlag{ Name: "datadir", Usage: "Data directory for the databases.", Value: DefaultDataDir(), } // EnableBackupWebhookFlag for users to trigger db backups via an HTTP webhook. EnableBackupWebhookFlag = &cli.BoolFlag{ Name: "enable-db-backup-webhook", Usage: `Serves HTTP handler to initiate database backups. The handler is served on the monitoring port at path /db/backup.`, } // BackupWebhookOutputDir to customize the output directory for db backups. BackupWebhookOutputDir = &cli.StringFlag{ Name: "db-backup-output-dir", Usage: "Output directory for db backups.", } // EnableTracingFlag defines a flag to enable p2p message tracing. EnableTracingFlag = &cli.BoolFlag{ Name: "enable-tracing", Usage: "Enables request tracing.", } // TracingProcessNameFlag defines a flag to specify a process name. TracingProcessNameFlag = &cli.StringFlag{ Name: "tracing-process-name", Usage: "Name to apply to tracing tag `process_name`.", } // TracingEndpointFlag flag defines the http endpoint for serving traces to Jaeger. TracingEndpointFlag = &cli.StringFlag{ Name: "tracing-endpoint", Usage: "Tracing endpoint defines where beacon chain traces are exposed to Jaeger.", Value: "http://127.0.0.1:14268/api/traces", } // TraceSampleFractionFlag defines a flag to indicate what fraction of p2p // messages are sampled for tracing. TraceSampleFractionFlag = &cli.Float64Flag{ Name: "trace-sample-fraction", Usage: "Indicates what fraction of p2p messages are sampled for tracing.", Value: 0.20, } // MonitoringHostFlag defines the host used to serve prometheus metrics. MonitoringHostFlag = &cli.StringFlag{ Name: "monitoring-host", Usage: "Host used for listening and responding metrics for prometheus.", Value: "127.0.0.1", } // DisableMonitoringFlag defines a flag to disable the metrics collection. DisableMonitoringFlag = &cli.BoolFlag{ Name: "disable-monitoring", Usage: "Disables monitoring service.", } // NoDiscovery specifies whether we are running a local network and have no need for connecting // to the bootstrap nodes in the cloud NoDiscovery = &cli.BoolFlag{ Name: "no-discovery", Usage: "Enable only local network p2p and do not connect to cloud bootstrap nodes", } // StaticPeers specifies a set of peers to connect to explicitly. StaticPeers = &cli.StringSliceFlag{ Name: "peer", Usage: "Connect with this peer, this flag may be used multiple times. This peer is recognized as a trusted peer.", } // BootstrapNode tells the beacon node which bootstrap node to connect to BootstrapNode = &cli.StringSliceFlag{ Name: "bootstrap-node", Usage: "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.", Value: cli.NewStringSlice(params.BeaconNetworkConfig().BootstrapNodes...), } // RelayNode tells the beacon node which relay node to connect to. RelayNode = &cli.StringFlag{ Name: "relay-node", Usage: "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", Value: "", } // P2PUDPPort defines the port to be used by discv5. P2PUDPPort = &cli.IntFlag{ Name: "p2p-udp-port", Usage: "The UDP port used by the discovery service discv5.", Value: 12000, } // P2PQUICPort defines the QUIC port to be used by libp2p. P2PQUICPort = &cli.IntFlag{ Name: "p2p-quic-port", Usage: "The QUIC port used by libp2p.", Value: 13000, } // P2PTCPPort defines the TCP port to be used by libp2p. P2PTCPPort = &cli.IntFlag{ Name: "p2p-tcp-port", Usage: "The TCP port used by libp2p.", Value: 13000, } // P2PIP defines the local IP to be used by libp2p. P2PIP = &cli.StringFlag{ Name: "p2p-local-ip", Usage: "The local ip address to listen for incoming data.", Value: "", } // P2PHost defines the host IP to be used by libp2p. P2PHost = &cli.StringFlag{ Name: "p2p-host-ip", Usage: "The IP address advertised by libp2p. This may be used to advertise an external IP.", Value: "", } // P2PHostDNS defines the host DNS to be used by libp2p. P2PHostDNS = &cli.StringFlag{ Name: "p2p-host-dns", Usage: "The DNS address advertised by libp2p. This may be used to advertise an external DNS.", Value: "", } // P2PPrivKey defines a flag to specify the location of the private key file for libp2p. P2PPrivKey = &cli.StringFlag{ Name: "p2p-priv-key", Usage: "The file containing the private key to use in communications with other peers.", Value: "", } P2PStaticID = &cli.BoolFlag{ Name: "p2p-static-id", Usage: "Enables the peer id of the node to be fixed by saving the generated network key to the default key path.", Value: false, } // P2PMetadata defines a flag to specify the location of the peer metadata file. P2PMetadata = &cli.StringFlag{ Name: "p2p-metadata", Usage: "The file containing the metadata to communicate with other peers.", Value: "", } // P2PMaxPeers defines a flag to specify the max number of peers in libp2p. P2PMaxPeers = &cli.IntFlag{ Name: "p2p-max-peers", Usage: "The max number of p2p peers to maintain.", Value: 70, } // P2PAllowList defines a CIDR subnet to exclusively allow connections. P2PAllowList = &cli.StringFlag{ Name: "p2p-allowlist", Usage: "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.", } // P2PDenyList defines a list of CIDR subnets to disallow connections from them. P2PDenyList = &cli.StringSliceFlag{ Name: "p2p-denylist", Usage: "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.", } PubsubQueueSize = &cli.IntFlag{ Name: "pubsub-queue-size", Usage: "The size of the pubsub validation and outbound queue for the node.", Value: 1000, } // ForceClearDB removes any previously stored data at the data directory. ForceClearDB = &cli.BoolFlag{ Name: "force-clear-db", Usage: "Clears any previously stored data at the data directory.", } // ClearDB prompts user to see if they want to remove any previously stored data at the data directory. ClearDB = &cli.BoolFlag{ Name: "clear-db", Usage: "Prompt for clearing any previously stored data at the data directory.", } // LogFormat specifies the log output format. LogFormat = &cli.StringFlag{ Name: "log-format", Usage: "Specifies log formatting. Supports: text, json, fluentd, journald.", Value: "text", } // MaxGoroutines specifies the maximum amount of goroutines tolerated, before a status check fails. MaxGoroutines = &cli.IntFlag{ Name: "max-goroutines", Usage: "Specifies the upper limit of goroutines running before a status check fails", Value: 5000, } // LogFileName specifies the log output file name. LogFileName = &cli.StringFlag{ Name: "log-file", Usage: "Specifies log file name, relative or absolute.", } // EnableUPnPFlag specifies if UPnP should be enabled or not. The default value is false. EnableUPnPFlag = &cli.BoolFlag{ Name: "enable-upnp", Usage: "Enable the service (Beacon chain or Validator) to use UPnP when possible.", } // ConfigFileFlag specifies the filepath to load flag values. ConfigFileFlag = &cli.StringFlag{ Name: "config-file", Usage: "Filepath to a yaml file with flag values.", } // ChainConfigFileFlag specifies the filepath to load flag values. ChainConfigFileFlag = &cli.StringFlag{ Name: "chain-config-file", Usage: "Path to a YAML file with chain config values.", } // GrpcMaxCallRecvMsgSizeFlag defines the max call message size for GRPC GrpcMaxCallRecvMsgSizeFlag = &cli.IntFlag{ Name: "grpc-max-msg-size", Usage: `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.`, Value: math.MaxInt32, } // AcceptTosFlag specifies user acceptance of ToS for non-interactive environments. AcceptTosFlag = &cli.BoolFlag{ Name: "accept-terms-of-use", Usage: "Accepts Terms and Conditions (for non-interactive environments).", } // ValidatorMonitorIndicesFlag specifies a list of validator indices to // track for performance updates ValidatorMonitorIndicesFlag = &cli.IntSliceFlag{ Name: "monitor-indices", Usage: "List of validator indices to track performance", } // RestoreSourceFileFlag specifies the filepath to the backed-up database file // which will be used to restore the database. RestoreSourceFileFlag = &cli.StringFlag{ Name: "restore-source-file", Usage: "Filepath to the backed-up database file which will be used to restore the database", } // RestoreTargetDirFlag specifies the target directory of the restored database. RestoreTargetDirFlag = &cli.StringFlag{ Name: "restore-target-dir", Usage: "Target directory of the restored database", Value: DefaultDataDir(), } // ApiTimeoutFlag specifies the timeout value for API requests in seconds. A timeout of zero means no timeout. ApiTimeoutFlag = &cli.IntFlag{ Name: "api-timeout", Usage: "Specifies the timeout value for API requests in seconds.", Value: 120, } // JwtOutputFileFlag specifies the JWT file path that gets generated into when invoked by generate-jwt-secret. JwtOutputFileFlag = &cli.StringFlag{ Name: "output-file", Usage: "Target file path for outputting a generated JWT secret to be used for JSON-RPC authentication", Aliases: []string{"o"}, } )
Functions ¶
func ConfigureBeaconChain ¶
func ConfigureBeaconChain(ctx *cli.Context) error
ConfigureBeaconChain sets the global config based on what flags are enabled for the beacon-chain client.
func ConfigureValidator ¶
func ConfigureValidator(ctx *cli.Context) error
ConfigureValidator sets the global config based on what flags are enabled for the validator client.
func ConfirmAction ¶
ConfirmAction uses the passed in actionText as the confirmation text displayed in the terminal. The user must enter Y or N to indicate whether they confirm the action detailed in the warning text. Returns a boolean representing the user's answer.
func DefaultDataDir ¶
func DefaultDataDir() string
DefaultDataDir is the default data directory to use for the databases and other persistence requirements.
func EnterPassword ¶
func EnterPassword(confirmPassword bool, pr PasswordReader) (string, error)
EnterPassword queries the user for their password through the terminal, in order to make sure it is not passed in a visible way to the terminal.
func ExpandSingleEndpointIfFile ¶
func ExpandSingleEndpointIfFile(ctx *cli.Context, flag *cli.StringFlag) error
ExpandSingleEndpointIfFile expands the path for --execution-provider if specified as a file.
func FixDefaultDataDir ¶
FixDefaultDataDir checks if previous data directory is found and can be migrated to a new path. This is used to resolve issue with weak default path (for Windows users) in existing installations. For full details see: https://github.com/prysmaticlabs/prysm/issues/5660.
func InitWithReset ¶
func InitWithReset(c *Flags) func()
InitWithReset sets the global config and returns function that is used to reset configuration.
func LoadFlagsFromConfig ¶
func LoadFlagsFromConfig(cliCtx *cli.Context, flags []cli.Flag) error
LoadFlagsFromConfig sets flags values from config file if ConfigFileFlag is set.
func ValidateNoArgs ¶
func ValidateNoArgs(ctx *cli.Context) error
ValidateNoArgs insures that the application is not run with erroneous arguments or flags. This function should be used in the app.Before, whenever the application supports a default command.
Types ¶
type Flags ¶
type Flags struct { // Configuration related flags. MinimalConfig bool // MinimalConfig as defined in the spec. MaxRPCPageSize int // MaxRPCPageSize is used for a cap of page sizes in RPC requests. }
Flags is a struct to represent which features the client will perform on runtime.
type PasswordReader ¶
PasswordReader reads a password from a mock or stdin.
type StdInPasswordReader ¶
type StdInPasswordReader struct { }
StdInPasswordReader reads a password from stdin.
func (StdInPasswordReader) ReadPassword ¶
func (StdInPasswordReader) ReadPassword() (string, error)
ReadPassword reads a password from stdin.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package beacon-chain defines the entire runtime of an Ethereum beacon node.
|
Package beacon-chain defines the entire runtime of an Ethereum beacon node. |
flags
Package flags defines beacon-node specific runtime flags for setting important values such as ports, eth1 endpoints, and more.
|
Package flags defines beacon-node specific runtime flags for setting important values such as ports, eth1 endpoints, and more. |
This code was adapted from https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/usage.go
|
This code was adapted from https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/usage.go |
flags
Package flags contains all configuration runtime flags for the client-stats daemon.
|
Package flags contains all configuration runtime flags for the client-stats daemon. |
Package mock_cmd is a generated GoMock package.
|
Package mock_cmd is a generated GoMock package. |
Package main defines a validator client, a critical actor in Ethereum which manages a keystore of private keys, connects to a beacon node to receive assignments, and submits blocks/attestations as needed.
|
Package main defines a validator client, a critical actor in Ethereum which manages a keystore of private keys, connects to a beacon node to receive assignments, and submits blocks/attestations as needed. |
flags
Package flags contains all configuration runtime flags for the validator service.
|
Package flags contains all configuration runtime flags for the validator service. |