Version 22.11.0

This commit is contained in:
Zahary Karadjov 2022-12-01 07:38:54 +02:00
parent 69b6c6e738
commit 7dd4718735
No known key found for this signature in database
GPG Key ID: C1F42EAFF38D570F
8 changed files with 112 additions and 31 deletions

View File

@ -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
=================== ===================

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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