beacon
CLI Command
Run a beacon chain node
Examples
Run a beacon chain node and connect to the holesky testnet
./lodestar beacon --network holesky
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", "holesky", "chiado", "ephemery", "mekong", "dev"
default: "mainnet"
--paramsFile
Network configuration file
type: string
--rcConfig
RC file to supplement command line args, accepted formats: .yml, .yaml, .json
type: string
--terminal-total-difficulty-override
Terminal PoW block TTD override
type: string
--terminal-block-hash-override
Terminal PoW block hash override
type: string
--terminal-block-hash-epoch-override
Terminal PoW block hash override activation epoch
type: string
--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
Set a 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
type: boolean
--private
Do not send implementation details over p2p identify protocol and in builder, execution engine and eth1 requests
type: boolean
--validatorMonitorLogs
Log validator monitor events as info. This requires metrics to be enabled.
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 '*' to enable all namespaces
type: string[]
choices: "beacon", "config", "debug", "events", "lightclient", "lodestar", "node", "proof", "validator", "*"
default: ["beacon","config","debug","events","node","validator","lightclient"]
--rest.cors
Configures the Access-Control-Allow-Origin CORS header for HTTP API
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
--chain.archiveBlobEpochs
Number of epochs to retain finalized blobs (minimum of MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS)
type: number
--eth1
Whether to follow the eth1 chain
type: boolean
default: true
--eth1.providerUrls
Urls to Eth1 node with enabled rpc. If not explicitly provided and execution endpoint provided via execution.urls, it will use execution.urls. Otherwise will try connecting on the specified default(s)
type: string[]
default: [ "http://localhost:8545" ]
--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 builder interface
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
--port6
The TCP/UDP port to listen on. The UDP port can be modified by the --discoveryPort6 flag.
type: number
default: 9090
--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: 100
--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