beacon CLI Command
Run a beacon chain node
Examplesโ
Run a beacon chain node and connect to the hoodi testnet
./lodestar beacon --network hoodi
beacon 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
--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}$) in case validator fails to update for a validator index before calling produceBlock.
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โ
Enable external builder
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
--metrics.portโ
Listen TCP port for the Prometheus metrics HTTP server
type: number
default: 8008
--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
--directPeersโ
Direct peers for GossipSub mesh. These peers maintain permanent connections without GRAFT/PRUNE. Supports multiaddr with peer ID (e.g., /ip4/192.168.1.1/tcp/9000/p2p/16Uiu2HAmKLhW7...) or ENR (e.g., enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOo...). Both peers must configure each other as direct peers for the feature to work properly.
type: string[]
default: [ "[]" ]
--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