Ethereum
Node
string
kubernetes node label key used to distribute ethereum nodes
topology.kubernetes.io/zone
network
network is the public network name to join, like rinkeby.
network can't be provided in private networks, where .spec.genesis is not null.
network can't be updated (immutable).
highly available
highlyAvailable controls if Ethereum nodes will be scheduled on different Kubernetes nodes.
topology key
topologyKey is Kubernetes node label key used to distribute ethereum nodes pods on different kubernetes nodes.
bootnodes
bootnodes is ethereum node URLs for p2p network discovery and bootstraping.
bootnodes accepts ethereum node URL enodeURL or a reference to kotal Node in the form of name.namespace where namespace is optional if referenced node is in the same namespace.
Ethereum clients have hardcoded bootnodes for public main and test networks. bootnodes will override these bootnodes.
client
Support for OpenEthereum (parity) client has been deprecated. OpenEthereum team is working with Erigon on a smooth transition path for users. More information can be found here
client is the Ethereum client name powering the node.
client possible values are besu, geth, nethermind.
Only besu client can be used if network consensus is ibft2.
Only besu can be used in fixed difficulty proof of work networks, where spec.genesis.ethash.fixedDifficulty is not null.
coinbase
coinbase is ethereum account to which mining rewards are paid.
coinbase is required if the node is mining miner: true.
corsDomains
corsDomains is a list of domains from which to accept cross-origin requests (browser enforced).
Default value * will be used if HTTP RPC server is enabled rpc: true or web socket server is enabled ws: true or graphQL server is enabled graphql: true.
graphql
graphql enables the GraphQL server.
Nethermind client doesn't support GraphQL.
Geth (Go-Ethereum) GraphQL server can be used only if RPC is enabled as of geth v1.9.19 release notes
graphqlPort
graphqlPort GraphQL server listening port.
The default value 8547 will be used if the graphQL server is enabled graphql: true.
hosts
hosts is a list of host names to whitelist for RPC access (server enforced).
import
import is the ethereum account to import. Only for nodes running with geth or nethermind.
During account creation, it will be encrypted with the password, and during import it will be unlocked using the same password.
Nodes that import accounts can't enable HTTP RPC server, web socket server, or GraphQL server to prevent funds drainage if exposed to the internet.
Account must be imported if the node is running with geth or nethermind clients wants to be a signer or miner.
privateKeySecretName
string
name of the k8s secret holding account private key in hexadecimal (without 0x) in data field called key
passwordSecretName
string
name of the k8s secret holding encryption secret in data field called password
logging
logging is Ethereum node logging verbosity level.
logging possible values are off, fatal, error, warn, debug, info, trace and all.
Different clients support different logging vrbosity levels as shown in the following table:
off
โ๏ธ
โ๏ธ
โ
fatal
โ๏ธ
โ
โ
error
โ๏ธ
โ๏ธ
โ๏ธ
warn
โ๏ธ
โ๏ธ
โ๏ธ
debug
โ๏ธ
โ๏ธ
โ๏ธ
info
โ๏ธ
โ๏ธ
โ๏ธ
trace
โ๏ธ
โ
โ๏ธ
all
โ๏ธ
โ๏ธ
โ
miner
miner enables node mining or signing blocks.
nodePrivateKeySecretName
nodePrivateKeySecretName is the node private key.
nodePrivateKeySecretName is required if the node is a boot node bootnode: true, or if besu node with client: besu is a signer in proof of authority clique network or validator in ibft2 network.
p2pPort
p2pPort is node p2p port for communication (TCP) and discovery (UDP).
resources
resources allocates compute and storage resources to the node.
cpu
string
number of cpu cores this node requires
2 in private, 4 in public
cpuLimit
string
number of cpu cores this node is limited to
3 in private, 6 in public
memory
string
memory this node requires
4Gi in private, 8Gi in public
memoryLimit
string
memory this node is limited to
8Gi in private, 16Gi in public
storage
string
disk space this node requires
100Gi in private, 6Ti in mainnet with full sync, 750Gi in mainnet wit fast sync, 25Gi in public test networks
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), 1500m, 2, and 4.
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.
rpc
rpc enables the HTTP RPC server.
rpcPort
rpcPort is the HTTP RPC server listening port.
Default value 8545 will be used if the HTTP RPC server is enabled with rpc: true.
rpcAPI
rpcAPI is a list of RPC services to enable.
Default value ["web3", "eth", "net] will be used if HTTP RPC server is enabeld with rpc: true.
staticNodes
staticNodes is a set of trusted ethereum nodes to maintain connection to.
staticNodes accepts ethereum node URL enodeURL or a reference to kotal Node in the form of name.namespace where namespace is optional if referenced node is in the same namespace.
syncMode
Nethermind client removed support for beam sync which was activated by syncMode: light.
syncMode is Blockchain synchronization mode.
syncMode possible values are light, full, snap or fast.
light and snap sync modes are only supported by go-ethereum client.
ws
ws enables the web socket server.
wsPort
wsPort is the web socket server listening port.
The default value 8546 is used if the web socket server is enabled with ws: true.
wsAPI
wsAPI is a list of rpc services to enable.
the default value ["web3", "eth", "net] will be used if the web socket server is enabeld with ws: true.
genesis
genesis is the genesis block configuration.
Genesis block configuration genesis is required in private networks.
chainId
chainId is the chain id value used in transaction signature to prevent transactions reply eip155
chainId is required.
chainId can't reuse existing public network chain id to avoid transaction replay.
mainnet
1
ropsten
3
rinkeby
4
goerli
5
kotti
6
ethereum classic
61
Mordor
63
development
2018
networkId
id is the network id used for p2p communications between network nodes in private networks.
id is required in private networks.
id can't be provided while joining a public network.
id can't be updated (immutable).
coinbase
coinbase is the beneficiary (ethereum address) of mining reward.
coinbase is optional.
difficulty
difficulty is the difficulty of the genesis block.
difficulty is optional.
mixHash
mixHash is combined with the nonce to prove the effort spent to create a block.
mixHash is optional.
gasLimit
gasLimit is the total gas limit for all transactions in a block.
gasLimit is optional.
nonce
nonce is a random number used in block computation.
nonce is optional.
timestamp
timestamp is block creation date.
timestamp is optional.
forks
forks is an object, where the key is fork name and the value is the block number at which to activate this fork.
forks is optional.
if forks is missing, all forks will be activated at block 0 (genesis block) except DAO.
Later forks like muirglacier can't be activated before earlier forks like homestead. They must be ordered as in the following table:
accounts
accounts is an array of accounts to fund or store code.
accounts is optional.
accounts is recommended for networks where signers or validators are not rewarded with eth.
a single account has no defaults.
address
string
ethereum address
balance
string
account balance in hexadecimal
code
string
bytecode in hexadecimal
storage
map
key is the storage location in hexadecimal, and value in hexadecimal is the storage value
ethash
ethash is Proof of Work consensus engine configuration.
ethash is optional.
ethash can be set only in proof of work private networks.
ethash.fixedDifficulty has no default value.
ethash.fixedDifficulty is only supported by Hyperledger Besu Client client: besu
fixedDifficulty
number
fixed difficulty used in block computation
clique
clique is Proof of Authority clique consensus engine configuration.
clique is optional.
clique can be set only in proof of authority clique private networks.
At least one signer in clique.signers is required.
blockPeriod
number
block time in seconds
15
epochLength
number
number of blocks after which to reset all votes
1000
signers
Array
array of ethereum addresses
ibft2
ibft2 is IBFT2 engine configuration.
ibft2 is optional.
ibft2 can be set only in IBFT2 private networks.
At least one validator in ibft2.validators is required.
blockPeriod
number
block time in seconds
15
epochLength
number
number of blocks after which to reset all votes
1000
validators
array
array of ethereum addresses
requestTimeout
number
timeout for each consensus round in seconds
10
messageQueueLimit
number
message queue limit
1000
duplicateMessageLimit
number
duplicate messages limit
100
futureMessagesLimit
number
future messages buffer limit
1000
futureMessagesMaxDistance
number
maximum height from current chain height for buffering future messages
10
Last updated
Was this helpful?