Version 22.11.0
This commit is contained in:
parent
69b6c6e738
commit
7dd4718735
87
CHANGELOG.md
87
CHANGELOG.md
|
@ -1,3 +1,90 @@
|
||||||
|
2022-11-30 v22.11.0
|
||||||
|
===================
|
||||||
|
|
||||||
|
Nimbus `v22.11.0` is a `low-urgency` release, bringing the first
|
||||||
|
production-ready version of the [Nimbus validator client][1].
|
||||||
|
The validator client will enable advanced users such as professional
|
||||||
|
institutional operators to take advantage of features such as support
|
||||||
|
for [redundant beacon nodes][2], [enhanced validator privacy][3] and
|
||||||
|
[distributed keystores][4]. All existing users, currently relying on
|
||||||
|
the streamlined stand-alone beacon node setup are not required to take
|
||||||
|
action, as this mode of operation will continue to be supported and
|
||||||
|
improved forever.
|
||||||
|
|
||||||
|
[1]: https://nimbus.guide/validator-client.html
|
||||||
|
[2]: https://nimbus.guide/validator-client-options.html#multiple-beacon-nodes
|
||||||
|
[3]: https://nimbus.guide/validator-client-options.html#sentry-node-setup
|
||||||
|
[4]: https://github.com/status-im/nimbus-eth2/issues/3416
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
* The Nimbus validator client graduates from BETA to production-ready
|
||||||
|
status after numerous improvements and fixes:
|
||||||
|
|
||||||
|
https://nimbus.guide/validator-client.html
|
||||||
|
|
||||||
|
* The Nimbus beacon node is now compatible with validator clients
|
||||||
|
taking advantage of the `/eth/v1/beacon/blinded_blocks` end-point:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4286
|
||||||
|
|
||||||
|
* The validator keystore loading during start-up is now 3x faster:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4301
|
||||||
|
|
||||||
|
* The doppelganger detection will now protect validators added
|
||||||
|
on the fly through the Keymanager API:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4304
|
||||||
|
|
||||||
|
* Fine-tuned internal task scheduling will provide better
|
||||||
|
quality-of-service protections for performing all validator
|
||||||
|
duties in the presence of syncing peers performing large
|
||||||
|
number of concurrent block download requests:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4254
|
||||||
|
|
||||||
|
* The `--optimistic` mode of the beacon node will allow you to
|
||||||
|
stay synced with the network even without an execution layer
|
||||||
|
node:
|
||||||
|
|
||||||
|
https://nimbus.guide/optimistic-sync.html#optimistic-mode
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4262
|
||||||
|
|
||||||
|
Please note that this mode is less secure and intended only
|
||||||
|
for non-critical information retrieval through the Beacon API.
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
* A small risk for missing block proposals was present under heavy
|
||||||
|
forking activity in the network due to potential inclusion of
|
||||||
|
inappropriate attestations in the produced blocks:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4273
|
||||||
|
|
||||||
|
* A new batching approach for the registration of validators in the
|
||||||
|
builder network will prevent the creation of requests of excessive
|
||||||
|
size that might be rejected by the network. This was a problem
|
||||||
|
affecting testnet nodes running with thousands of validators:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4364
|
||||||
|
|
||||||
|
|
||||||
|
### Deprecated features
|
||||||
|
|
||||||
|
* The `--finalized-checkpoint-block` has been deprecated.
|
||||||
|
The client will now download only the latest finalized state
|
||||||
|
during trusted node sync:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4251
|
||||||
|
|
||||||
|
* The end-points `/eth/v1/beacon/blocks/{block_id}`, `/eth/v1/debug/beacon/states/{state_id}`, and `/eth/v1/validator/blocks/{slot}`
|
||||||
|
have been deprecated since they are no longer usable since
|
||||||
|
the Altair hard-fork:
|
||||||
|
|
||||||
|
https://github.com/status-im/nimbus-eth2/pull/4279
|
||||||
|
|
||||||
|
|
||||||
2022-10-14 v22.10.1
|
2022-10-14 v22.10.1
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
|
|
@ -449,7 +449,7 @@ type
|
||||||
name: "rest-max-headers-size" .}: Natural
|
name: "rest-max-headers-size" .}: Natural
|
||||||
|
|
||||||
keymanagerEnabled* {.
|
keymanagerEnabled* {.
|
||||||
desc: "Enable the REST keymanager API (BETA version)"
|
desc: "Enable the REST keymanager API"
|
||||||
defaultValue: false
|
defaultValue: false
|
||||||
name: "keymanager" .}: bool
|
name: "keymanager" .}: bool
|
||||||
|
|
||||||
|
@ -540,16 +540,16 @@ type
|
||||||
name: "terminal-total-difficulty-override" .}: Option[string]
|
name: "terminal-total-difficulty-override" .}: Option[string]
|
||||||
|
|
||||||
validatorMonitorAuto* {.
|
validatorMonitorAuto* {.
|
||||||
desc: "Automatically monitor locally active validators (BETA)"
|
desc: "Automatically monitor locally active validators"
|
||||||
defaultValue: false
|
defaultValue: false
|
||||||
name: "validator-monitor-auto" .}: bool
|
name: "validator-monitor-auto" .}: bool
|
||||||
|
|
||||||
validatorMonitorPubkeys* {.
|
validatorMonitorPubkeys* {.
|
||||||
desc: "One or more validators to monitor - works best when --subscribe-all-subnets is enabled (BETA)"
|
desc: "One or more validators to monitor - works best when --subscribe-all-subnets is enabled"
|
||||||
name: "validator-monitor-pubkey" .}: seq[ValidatorPubKey]
|
name: "validator-monitor-pubkey" .}: seq[ValidatorPubKey]
|
||||||
|
|
||||||
validatorMonitorTotals* {.
|
validatorMonitorTotals* {.
|
||||||
desc: "Publish metrics to single 'totals' label for better collection performance when monitoring many validators (BETA)"
|
desc: "Publish metrics to single 'totals' label for better collection performance when monitoring many validators"
|
||||||
defaultValue: false
|
defaultValue: false
|
||||||
name: "validator-monitor-totals" .}: bool
|
name: "validator-monitor-totals" .}: bool
|
||||||
|
|
||||||
|
@ -860,7 +860,7 @@ type
|
||||||
name: "suggested-fee-recipient" .}: Option[Address]
|
name: "suggested-fee-recipient" .}: Option[Address]
|
||||||
|
|
||||||
keymanagerEnabled* {.
|
keymanagerEnabled* {.
|
||||||
desc: "Enable the REST keymanager API (BETA version)"
|
desc: "Enable the REST keymanager API"
|
||||||
defaultValue: false
|
defaultValue: false
|
||||||
name: "keymanager" .}: bool
|
name: "keymanager" .}: bool
|
||||||
|
|
||||||
|
@ -886,18 +886,18 @@ type
|
||||||
name: "keymanager-token-file" .}: Option[InputFile]
|
name: "keymanager-token-file" .}: Option[InputFile]
|
||||||
|
|
||||||
metricsEnabled* {.
|
metricsEnabled* {.
|
||||||
desc: "Enable the metrics server"
|
desc: "Enable the metrics server (BETA)"
|
||||||
defaultValue: false
|
defaultValue: false
|
||||||
name: "metrics" .}: bool
|
name: "metrics" .}: bool
|
||||||
|
|
||||||
metricsAddress* {.
|
metricsAddress* {.
|
||||||
desc: "Listening address of the metrics server"
|
desc: "Listening address of the metrics server (BETA)"
|
||||||
defaultValue: defaultAdminListenAddress
|
defaultValue: defaultAdminListenAddress
|
||||||
defaultValueDesc: $defaultAdminListenAddressDesc
|
defaultValueDesc: $defaultAdminListenAddressDesc
|
||||||
name: "metrics-address" .}: ValidIpAddress
|
name: "metrics-address" .}: ValidIpAddress
|
||||||
|
|
||||||
metricsPort* {.
|
metricsPort* {.
|
||||||
desc: "Listening HTTP port of the metrics server"
|
desc: "Listening HTTP port of the metrics server (BETA)"
|
||||||
defaultValue: 8108
|
defaultValue: 8108
|
||||||
name: "metrics-port" .}: Port
|
name: "metrics-port" .}: Port
|
||||||
|
|
||||||
|
@ -913,12 +913,12 @@ type
|
||||||
name: "stop-at-epoch" .}: uint64
|
name: "stop-at-epoch" .}: uint64
|
||||||
|
|
||||||
payloadBuilderEnable* {.
|
payloadBuilderEnable* {.
|
||||||
desc: "Enable usage of beacon node with external payload builder"
|
desc: "Enable usage of beacon node with external payload builder (BETA)"
|
||||||
defaultValue: false
|
defaultValue: false
|
||||||
name: "payload-builder" .}: bool
|
name: "payload-builder" .}: bool
|
||||||
|
|
||||||
beaconNodes* {.
|
beaconNodes* {.
|
||||||
desc: "URL addresses to one or more beacon node HTTP REST APIs",
|
desc: "URL addresses to one or more beacon node HTTP REST APIs (The support for using multiple beacon nodes is considered BETA quality)",
|
||||||
defaultValue: @[defaultBeaconNodeUri]
|
defaultValue: @[defaultBeaconNodeUri]
|
||||||
defaultValueDesc: $defaultBeaconNodeUri
|
defaultValueDesc: $defaultBeaconNodeUri
|
||||||
name: "beacon-node" .}: seq[Uri]
|
name: "beacon-node" .}: seq[Uri]
|
||||||
|
@ -973,19 +973,19 @@ type
|
||||||
name: "request-timeout" .}: int
|
name: "request-timeout" .}: int
|
||||||
|
|
||||||
bindPort* {.
|
bindPort* {.
|
||||||
desc: "Port for the REST (BETA version) HTTP server"
|
desc: "Port for the REST HTTP server"
|
||||||
defaultValue: defaultEth2RestPort
|
defaultValue: defaultEth2RestPort
|
||||||
defaultValueDesc: $defaultEth2RestPortDesc
|
defaultValueDesc: $defaultEth2RestPortDesc
|
||||||
name: "bind-port" .}: Port
|
name: "bind-port" .}: Port
|
||||||
|
|
||||||
bindAddress* {.
|
bindAddress* {.
|
||||||
desc: "Listening address of the REST (BETA version) HTTP server"
|
desc: "Listening address of the REST HTTP server"
|
||||||
defaultValue: defaultAdminListenAddress
|
defaultValue: defaultAdminListenAddress
|
||||||
defaultValueDesc: $defaultAdminListenAddressDesc
|
defaultValueDesc: $defaultAdminListenAddressDesc
|
||||||
name: "bind-address" .}: ValidIpAddress
|
name: "bind-address" .}: ValidIpAddress
|
||||||
|
|
||||||
tlsEnabled* {.
|
tlsEnabled* {.
|
||||||
desc: "Use secure TLS communication for REST (BETA version) server"
|
desc: "Use secure TLS communication for REST server"
|
||||||
defaultValue: false
|
defaultValue: false
|
||||||
name: "tls" .}: bool
|
name: "tls" .}: bool
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,8 @@ when not defined(nimscript):
|
||||||
|
|
||||||
const
|
const
|
||||||
versionMajor* = 22
|
versionMajor* = 22
|
||||||
versionMinor* = 10
|
versionMinor* = 11
|
||||||
versionBuild* = 1
|
versionBuild* = 0
|
||||||
|
|
||||||
versionBlob* = "stateofus" # Single word - ends up in the default graffiti
|
versionBlob* = "stateofus" # Single word - ends up in the default graffiti
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
# Keymanager API
|
# Keymanager API
|
||||||
|
|
||||||
!!! warning
|
|
||||||
This feature is currently in BETA - we are still testing it and implementation details may change in response to community feedback. **We strongly advise against using it on mainnet** - your validators may get slashed
|
|
||||||
|
|
||||||
The standardized [Keymanager API](https://ethereum.github.io/keymanager-APIs/) can be used to add, remove, or [migrate](./migration.md) validators on the fly while the beacon node is running.
|
The standardized [Keymanager API](https://ethereum.github.io/keymanager-APIs/) can be used to add, remove, or [migrate](./migration.md) validators on the fly while the beacon node is running.
|
||||||
|
|
||||||
As of `v1.7.0` it supports `web3signer` keystores.
|
As of `v1.7.0` it supports `web3signer` keystores.
|
||||||
|
|
|
@ -82,7 +82,7 @@ The following options are available:
|
||||||
[=infinite].
|
[=infinite].
|
||||||
--rest-max-body-size Maximum size of REST request body (kilobytes) [=16384].
|
--rest-max-body-size Maximum size of REST request body (kilobytes) [=16384].
|
||||||
--rest-max-headers-size Maximum size of REST request headers (kilobytes) [=64].
|
--rest-max-headers-size Maximum size of REST request headers (kilobytes) [=64].
|
||||||
--keymanager Enable the REST keymanager API (BETA version) [=false].
|
--keymanager Enable the REST keymanager API [=false].
|
||||||
--keymanager-port Listening port for the REST keymanager API [=5052].
|
--keymanager-port Listening port for the REST keymanager API [=5052].
|
||||||
--keymanager-address Listening port for the REST keymanager API [=127.0.0.1].
|
--keymanager-address Listening port for the REST keymanager API [=127.0.0.1].
|
||||||
--keymanager-allow-origin Limit the access to the Keymanager API to a particular hostname (for
|
--keymanager-allow-origin Limit the access to the Keymanager API to a particular hostname (for
|
||||||
|
@ -106,11 +106,11 @@ The following options are available:
|
||||||
a validator with the same index (a doppelganger), before sending an attestation
|
a validator with the same index (a doppelganger), before sending an attestation
|
||||||
itself. This protects against slashing (due to double-voting) but means you will
|
itself. This protects against slashing (due to double-voting) but means you will
|
||||||
miss two attestations when restarting. [=true].
|
miss two attestations when restarting. [=true].
|
||||||
--validator-monitor-auto Automatically monitor locally active validators (BETA) [=false].
|
--validator-monitor-auto Automatically monitor locally active validators [=false].
|
||||||
--validator-monitor-pubkey One or more validators to monitor - works best when --subscribe-all-subnets is
|
--validator-monitor-pubkey One or more validators to monitor - works best when --subscribe-all-subnets is
|
||||||
enabled (BETA).
|
enabled.
|
||||||
--validator-monitor-totals Publish metrics to single 'totals' label for better collection performance when
|
--validator-monitor-totals Publish metrics to single 'totals' label for better collection performance when
|
||||||
monitoring many validators (BETA) [=false].
|
monitoring many validators [=false].
|
||||||
--suggested-fee-recipient Suggested fee recipient.
|
--suggested-fee-recipient Suggested fee recipient.
|
||||||
--payload-builder Enable external payload builder [=false].
|
--payload-builder Enable external payload builder [=false].
|
||||||
--payload-builder-url Payload builder URL.
|
--payload-builder-url Payload builder URL.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Run a separate validator client
|
# Run a separate validator client
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
This feature is currently in BETA - we are still testing it and implementation details may change in response to community feedback. **We strongly advise against using it on mainnet** - your validators may get slashed
|
Some features of the validator client, such as the metrics server, are currently in BETA and details may change in response to community feedback. Please consult the `--help` screen for more details.
|
||||||
|
|
||||||
By default, Nimbus integrates the validator client into the main beacon node process - this is a simple, safe and efficient way to run a validator.
|
By default, Nimbus integrates the validator client into the main beacon node process - this is a simple, safe and efficient way to run a validator.
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
# Validator monitoring
|
# Validator monitoring
|
||||||
|
|
||||||
!!! warning
|
|
||||||
This feature is currently in BETA - implementation details such as metric names and counters may change in response to community feedback.
|
|
||||||
|
|
||||||
The validator monitoring feature allows for tracking the life-cycle and performance of one or more validators in detail.
|
The validator monitoring feature allows for tracking the life-cycle and performance of one or more validators in detail.
|
||||||
|
|
||||||
Monitoring can be carried out for any validator, with slightly more detail for validators that are running in the same beacon node.
|
Monitoring can be carried out for any validator, with slightly more detail for validators that are running in the same beacon node.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 8c59324e8fc5d5f1126e9d4f5ff38f37322dab45
|
Subproject commit 97ee9bab50495b546b7a3415a0e2bdcfd3b6a503
|
Loading…
Reference in New Issue