validator-client
, vc
Run a validator client that connects to a remote beacon node.
beacon-node-api-endpoint
, beacon-node-api-endpoints
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --beacon-node-api-endpoint=<ENDPOINT>[,<ENDPOINT>...]...
teku vc --beacon-node-api-endpoint=http://192.138.10.12:5051,http://192.140.11.44:5051
TEKU_BEACON_NODE_API_ENDPOINT=http://192.138.10.12,http://192.140.11.44:5051
beacon-node-api-endpoint: ["http://192.138.10.12","http://192.140.11.44:5051"]
Endpoint of the beacon node's REST API. You can configure multiple beacon nodes by providing a comma-separated list of beacon node API endpoints.
If multiple beacon node endpoints are configured, the first one is used as primary and others as failovers.
This option cannot be used with the sentry beacon nodes early access feature.
The default is http://127.0.0.1:5051
.
beacon-node-ssz-blocks-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --beacon-node-ssz-blocks-enabled=<BOOLEAN>
teku vc --beacon-node-ssz-blocks-enabled=false
TEKU_BEACON_NODE_SSZ_BLOCKS_ENABLED=false
beacon-node-ssz-blocks-enabled: false
Enable or disable the use of SSZ encoding for API requests to the beacon node to create blocks. The default is true
.
config-file
- Syntax
- Example
- Environment variable
teku vc --config-file=<FILE>
teku vc --config-file=/home/me/me_node/config.yaml
TEKU_CONFIG_FILE=/home/me/me_node/config.yaml
Path to the YAML configuration file. The default is none
.
data-base-path
, data-path
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --data-base-path=<PATH>
teku vc --data-base-path=/home/me/me_node
TEKU_DATA_BASE_PATH=/home/me/me_node
data-base-path: "/home/me/me_node"
Path to the Teku base directory for storage. The default directory is OS-dependent:
- macOS:
~/Library/teku
- Unix/Linux:
$XDG_DATA_HOME/teku
if$XDG_DATA_HOME
is set; otherwise~/.local/share/teku
- Windows:
%localappdata%\teku
.
The default Docker image location is /root/.local/share/teku
.
data-validator-path
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --data-validator-path=<PATH>
teku vc --data-validator-path=/home/me/me_validator
TEKU_DATA_VALIDATOR_PATH=/home/me/me_validator
data-validator-path: "/home/me/me_validator"
Path to the validator client data. The default is <data-base-path>/validator
where <data-base-path>
is specified using --data-base-path
.
log-color-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --log-color-enabled[=<BOOLEAN>]
teku vc --log-color-enabled=false
TEKU_LOG_COLOR_ENABLED=false
log-color-enabled: false
Specify whether status and event log messages include a console color display code. The default is true
.
log-destination
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --log-destination=<LOG_DESTINATION>
teku vc --log-destination=CONSOLE
TEKU_LOG_DESTINATION=CONSOLE
log-destination: "CONSOLE"
Specify where to output log information. Valid options are:
BOTH
CONSOLE
DEFAULT_BOTH
FILE
The default is DEFAULT_BOTH
. When using BOTH
or DEFAULT_BOTH
, system updates such as blockchain events are displayed on the console, and errors and other information are logged to a file. Specify the log file with the --log-file
command-line option.
For production systems we recommend using the CONSOLE
or FILE
options to ensure all log information is available in one place.
Use DEFAULT_BOTH
when using a custom Log4J2 configuration file. Any other option applies the custom logging changes on top of its default settings.
log-file
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --log-file=<FILENAME>
teku vc --log-file=teku_2020-01-01.log
TEKU_LOG_FILE=teku_2020-01-01.log
log-file: "teku_2020-01-01.log"
Relative or absolute location, and filename of the log file.
The default directory is OS-dependent:
- macOS:
~/Library/teku/logs
- Unix/Linux:
$XDG_DATA_HOME/teku/logs
if$XDG_DATA_HOME
is set; otherwise~/.local/share/teku/logs
- Windows:
%localappdata%\teku\logs
The default Docker image location is /root/.local/share/teku/logs
.
log-file-name-pattern
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --log-file-name-pattern=<REGEX>
teku vc --log-file-name-pattern=tekuL_%d{yyyy-MM-dd}.log
TEKU_LOG_FILE_NAME_PATTERN=tekuL_%d{yyyy-MM-dd}.log
log-file-name-pattern: "tekuL_%d{yyyy-MM-dd}.log"
Filename pattern to apply when creating log files. The default pattern is teku_%d{yyyy-MM-dd}.log
log-include-events-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --log-include-events-enabled[=<BOOLEAN>]
teku vc --log-include-events-enabled=false
TEKU_LOG_INCLUDE_EVENTS_ENABLED=false
log-include-events-enabled: false
Specify whether to log frequent update events. For example every slot event with validators and attestations. The default is true
.
log-include-validator-duties-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --log-include-validator-duties-enabled[=<BOOLEAN>]
teku vc --log-include-validator-duties-enabled=true
TEKU_LOG_INCLUDE_VALIDATOR_DUTIES_ENABLED=true
log-include-validator-duties-enabled: true
Specify whether to log details of validator event duties. The default is true
.
Logs could become noisy when running many validators.
metrics-categories
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --metrics-categories=<CATEGORY>[,<CATEGORY>...]...
teku vc --metrics-categories=BEACON,JVM,PROCESS
TEKU_METRICS_CATEGORIES=BEACON,JVM,PROCESS
metrics-categories: ["BEACON", "JVM", "PROCESS"]
Categories for which to track metrics. Options are JVM
, PROCESS
, BEACON
, DISCOVERY
, EVENTBUS
, EXECUTOR
, LIBP2P
, NETWORK
, STORAGE
, STORAGE_HOT_DB
, STORAGE_FINALIZED_DB
, REMOTE_VALIDATOR
, VALIDATOR
, VALIDATOR_PERFORMANCE
, VALIDATOR_DUTY
. All but VALIDATOR_DUTY
categories are enabled by default.
When metrics-categories
is used, only the categories specified in this option are enabled (all other categories are disabled).
metrics-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --metrics-enabled[=<BOOLEAN>]
teku vc --metrics-enabled=true
TEKU_METRICS_ENABLED=true
metrics-enabled: true
Set to true
to enable the metrics exporter. The default is false
.
metrics-host-allowlist
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --metrics-host-allowlist=<hostname>[,<hostname>...]... or "*"
teku vc --metrics-host-allowlist=medomain.com,meotherdomain.com
TEKU_METRICS_HOST_ALLOWLIST=medomain.com,meotherdomain.com
metrics-host-allowlist: ["medomain.com", "meotherdomain.com"]
A comma-separated list of hostnames to allow access to the [Teku metrics]. By default, Teku accepts access from localhost
and 127.0.0.1
.
To allow all hostnames, use "*"
. We don't recommend allowing all hostnames for production environments.
metrics-interface
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --metrics-interface=<HOST>
teku vc --metrics-interface=192.168.10.101
TEKU_METRICS_INTERFACE=192.168.10.101
metrics-interface: "192.168.10.101"
Host on which Prometheus accesses Teku metrics. The default is 127.0.0.1
.
metrics-port
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --metrics-port=<PORT>
teku vc --metrics-port=6174
TEKU_METRICS_PORT=6174
metrics-port: 6174
Specifies the port (TCP) on which Prometheus accesses Teku metrics. The default is 8008
.
network
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --network=<NETWORK>
teku vc --network=auto
TEKU_NETWORK=auto
network: "auto"
Predefined network configuration. The default is mainnet
.
Use auto
to fetch the network configuration from the beacon node endpoint directly.
validator-keys
- Syntax
- Example for directory
- Example for file
- Environment variable
- Configuration file
teku vc --validator-keys=<KEY_DIR>:<PASS_DIR> | <KEY_FILE>:<PASS_FILE>[,<KEY_DIR>:<PASS_DIR> | <KEY_FILE>:<PASS_FILE>...]...
teku vc --validator-keys=/home/validator/keys:home/validator/passwords
teku vc --validator-keys=/home/validator/keys/validator_217179e.json:/home/validator/passwords/validator_217179e.txt
TEKU_VALIDATOR_KEYS=/home/validator/keys:home/validator/passwords
validator-keys: "/home/validator/keys:home/validator/passwords"
Directory or file to load the encrypted keystore file(s) and associated password file(s) from. Keystore files must use the .json
file extension, and password files must use the .txt
file extension.
When specifying directories, Teku expects to find identically named keystore and password files. For example validator_217179e.json
and validator_217179e.txt
.
When specifying file names, Teku expects that the files exist.
The path separator is operating system dependent, and should be ;
in Windows rather than :
.
validators-early-attestations-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-early-attestations-enabled[=<BOOLEAN>]
teku vc --validators-early-attestations-enabled=false
TEKU_VALIDATORS_EARLY_ATTESTATIONS_ENABLED=false
validators-early-attestations-enabled: false
Specify whether to use Teku's built-in early attestation production, which creates an attestation once a block is received. The default is true
.
Set this option to false
if running a validator client connected to a load balanced beacon node (including most hosted beacon nodes such as [Infura]), and validator effectiveness is poor.
Delaying attestation production increases the chances of generating a correct attestation when using a load balanced beacon node, but it increases the risk of inclusion delays.
validators-external-signer-keystore
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-keystore=<FILE>
teku vc --validators-external-signer-keystore=teku_client_keystore.p12
TEKU_VALIDATORS_EXTERNAL_KEYSTORE=teku_client_keystore.p12
validators-external-signer-keystore: "teku_client_keystore.p12"
The keystore that Teku presents to the external signer for TLS authentication. Teku can use PKCS12 or JKS keystore types.
Use the PKCS12 keystore type if connecting to Web3Signer.
validators-external-signer-keystore-password-file
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-keystore-password-file=<FILE>
teku vc --validators-external-signer-keystore-password-file=keystore_pass.txt
TEKU_VALIDATORS_EXTERNAL_KEYSTORE_PASSWORD_FILE=keystore_pass.txt
validators-external-signer-keystore-password-file: "keystore_pass.txt"
Password file used to decrypt the keystore.
validators-external-signer-public-keys
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-public-keys=<KEY>[,<KEY>...]
teku vc --validators-external-signer-public-keys=0xa99a...e44c,0xb89b...4a0b
TEKU_VALIDATORS_EXTERNAL_SIGNER_PUBLIC_KEYS=0xa99a...e44c,0xb89b...4a0b
validators-external-signer-public-keys: ["0xa99a...e44c","0xb89b...4a0b"]
List or URL of validator public keys used by an external signer (for example, Web3Signer).
Use the URL to load the public keys from a remote service. For example:
--validators-external-signer-public-keys=http://localhost:9900/api/v1/eth2/publicKeys
Use the value external-signer
to load all public keys managed by the external signer. Teku automatically queries the external signer's public keys endpoint.
--validators-external-signer-public-keys=external-signer
validators-external-signer-slashing-protection-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-slashing-protection-enabled[=<BOOLEAN>]
teku vc --validators-external-signer-slashing-protection-enabled=false
TEKU_VALIDATORS_EXTERNAL_SIGNER_SLASHING_PROTECTION_ENABLED=false
validators-external-signer-slashing-protection-enabled: false
Specify whether to use Teku's built-in slashing protection when using an external signer such as Web3Signer. The default is true
.
Set this option to false
if using the slashing protection implemented by an external signer.
Ensure the external signer has slashing protection enabled before disabling Teku slashing protection, otherwise a validator may get slashed.
Built-in slashing protection can only be disabled for validators using external signers. Validators using Teku to sign blocks and attestations always uses its built-in slashing protection.
validators-external-signer-timeout
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-timeout=<INTEGER>
teku vc --validators-external-signer-timeout=2000
TEKU_VALIDATORS_EXTERNAL_SIGNER_TIMEOUT=2000
validators-external-signer-timeout: 2000
Timeout in milliseconds for requests to the external signer. The default is 5000.
validators-external-signer-truststore
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-truststore=<FILE>
teku vc --validators-external-signer-truststore=websigner_truststore.p12
TEKU_VALIDATORS_EXTERNAL_TRUSTSTORE=websigner_truststore.p12
validators-external-signer-truststore: "websigner_truststore.p12"
PKCS12 or JKS keystore used to trust external signer's self-signed certificate or CA certificate which signs the external signer's certificate.
validators-external-signer-truststore-password-file
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-truststore-password-file=<FILE>
teku vc --validators-external-signer-truststore-password-file=truststore_pass.txt
TEKU_VALIDATORS_EXTERNAL_TRUSTSTORE_PASSWORD_FILE=truststore_pass.txt
validators-external-signer-truststore-password-file: "truststore_pass.txt"
Password file used to decrypt the keystore.
validators-external-signer-url
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-external-signer-url=<URL>
teku vc --validators-external-signer-url=http://localhost:9000
TEKU_VALIDATORS_EXTERNAL_SIGNER_URL=http://localhost:9000
validators-external-signer-url: "http://localhost:9000"
URL on which the external signer (for example, Web3Signer) is running.
validators-graffiti
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-graffiti=<STRING>
teku vc --validators-graffiti="Teku validator"
TEKU_VALIDATORS_GRAFFITI="Teku validator"
validators-graffiti: "Teku validator"
Graffiti to add when creating a block. Gets converted to bytes and padded to Bytes32.
The same graffiti is used for all validators started with this beacon node.
validators-graffiti-file
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-graffiti-file=<FILE>
teku vc --validators-graffiti-file=/Users/me/mynode/graffiti.txt
TEKU_VALIDATORS_GRAFFITI_FILE=/Users/me/mynode/graffiti.txt
validators-graffiti-file: "/Users/me/mynode/graffiti.txt"
File containing the validator graffiti to add when creating a block. The file content is converted to bytes
and padded to Bytes32
. The same graffiti is used for all validators started with this beacon node.
You can overwrite the file while Teku is running to update the graffiti.
This option takes precedence over --validators-graffiti
.
validators-keystore-locking-enabled
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-keystore-locking-enabled=<BOOLEAN>
teku vc --validators-keystore-locking-enabled=true
TEKU_VALIDATORS_KEYSTORE_LOCKING_ENABLED=true
validators-keystore-locking-enabled: true
Locks the keystore files listed in --validator-keys
. The default is true
.
Attempts to lock all keystores in a directory if a directory is specified in --validator-keys
.
validators-performance-tracking-mode
- Syntax
- Example
- Environment variable
- Configuration file
teku vc --validators-performance-tracking-mode=<STRING>
teku vc --validators-performance-tracking-mode=LOGGING
TEKU_VALIDATORS_PERFORMANCE_TRACKING_MODE=LOGGING
validators-performance-tracking-mode: LOGGING
Set the validator performance tracking strategy. Valid options are LOGGING
, METRICS
, ALL
, and NONE
. The default is ALL
.
When LOGGING
is enabled, attestation and block performance is reported as log messages. When METRICS
is enabled, attestation and block performance is reported using metrics in the VALIDATOR_PERFORMANCE
metrics category.