Ethereum 2.0

BeaconNode

Syntax
Type
Description
Default

string

Network to join

string

Ethereum 2.0 client to use

array

Ethereum 1 JSON RPC endpoints

array

hostnames to whitelist for RPC access

*

array

domains from which to accept cross origin requests

*

bool

Enable REST API server

false

string

REST API server host

0.0.0.0

number

REST API server port

5051

bool

Enables JSON RPC server

false

string

JSON RPC server host

0.0.0.0

number

JSON RPC server port

4000

bool

GRPC gateway server

false

string

GRPC gateway server host

0.0.0.0

number

GRPC gateway server port

3500

number

p2p and discovery port

9000

string

k8s secret name that holds tls.key and tls.crt

string

logging verbosity level

info

object

Node compute and storage resources

network

network is Ethereum 2.0 network to join and sync its beacon chain.

client

client is the Ethereum 2.0 client to use.

client possible values are teku,prysm,lighthouse, and nimbus.

eth1Endpoints

eth1Endpoints is array of Ethereum 1 JSON RPC endpoints.

prysm, teku, and lighthouse clients support multiple endpoints in eth1Endpoints.

nimbus client supports only 1 endpoint in eth1Endpoints.

hosts

hosts is a list of host names to whitelist for RPC access (server enforced).

corsDomains

corsDomains is a list of domains from which to accept cross-origin requests (browser enforced).

rest

rest enables REST API server.

REST API server is only supported by teku and lighthouse.

restHost

restHost is the REST API server host.

restPort

restPort is the REST API server port.

rpc

rpc enables JSON RPC server.

JSON RPC server is only supported by nimbus and prysm.

rpcHost

rpcHost is the JSON RPC server host.

rpcPort

rpcPort is the JSON RPC server port.

grpc

grpc enables GRPC gateway server.

GRPC gateway is only supported by prysm client.

grpcHost

grpcHost is the GRPC gateway server host.

grpcPort

grpcPort is the GRPC gateway server port.

p2pPort

p2pPort is the p2p and discovery port.

certSecretName

certSecretName is k8s secret name that holds TLS private key in data field called tls.key and TLS certificate in data field called tls.crt.

certSecretName is supported only by prysm client.

logging

logging is logging verbosity level.

Different levels are supported by different Ethereum 2.0 beacon node clients.

Logging/Client
Teku
Lighthouse
Prysm
Nimbus

off

✔️

fatal

✔️

✔️

✔️

none

✔️

notice

✔️

error

✔️

✔️

✔️

✔️

warn

✔️

✔️

✔️

✔️

info

✔️

✔️

✔️

✔️

debug

✔️

✔️

✔️

✔️

trace

✔️

✔️

✔️

all

✔️

critical

✔️

panic

✔️

resources

resources allocates compute and storage resources to the node.

resources object has the following fields:

Syntax
Type
Description
Defalt

cpu

string

number of cpu cores this node requires

4

cpuLimit

string

number of cpu cores this node is limited to

8

memory

string

memory this node requires

8Gi

memoryLimit

string

memory this node is limited to

16Gi

storage

string

disk space this node requires

200Gi

storageClass

string

Node volume storage class

Cluster's default storage class will be used as defined by cluster admin or cloud provider

memory and storage requests and limits must use the pattern ^[1-9][0-9]*[KMGTPE]i$ for example 1500Mi, 30Gi, and 1Ti.

cpu requests and limits must use the pattern ^[1-9][0-9]*m?$ for example 1000m (which is equal to 1 core), 1500m which is 1.5 core, 2 cores, and 4 cores.

cpuLimit can't be less than cpu.

memoryLimit can't be less than or equal to memory.

storageClass field is immutable, it cannot be changed after creation.

Validator

Syntax
Type
Description
Default

string

Network to validate blocks for

string

Ethereum 2.0 client to use

array

List of beacon node endpoints

string

k8s secret name that holds tls.crt

string

Text to include in proposed blocks

Powered by Kotal

string

Wallet password kubernetes secret

array

Validator keystores

string

logging verbosity level

info

object

Validator compute and storage resources

network

network is the Network to validate blocks for.

client

client is the Ethereum 2.0 client to use.

beaconEndpoints

beaconEndpoints is a list of beacon node endpoints.

lighthouse is the only client that supports multiple endpoints. All other clients supports only a single endpoint.

certSecretName

certSecretName is k8s secret name that holds TLS certificate in data field called tls.crt.

certSecretName is supported only by prysm client.

graffiti

graffiti is the text to include in proposed blocks.

walletPasswordSecretName

walletPasswordSecretName is prysm wallet password kubernetes secret.

walletPasswordSecretName is supported only by prysm client.

Wallet password secret must be deployed before deploying the validator.

Wallet password secret must contain the password in key named password.

# create k8s secret from password value
kubectl create secret wallet-password --from-literal=password=<actual-password>
# create k8s secret from password file
kubectl create secret wallet-password --from-file=password=<password-file-path>

keystores

keystores is array of keystore objects.

Syntax
Type
Description

secretName

string

kubernetes secret name holding keystore and password

publicKey

string

Validator public key in hexadecimal

Validator keystore public key is required in case of client: lighthouse

Keystore secret must be deployed before deploying the validator.

Keystore secret must contain the BLS12-381 keystore JSON file in data field key called keystore key, and password in password key.

# create k8s secret from keystore and password file
kubectl create secret my-validator --from-file=keystore=/path/to/keystore.json --from-file=password=/path/to/password.txt

logging

logging is logging verbosity level.

Different levels are supported by different Ethereum 2.0 beacon node clients.

Teku validator client doesn't support logging. Verbosity level will be ignored 🙈

Logging/Client
Lighthouse
Prysm
Nimbus

off

fatal

✔️

✔️

none

✔️

notice

✔️

error

✔️

✔️

✔️

warn

✔️

✔️

✔️

info

✔️

✔️

✔️

debug

✔️

✔️

✔️

trace

✔️

✔️

all

critical

✔️

panic

✔️

resources

resources allocates compute and storage resources to the node.

resources object has the following fields:

Syntax
Type
Description
Defalt

cpu

string

number of cpu cores this node requires

4

cpuLimit

string

number of cpu cores this node is limited to

8

memory

string

memory this node requires

8Gi

memoryLimit

string

memory this node is limited to

16Gi

storage

string

disk space this node requires

200Gi

memory and storage requests and limits must use the pattern ^[1-9][0-9]*[KMGTPE]i$ for example 1500Mi, 30Gi, and 1Ti.

cpu requests and limits must use the pattern ^[1-9][0-9]*m?$ for example 1000m (which is equal to 1 core), 1500m which is 1.5 core, 2 cores, and 4 cores.

cpuLimit can't be less than cpu.

memoryLimit can't be less than or equal to memory.

Last updated