Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 6 additions & 119 deletions beacon_chain/conf.nim
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,10 @@ export
declareGauge network_name, "network name", ["name"]

const
# TODO: How should we select between IPv4 and IPv6
# Maybe there should be a config option for this.
defaultAdminListenAddress* = (static parseIpAddress("127.0.0.1"))
defaultSigningNodeRequestTimeout* = 60
defaultBeaconNode* = "http://127.0.0.1:" & $defaultEth2RestPort
defaultBeaconNodeUri* = parseUri(defaultBeaconNode)
defaultGasLimit* = 60_000_000
defaultAdminListenAddressDesc* = $defaultAdminListenAddress
defaultBeaconNodeDesc = $defaultBeaconNode

when defined(windows):
Expand Down Expand Up @@ -408,21 +404,7 @@ type
defaultValue: 0
name: "stop-at-synced-epoch" .}: uint64

metricsEnabled* {.
desc: "Enable the metrics server"
defaultValue: false
name: "metrics" .}: bool

metricsAddress* {.
desc: "Listening address of the metrics server"
defaultValue: defaultAdminListenAddress
defaultValueDesc: $defaultAdminListenAddressDesc
name: "metrics-address" .}: IpAddress

metricsPort* {.
desc: "Listening HTTP port of the metrics server"
defaultValue: 8008
name: "metrics-port" .}: Port
metrics* {.flatten.}: MetricsConf

statusBarEnabled* {.
posixOnly
Expand Down Expand Up @@ -494,51 +476,9 @@ type
desc: "The number of seconds to keep recently accessed states in memory"
name: "rest-statecache-ttl" .}: Natural

restRequestTimeout* {.
defaultValue: 0
defaultValueDesc: "infinite"
desc: "The number of seconds to wait until complete REST request " &
"will be received"
name: "rest-request-timeout" .}: Natural

restMaxRequestBodySize* {.
defaultValue: 16_384
desc: "Maximum size of REST request body (kilobytes)"
name: "rest-max-body-size" .}: Natural

restMaxRequestHeadersSize* {.
defaultValue: 128
desc: "Maximum size of REST request headers (kilobytes)"
name: "rest-max-headers-size" .}: Natural
## NOTE: If you going to adjust this value please check value
## ``ClientMaximumValidatorIds`` and comments in
## `spec/eth2_apis/rest_types.nim`. This values depend on each other.

keymanagerEnabled* {.
desc: "Enable the REST keymanager API"
defaultValue: false
name: "keymanager" .}: bool

keymanagerPort* {.
desc: "Listening port for the REST keymanager API"
defaultValue: defaultEth2RestPort
defaultValueDesc: $defaultEth2RestPortDesc
name: "keymanager-port" .}: Port

keymanagerAddress* {.
desc: "Listening port for the REST keymanager API"
defaultValue: defaultAdminListenAddress
defaultValueDesc: $defaultAdminListenAddressDesc
name: "keymanager-address" .}: IpAddress

keymanagerAllowedOrigin* {.
desc: "Limit the access to the Keymanager API to a particular hostname " &
"(for CORS-enabled clients such as browsers)"
name: "keymanager-allow-origin" .}: Option[string]
request* {.flatten.}: RequestConf

keymanagerTokenFile* {.
desc: "A file specifying the authorization token required for accessing the keymanager API"
name: "keymanager-token-file" .}: Option[InputFile]
keymanager* {.flatten.}: KeymanagerConf

lightClientDataServe* {.
desc: "Serve data for enabling light clients to stay in sync with the network"
Expand Down Expand Up @@ -957,23 +897,6 @@ type
desc: "A directory containing validator keystore passwords"
name: "secrets-dir" .}: Option[InputDir]

restRequestTimeout* {.
defaultValue: 0
defaultValueDesc: "infinite"
desc: "The number of seconds to wait until complete REST request " &
"will be received"
name: "rest-request-timeout" .}: Natural

restMaxRequestBodySize* {.
defaultValue: 16_384
desc: "Maximum size of REST request body (kilobytes)"
name: "rest-max-body-size" .}: Natural

restMaxRequestHeadersSize* {.
defaultValue: 64
desc: "Maximum size of REST request headers (kilobytes)"
name: "rest-max-headers-size" .}: Natural

# Same option as appears in Lighthouse and Prysm
# https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html
# https://github.com/prysmaticlabs/prysm/pull/10312
Expand All @@ -986,47 +909,11 @@ type
defaultValue: defaultGasLimit
name: "suggested-gas-limit" .}: uint64

keymanagerEnabled* {.
desc: "Enable the REST keymanager API"
defaultValue: false
name: "keymanager" .}: bool

keymanagerPort* {.
desc: "Listening port for the REST keymanager API"
defaultValue: defaultEth2RestPort
defaultValueDesc: $defaultEth2RestPortDesc
name: "keymanager-port" .}: Port

keymanagerAddress* {.
desc: "Listening port for the REST keymanager API"
defaultValue: defaultAdminListenAddress
defaultValueDesc: $defaultAdminListenAddressDesc
name: "keymanager-address" .}: IpAddress

keymanagerAllowedOrigin* {.
desc: "Limit the access to the Keymanager API to a particular hostname " &
"(for CORS-enabled clients such as browsers)"
name: "keymanager-allow-origin" .}: Option[string]

keymanagerTokenFile* {.
desc: "A file specifying the authorizition token required for accessing the keymanager API"
name: "keymanager-token-file" .}: Option[InputFile]
request* {.flatten.}: RequestConf

metricsEnabled* {.
desc: "Enable the metrics server (BETA)"
defaultValue: false
name: "metrics" .}: bool

metricsAddress* {.
desc: "Listening address of the metrics server (BETA)"
defaultValue: defaultAdminListenAddress
defaultValueDesc: $defaultAdminListenAddressDesc
name: "metrics-address" .}: IpAddress
keymanager* {.flatten.}: KeymanagerConf

metricsPort* {.
desc: "Listening HTTP port of the metrics server (BETA)"
defaultValue: 8108
name: "metrics-port" .}: Port
metrics* {.flatten.}: MetricsBetaConf

graffiti* {.
desc: "The graffiti value that will appear in proposed blocks. " &
Expand Down
6 changes: 3 additions & 3 deletions beacon_chain/nimbus_beacon_node.nim
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ proc init*(
config.restAllowedOrigin,
validateBeaconApiQueries,
nimbusAgentStr,
config)
config.request)
else:
nil

Expand Down Expand Up @@ -1051,7 +1051,7 @@ proc init*(
validatorPool = newClone(ValidatorPool.init(
slashingProtectionDB, config.doppelgangerDetection))

keymanagerInitResult = initKeymanagerServer(config, restServer)
keymanagerInitResult = initKeymanagerServer(config.keymanager, config.request, restServer)
keymanagerHost = if keymanagerInitResult.server != nil:
newClone KeymanagerHost.init(
validatorPool,
Expand Down Expand Up @@ -2876,7 +2876,7 @@ proc doRunBeaconNode(
# we disable piggy-backing on other metrics here.
setSystemMetricsAutomaticUpdate(false)

node.metricsServer = waitFor(config.initMetricsServer()).valueOr:
node.metricsServer = waitFor(initMetricsServer(config.metrics)).valueOr:
return

when not defined(windows):
Expand Down
Loading
Loading