dev CLI Command
Quickly bootstrap a beacon node and multiple validators. Use for development and testing
Examplesโ
Start a single beacon node with 8 interop validators
./lodestar dev --genesisValidators 8 --reset
dev Optionsโ
--dataDirโ
Lodestar root data directory
type: string
--networkโ
Name of the Ethereum Consensus chain network to join
type: string
choices: "mainnet", "gnosis", "sepolia", "hoodi", "chiado", "ephemery", "dev"
default: "mainnet"
--paramsFileโ
Network configuration file
type: string
--rcConfigโ
RC file to supplement command line args, accepted formats: .yml, .yaml, .json
type: string
--supernodeโ
Subscribe to and custody all data column sidecar subnets
type: boolean
--semiSupernodeโ
Subscribe to and custody half of the data column sidecar subnets to support blob reconstruction, enabling more efficient data availability with lower bandwidth and storage requirements compared to a supernode.
type: boolean
--genesisStateFileโ
Path or URL to download a genesis state file in ssz-encoded format
type: string
--checkpointSyncUrlโ
Server url hosting Beacon Node APIs to fetch weak subjectivity state. Fetch latest finalized by default, else set --wssCheckpoint
type: string
--checkpointStateโ
File path or url to finalized checkpoint state to start syncing from
type: string
--wssCheckpointโ
Start beacon node off a state at the provided weak subjectivity checkpoint, to be supplied in <blockRoot>:<epoch> format. For example, 0x1234:100 will sync and start off from the weak subjectivity state at checkpoint of epoch 100 with block root 0x1234.
type: string
--forceCheckpointSyncโ
Force syncing from checkpoint state even if db state is within weak subjectivity period. This helps to avoid long sync times after node has been offline for a while.
type: boolean
--ignoreWeakSubjectivityCheckโ
Ignore the checkpoint sync state failing the weak subjectivity check. This is relevant in testnets where the weak subjectivity period is too small for even few epochs of non finalization causing last finalized to be out of range. This flag is not recommended for mainnet use.
type: boolean
--persistNetworkIdentityโ
Whether to reuse the same peer-id across restarts. Validator custody requires custody group count to persist relative to a given ENR. Setting to false will reset ENR and validator custody requirements on restarts.
type: boolean
default: true
--privateโ
Do not send implementation details over p2p identify protocol, and in builder and execution engine requests
type: boolean
--validatorMonitorLogsโ
Log validator monitor events as info.
type: boolean
--disableLightClientServerโ
Disable light client server.
type: boolean
--logLevelโ
Logging verbosity level for emitting logs to terminal
type: string
choices: "error", "warn", "info", "verbose", "debug", "trace"
default: "info"
--logFileโ
Path to output all logs to a persistent log file, use 'none' to disable
type: string
--logFileLevelโ
Logging verbosity level for emitting logs to file
type: string
choices: "error", "warn", "info", "verbose", "debug", "trace"
default: "debug"
--logFileDailyRotateโ
Daily rotate log files, set to an integer to limit the file count, set to 0 (zero) to disable rotation
type: number
default: 5
--restโ
Enable/disable HTTP API
type: boolean
default: true
--rest.namespaceโ
Pick namespaces to expose for HTTP API. Set to 'all' (or '*') to enable all namespaces
type: string[]
choices: "beacon", "config", "debug", "events", "lightclient", "lodestar", "node", "proof", "validator", "*", "all"
default: ["beacon","config","debug","events","node","validator","lightclient"]
--rest.corsโ
Configures the Access-Control-Allow-Origin CORS header for HTTP API. Use 'all' to allow all origins
type: string
default: "*"
--rest.addressโ
Set host for HTTP API
type: string
default: "127.0.0.1"
--rest.portโ
Set port for HTTP API
type: number
default: 9596
--rest.swaggerUIโ
Enable Swagger UI for API exploration at http://{address}:{port}/documentation
type: boolean
default: true
--suggestedFeeRecipientโ
Specify fee recipient default for collecting the EL block fees and rewards (a hex string representing 20 bytes address: ^0x[a-fA-F0-9]{40}$). It would be possible (WIP) to override this per validator key using config or key manager API. Only used post merge.
type: string
default: "0x0000000000000000000000000000000000000000"
--emitPayloadAttributesโ
Flag to SSE emit execution payloadAttributes before every slot
type: boolean
default: false
--serveHistoricalStateโ
Enable regenerating finalized state to serve historical data. Fetching this data is expensive and may affect validator performance.
type: boolean
--chain.archiveStateEpochFrequencyโ
Minimum number of epochs between archived states
type: number
default: 1024
--chain.archiveDataEpochsโ
Number of epochs to retain finalized blobs/columns (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS/MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS)
type: number
--chain.pruneHistoryโ
Prune historical blocks and state
type: boolean
--execution.urlsโ
Urls to execution client engine API
type: string[]
default: [ "http://localhost:8551" ]
--execution.timeoutโ
Timeout in milliseconds for execution engine API HTTP client
type: number
default: 12000
--execution.retriesโ
Number of retries when calling execution engine API
type: number
default: 2
--execution.retryDelayโ
Delay time in milliseconds between retries when retrying calls to the execution engine API
type: number
default: 2000
--execution.engineMockโ
Set the execution engine to mock mode (development only)
type: boolean
--jwtSecretโ
File path to a shared hex-encoded jwt secret which will be used to generate and bundle HS256 encoded jwt tokens for authentication with the EL client's rpc server hosting engine apis. Secret to be exactly same as the one used by the corresponding EL client.
type: string
--jwtIdโ
An optional identifier to be set in the id field of the claims included in jwt tokens used for authentication with EL client's rpc server hosting engine apis
type: string
--builderโ
An alias for --builder.selection default for the builder flow, ignored if --builder.selection is explicitly provided
type: boolean
--builder.urlโ
Url hosting the builder API
type: string
default: "http://localhost:8661"
--builder.timeoutโ
Timeout in milliseconds for builder API HTTP client
type: number
default: 12000
--builder.faultInspectionWindowโ
Window to inspect missed slots for enabling/disabling builder circuit breaker
type: number
--builder.allowedFaultsโ
Number of missed slots allowed in the faultInspectionWindow for builder circuit
type: number
--metricsโ
Enable the Prometheus metrics HTTP server
type: boolean
default: false
--metrics.portโ
Listen TCP port for the Prometheus metrics HTTP server
type: number
default: 5064
--metrics.addressโ
Listen address for the Prometheus metrics HTTP server
type: string
default: "127.0.0.1"
--monitoring.endpointโ
Enables monitoring service for sending clients stats to the specified endpoint of a remote service (e.g. beaconcha.in)
type: string
--monitoring.intervalโ
Interval in milliseconds between sending client stats to the remote service
type: number
default: 60000
--discv5โ
Enable discv5
type: boolean
default: true
--listenAddressโ
The IPv4 address to listen for p2p UDP and TCP connections
type: string
default: "0.0.0.0"
--portโ
The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort flag.
type: number
default: 9000
--discoveryPortโ
The UDP port that discovery will listen on. Defaults to port
type: number
default: port
--listenAddress6โ
The IPv6 address to listen for p2p UDP and TCP connections
type: string
default: "::"
--port6โ
The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag.
type: number
default: 9000
--discoveryPort6โ
The UDP port that discovery will listen on. Defaults to port6
type: number
default: port6
--bootnodesโ
Bootnodes for discv5 discovery
type: string[]
default: [ "[]" ]
--targetPeersโ
The target connected peers. Above this number peers will be disconnected
type: number
default: 200
--subscribeAllSubnetsโ
Subscribe to all subnets regardless of validator count
type: boolean
default: false
--disablePeerScoringโ
Disable peer scoring, used for testing on devnets
type: boolean
default: false
--mdnsโ
Enable mdns local peer discovery
type: boolean
default: false
--enr.ipโ
Override ENR IP entry
type: string
--enr.tcpโ
Override ENR TCP entry
type: number
--enr.udpโ
Override ENR UDP entry
type: number
--enr.ip6โ
Override ENR IPv6 entry
type: string
--enr.tcp6โ
Override ENR (IPv6-specific) TCP entry
type: number
--enr.udp6โ
Override ENR (IPv6-specific) UDP entry
type: number
--natโ
Allow configuration of non-local addresses
type: boolean
--keymanagerโ
Enable key manager API server
type: boolean
--keymanager.authโ
Enable token bearer authentication for key manager API server
type: boolean
default: true
--keymanager.tokenFileโ
Path to file containing bearer token used for key manager API authentication
type: string
--keymanager.portโ
Set port for key manager API
type: number
default: 5062
--keymanager.addressโ
Set host for key manager API
type: string
default: "127.0.0.1"
--keymanager.corsโ
Configures the Access-Control-Allow-Origin CORS header for key manager API. Use 'all' to allow all origins
type: string
default: "*"
--beaconNodesโ
Addresses to connect to BeaconNode
type: string[]
default: [ "http://127.0.0.1:9596" ]
--forceโ
Open validators even if there's a lockfile. Use with caution
type: boolean
--graffitiโ
Specify your custom graffiti to be included in blocks (plain UTF8 text, 32 characters max)
type: string
--proposerSettingsFileโ
A yaml file to specify detailed default and per validator public key customized proposer configs. PS: This feature and its format is in alpha and subject to change
type: string
--strictFeeRecipientCheckโ
Enable strict checking of the validator's feeRecipient with the one returned by engine
type: boolean
--defaultGasLimitโ
Suggested gas limit to the engine/builder for building execution payloads. Only used post merge.
type: number
default: 60000000
--builder.selectionโ
Builder block selection strategy default, maxprofit, builderalways, builderonly, executionalways, or executiononly
type: string
default: "executiononly"
--builder.boostFactorโ
Percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if --builder.selection is set to anything other than maxprofit
type: string
default: "100"
--broadcastValidationโ
Validations to be run by beacon node for the signed block prior to publishing
type: string
default: "gossip"
--blindedLocalโ
Request fetching local block in blinded format for produceBlockV3
type: boolean
default: false
--importKeystoresโ
Path(s) to a directory or single file path to validator keystores, i.e. Launchpad validators
type: string[]
default: [ "./keystores/*.json" ]
--importKeystoresPasswordโ
Path to a file with password to decrypt all keystores from importKeystores option
type: string
default: "./password.txt"
--doppelgangerProtectionโ
Enables Doppelganger protection
type: boolean
--http.requestWireFormatโ
Wire format to use in HTTP requests to beacon node. Can be one of json or ssz
type: string
default: "json"
--http.responseWireFormatโ
Preferred wire format for HTTP responses from beacon node. Can be one of json or ssz
type: string
default: "ssz"
--externalSigner.urlโ
URL to connect to an external signing server
type: string
--externalSigner.pubkeysโ
List of validator public keys used by an external signer. May also provide a single string of comma-separated public keys
type: string[]
--externalSigner.fetchโ
Fetch the list of public keys to validate from an external signer. Cannot be used in combination with --externalSigner.pubkeys
type: boolean
--externalSigner.fetchIntervalโ
Interval in milliseconds between fetching the list of public keys from external signer, once per epoch by default
type: number
--distributedโ
Enables specific features required to run as part of a distributed validator cluster
type: boolean
--genesisEth1Hashโ
If present it will create genesis with this eth1 hash.
type: string
--genesisValidatorsโ
If present it will create genesis with interop validators and start chain.
type: number
default: 8
--startValidatorsโ
Start interop validators in inclusive range(s) with notation '0..7'
type: string[]
--genesisTimeโ
genesis_time to initialize interop genesis state
type: number
default: now
--resetโ
To delete chain and validator directories
type: boolean
--dumpTestnetFilesโ
Dump testnet files and exit
type: string