Available parameters

This section lists the various flags used to customise the startup process of beacon nodes and validator clients.

Graffiti

You can use the --graffiti validator flag to add a string to your proposed blocks, which will be seen on the block explorer. I.e; <startup command> --graffiti "Prysm is awesome!"

Loading parameters via .YAML file

info

Loading parameters via .YAML file is optional.

Prysm now supports loading flag values from a specified .yaml file. Defining parameters in this way cuts back on terminal clutter and allows unique startup profiles to be saved independently.

The below steps show how place a common Prysm flag into a YAML file and how to specify it at start up.

GNU\Linux, Mac, ARM64

  1. In your Prysm working directory, create a .yaml file and open it in a text editor.

  2. Add the following lines to the file before closing and saving:

datadir: '/data'
  1. Start the Prysm beacon chain as normal, while specifying the location of the .yaml like so:
./prysm.sh beacon-chain --config-file=/path/to/file.yaml

or for a validator like so:

./prysm.sh validator --config-file=/path/to/file.yaml

Windows

  1. In your Prysm working directory, create a .yaml file and open it in a text editor.

  2. Add the following lines to the file before closing and saving:

datadir: 'c:\prysm'
  1. Start the Prysm beacon chain as normal, while specifying the location of the .yaml like so:
.\prysm.bat beacon-chain --config-file=c:\path\to\file.yaml

or for a validator like so:

.\prysm.bat validator --config-file=c:\path\to\file.yaml

It is possible to provide additional flags alongside the .yaml file, though if conflicting flags are provided, the flag defined in the.yaml file will take priority. For example, if the flag --datadir=/data2 is specified and datadir: "/data1" is in the .yaml file, Prysm would prioritise writing to /data1.

Shared flags

These flags are shared by both the beacon node, validator client, and slasher.

FlagUsage
--accept-terms-of-useAllows user to to accept our legal Terms of Use programmatically.
--config-fileAllows user to specifying the location of a .yaml config file with flag values.
--chain-config-fileAllows user to specifying the location of a .yaml file with chain configuration values.
--verbosityVerbosity of logs to display (trace, debug, info=default, warn, error, fatal, panic).
--datadir [path]Allows user to specify a directory for the client database.
--rpc-max-page-sizeDefine the max number of items returned per page in RPC responses for paginated endpoints. (Default: 500)
--enable-tracingEnables p2p message tracing.
--tracing-endpointTracing endpoint defines where beacon chain traces are exposed. (Default: http://127.0.0.1:14268/api/traces)
--tracing-process-nameThe name to apply to tracing tag \"process_name\"
--trace-sample-fractionIndicate what fraction of P2P messages are sampled for tracing. (Default: 0.20)
--disable-monitoringDisable all monitoring services.
--monitoring-portPort used by prometheus metrics for listening and responding to messages. (Default: Beacon:8080, Validator:8081, Slasher: 8082)
--monitoring-hostHost IP address used for prometheus monitoring. Default: 127.0.0.1
--force-clear-dbClear any previously stored data at the data directory.
--clear-dbPrompt for clearing any previously stored data at the data directory.
--log-formatSpecify log formatting. Supports: text, json, fluentd.
--log-filePrints logs to the provided file path. Path can be relative or absolute.
--max-goroutinesSpecifies the upper limit of goroutines running before a status check fails. (Default: 5000)
--enable-upnpEnable the service (Beacon chain or Validator) to use UPnP when possible.

Beacon node parameters

These flags are specific to launching the beacon node.

Management flags

FlagUsage
--deposit-contractDefine a deposit contract address. Beacon chain node will listen logs coming from the deposit contract to determine when validator is eligible to participate.
--contract-deployment-blockDefine the ETH1 block in which the deposit contract was deployed. (Default: 11184524)
--head-syncStarts the beacon node with the previously saved head state instead of finalized state.
--disable-syncStarts the beacon node without entering initial sync and instead exits to regular sync immediately.
--slots-per-archive-pointThe slot durations of when an archived state gets saved in the DB. (Default: 2048)
--historical-slasher-nodeEnables required flags for serving historical data to a slasher client. Results in additional storage and disk usage.
--weak-subjectivity-checkpointInput in block_root:epoch_number format to sync from the weak subjectivity checkpoint.
--gc-percentThe percentage of freshly allocated data to live data on which the gc will be run again. (Default: 100)
--enable-db-backup-webhookServe HTTP handler to initiate database backups. The handler is served on the monitoring port at path /db/backup.
--db-backup-output-dirOutput directory for database backups.
--chain-idSets the chain id of the beacon chain.
--network-idSets the network id of the beacon chain.

gRPC flags

FlagUsage
--http-web3providerDefine an eth1 web3 provider string http endpoint. See here
--rpc-hostDefine an address of the host on which the RPC server should listen. Default: 0.0.0.0
--rpc-portDefine a RPC port to be exposed by the beacon node. >Value: 4000
--tls-certCertificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--tls-keyKey for secure gRPC. Pass this and the tls-cert flag in order to use gRPC securely.
--grpc-gateway-hostThe host on which the gateway server runs on. Default: 127.0.0.1
--grpc-gateway-portEnable gRPC gateway for JSON requests. Default: 3500

P2P flags

FlagUsage
--p2p-max-peersThe max number of p2p peers to maintain. Default: 45
--no-discoveryEnable only local network P2P and do not connect to cloud bootstrap nodes.
--disable-discv5Does not run the discoveryV5 DHT.
--block-batch-limitThe amount of blocks the local peer is bounded to request and respond to in a batch. Default: 64
--block-batch-limit-burst-factorThe factor by which block batch limit may increase on burst. Default: 10
--peerConnect with a specified peer. This flag may be used multiple times.
--bootstrap-nodeThe address of bootstrap node. Beacon node will connect for peer discovery via DHT. Multiple nodes can be separated with a comma. Default:
--relay-nodeThe address of relay node. The beacon node will connect to the relay node and advertise their address via the relay node to other peers.
--p2p-udp-port The port used by discv5. Default: 12000
--p2p-tcp-portThe port used by libP2P. Default: 13000
--p2p-local-ipThe local ip address to listen for incoming data.
--p2p-host-ipThe IP address advertised by libp2p. This may be used to advertise a public IP.
--p2p-host-dnsThe DNS address advertised by libp2p. This may be used to advertise an external DNS.
--p2p-whitelistThe CIDR subnet for whitelisting peer connections. Example: 192.168.0.0/16 would whitelist connections to peers on your local network only. The default is to accept all connections.
--p2p-encodingThe encoding format of messages sent over the wire. The default is 0, which represents ssz.

Interop flags

FlagUsage
--interop-genesis-stateThe genesis state file (.SSZ) to load from.
--interop-eth1data-votesEnable mocking of eth1 data votes for proposers to package into blocks.
--interop-genesis-timeSpecify the genesis time for interop genesis state generation. Must be used with --interop-num-validators.
--interop-num-validatorsSpecify number of genesis validators to generate for interop. Must be used with --interop-genesis-time.

Validator parameters

These flags are specific to launching a validator client.

Management flags

FlagUsage
--no-custom-configRun the beacon chain with the real parameters from phase 0.
--beacon-rpc-providerBeacon node RPC provider endpoint. Default: localhost:4000
--rpc-hostSpecify the RPC host exposed by the validator. Default: localhost
--rpc-portSpecify the RPC port exposed by the validator. Default: 7000
--grpc-gateway-hostSpecify the gRPC gateway port exposed by the validator. Default: localhost
--grpc-gateway-portSpecify the gRPC gateway port exposed by the validator. Default: 7500
--tls-certCertificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--graffitiA string to include in proposed block.
--webEnables the web portal for the validator client (work in progress).
--monitoring-hostHost used to listening and respond metrics for prometheus. (Default: 127.0.0.1)
--monitoring-portPort used to listening and respond metrics for prometheus. (Default: 8081)
--grpc-max-msg-sizeInteger to define max recieve message call size. Default: 52428800 (for 50Mb).
--disable-rewards-penalties-loggingDisable reward/penalty logging during cluster deployment.
--disable-account-metricsDisable prometheus metrics for validator accounts.

RPC flags

FlagUsage
--beacon-rpc-providerBeacon node RPC provider endpoint. Default: localhost:4000
--beacon-rpc-gateway-providerBeacon node RPC gateway provider endpoint. (Default: localhost:3500)
--tls-certCertificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--slasher-rpc-providerSlasher node RPC provider endpoint. Default: 127.0.0.1:4002
--slasher-tls-certCertificate for secure slasher gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--rpcEnables the RPC server for the validator client (without Web UI).
--rpc-hostHost on which the RPC server should listen (default: "127.0.0.1")
--rpc-portRPC port exposed by a validator client (default: 7000)
--grpc-gateway-portEnable gRPC gateway for JSON requests (default: 7500)
--grpc-gateway-hostThe host on which the gateway server runs on (default: 127.0.0.1)
--grpc-retriesNumber of attempts to retry gRPC requests (default: 5)
--grpc-retry-delayThe amount of time between gRPC retry requests. (default: 1s)
--grpc-headersA comma separated list of key value pairs to pass as gRPC headers for all gRPC calls. Example: --grpc-headers=key=value
--grpc-gateway-corsdomainComma separated list of domains from which to accept cross origin requests (browser enforced). This flag has no effect if not used with --grpc-gateway-port. (default: "http://localhost:4242,http://127.0.0.1:4242,http://localhost:4200,http://0.0.0.0:4242,http://0.0.0.0:4200")

Accounts flags

FlagUsage
--wallet-dirPath to a wallet directory on-disk for Prysm validator accounts.
--wallet-password-filePath to a plain-text, .txt file containing your wallet password.
--keys-dirPath to a directory where keystores to be imported are stored.
--backup-dirPath to a directory where accounts will be backed up into a zip file.
--num-accountsNumber of accounts to generate for derived wallets (default: 1).
--account-password-filePath to a plain-text, .txt file containing a password for a validator account.
--backup-password-filePath to a plain-text, .txt file containing the desired password for your backed up accounts.
--mnemonic-fileFile to retrieve mnemonic for non-interactively passing a mnemonic phrase into wallet recover.
--mnemonic-25th-word-file(Advanced) Path to a plain-text, .txt file containing a 25th word passphrase for your mnemonic for HD wallets.
--skip-mnemonic-25th-word-checkAllows for skipping the check for a mnemonic 25th word passphrase for HD wallets.
--import-private-key-filePath to a plain-text, .txt file containing a hex string representation of a private key to import.
--keymanager-kindKind of keymanager, either imported, derived, or remote, specified during wallet creation.
--delete-public-keysComma-separated list of public key hex strings to specify which validator accounts to delete.
--disable-public-keysComma-separated list of public key hex strings to specify which validator accounts to disable.
--enable-public-keysComma-separated list of public key hex strings to specify which validator accounts to enable.
--backup-public-keysComma-separated list of public key hex strings to specify which validator accounts to backup.
--public-keysComma-separated list of public key hex strings to specify on which validator accounts to perform a voluntary exit.
--show-deposit-dataDisplay raw eth1 tx deposit data for validator accounts.
--show-private-keysDisplay the private keys for validator accounts.
--skip-deposit-confirmationSkips the y/n confirmation prompt for sending a deposit to the deposit contract.

Interop flags

FlagUsage
--interop-start-indexThe start index to deterministically generate validator keys when used in combination with --interop-num-validators. Example: --interop-start-index=5 --interop-num-validators=3 would generate keys from index 5 to 7.
--interop-num-validatorsThe number of validators to deterministically generate validator keys when used in combination with --interop-num-validators. Example: --interop-start-index=5 --interop-num-validators=3 would generate keys from index 5 to 7.

Slasher parameters

These flags are specific to launching a slasher client.

Base flags

FlagUsage
--beacon-tls-certCertificate for secure beacon gRPC connection. Pass this in order to use beacon gRPC securely.
--beacon-rpc-providerBeacon node RPC provider endpoint (default: localhost:4000)
--enable-historical-detectionEnables historical attestation detection for the slasher. Requires --historical-slasher-node on the beacon node.
--spans-cache-sizeSets the span cache size. (default: 1500)
--highest-att-cache-sizeSets the highest attestation cache size. (default: 3000)
--tls-certCertificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--tls-keyKey for secure gRPC. Pass this and the tls-cert flag in order to use gRPC securely.
--monitoring-hostHost used to listening and respond metrics for prometheus. (Default: 127.0.0.1)
--monitoring-portPort used to listening and respond metrics for prometheus. (default: 8082)
--rpc-hostHost on which the RPC server should listen. (default: "127.0.0.1")
--rpc-portRPC port exposed by the slasher. (default: 4002)

General debug flags

FlagUsage
--cpuprofileWrite CPU profile to the given file
--memprofilerateTurn on memory profiling with the given rate Default: 524288
--pprofEnable the pprof HTTP server Default: false
--pprofaddrpprof HTTP server listening interface Default: "127.0.0.1"
--pprofportpprof HTTP server listening port Default: 6060
--traceWrite execution trace to the given file