Available parameters

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

Fun tip: 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

NOTICE: 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 there is conflicts, 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 and validator client.

FlagUsage
--config-fileAllows user to specifying the location of a .yaml config file with flag values.
--verbosityLogging verbosity (trace, debug, info=default, warn, error, fatal, panic).
--datadir [path]Allows user to specify a data directory for the databases and keystore.
--enable-tracingEnables request 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 P@P messages are sampled for tracing. Default: 0.20
--disable-monitoringDisable all monitoring service.
--monitoring-portPort used by prometheus for listening and responding to messages. Default: 8080
--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-fileSpecify log file name, 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.

Base flags

FlagUsage
--no-custom-configRun the beacon chain with the real Phase 0 parameters.
--http-web3providerDefine a mainchain web3 provider string http endpoint. Default: https://goerli.prylabs.net
--web3providerDefine a mainchain web3 provider string endpoint. Can be either a IPC file string or a WebSocket endpoint. Cannot be an HTTP endpoint. Default: wss://goerli.prylabs.net/websocket
--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.
--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
--rpc-max-page-sizeDefine the max number of items returned per page in RPC responses for paginated endpoints. Default: 500
--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-hostEnable gRPC gateway for JSON requests. Default: 127.0.0.1
--grpc-gateway-portEnable gRPC gateway for JSON requests. Default: 3500
--min-sync-peersThe required number of valid peers to connect with before syncing."
--contract-deployment-blockDefine the ETH1 block in which the deposit contract was deployed. Default: 1960177
--p2p-max-peersThe max number of p2p peers to maintain. Default: 30
--no-discoveryEnable only local network P2P and do not connect to cloud bootstrap nodes.
--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-node 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.
--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.
--slasher-tls-certCertificate for secure slasher gRPC connection. Pass this in order to use slasher gRPC securely.
--slasher-providerDefine a slasher provider string endpoint. Can either be an gRPC server endpoint. Default: 127.0.0.1:5000

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.

Base 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
--tls-certCertificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--disable-rewards-penalties-loggingDisable reward/penalty logging during cluster deployment.
--graffitiA string to include in proposed block.
--grpc-max-msg-sizeInteger to define max recieve message call size. Default: 52428800 (for 50Mb).
--enable-account-metricsEnable prometheus metrics for validator accounts.

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-rpc-providerSpecify the beacon node RPC provider endpoint Default: "localhost:4000"
--beacon-tls-certProvide the certificate for secure beacon gRPC connection. Pass this in order to use beacon gRPC securely.
--rebuild-span-mapsRebuild span maps from indexed attestations in db Default: false
--rpc-portSpecify the RPC port exposed by the slasher Default: 5000
--tls-certSpecify the certificate to use for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely.
--tls-keySpecify the private key for secure gRPC. Pass this and the tls-cert flag in order to use gRPC securely.

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