From 7dd4718735749362c50ad9d3d61a4b75e474d82c Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Thu, 1 Dec 2022 07:38:54 +0200 Subject: [PATCH] Version 22.11.0 --- CHANGELOG.md | 95 ++++++++++++++++++- beacon_chain/conf.nim | 26 ++--- beacon_chain/version.nim | 4 +- docs/the_nimbus_book/src/keymanager-api.md | 3 - docs/the_nimbus_book/src/options.md | 8 +- docs/the_nimbus_book/src/validator-client.md | 2 +- docs/the_nimbus_book/src/validator-monitor.md | 3 - vendor/nimbus-build-system | 2 +- 8 files changed, 112 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 109347c47..29fbb53ee 100644 --- a/CHANGELOG.md +++ b/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 =================== @@ -37,9 +124,9 @@ Nimbus `v22.10.0` is a `medium-urgency` release, continuing our briefly accelera * The `/eth/v2/validator/blocks/{slot}` API now features an optional `randao_reveal` parameter in accordance to the latest Beacon API spec: https://github.com/ethereum/beacon-APIs/pull/222 https://github.com/status-im/nimbus-eth2/pull/3837 - + * The `/eth/v1/beacon/blocks` API now supports SSZ-encoded payloads: - https://github.com/status-im/nimbus-eth2/pull/4154 + https://github.com/status-im/nimbus-eth2/pull/4154 * The new metrics `beacon_block_builder_proposed`, `beacon_block_builder_missed_with_fallback` and `beacon_block_builder_missed_without_fallback` can help you track the successful and failed attempts to use the configured external block builder: https://github.com/status-im/nimbus-eth2/pull/4158 @@ -52,8 +139,8 @@ Nimbus `v22.10.0` is a `medium-urgency` release, continuing our briefly accelera * If the chain was re-orged while Nimbus is shut down, this created a low risk that the client may become stuck on a non-canonical block: https://github.com/status-im/nimbus-eth2/pull/4161 - -* Nimbus was not serving the best possible light client updates when back-filling after a trusted node sync: + +* Nimbus was not serving the best possible light client updates when back-filling after a trusted node sync: https://github.com/status-im/nimbus-eth2/pull/4195 ### Upcoming breaking changes diff --git a/beacon_chain/conf.nim b/beacon_chain/conf.nim index e39aba8c1..ae1669f5a 100644 --- a/beacon_chain/conf.nim +++ b/beacon_chain/conf.nim @@ -449,7 +449,7 @@ type name: "rest-max-headers-size" .}: Natural keymanagerEnabled* {. - desc: "Enable the REST keymanager API (BETA version)" + desc: "Enable the REST keymanager API" defaultValue: false name: "keymanager" .}: bool @@ -540,16 +540,16 @@ type name: "terminal-total-difficulty-override" .}: Option[string] validatorMonitorAuto* {. - desc: "Automatically monitor locally active validators (BETA)" + desc: "Automatically monitor locally active validators" defaultValue: false name: "validator-monitor-auto" .}: bool 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] 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 name: "validator-monitor-totals" .}: bool @@ -860,7 +860,7 @@ type name: "suggested-fee-recipient" .}: Option[Address] keymanagerEnabled* {. - desc: "Enable the REST keymanager API (BETA version)" + desc: "Enable the REST keymanager API" defaultValue: false name: "keymanager" .}: bool @@ -886,18 +886,18 @@ type name: "keymanager-token-file" .}: Option[InputFile] metricsEnabled* {. - desc: "Enable the metrics server" + desc: "Enable the metrics server (BETA)" defaultValue: false name: "metrics" .}: bool metricsAddress* {. - desc: "Listening address of the metrics server" + desc: "Listening address of the metrics server (BETA)" defaultValue: defaultAdminListenAddress defaultValueDesc: $defaultAdminListenAddressDesc name: "metrics-address" .}: ValidIpAddress metricsPort* {. - desc: "Listening HTTP port of the metrics server" + desc: "Listening HTTP port of the metrics server (BETA)" defaultValue: 8108 name: "metrics-port" .}: Port @@ -913,12 +913,12 @@ type name: "stop-at-epoch" .}: uint64 payloadBuilderEnable* {. - desc: "Enable usage of beacon node with external payload builder" + desc: "Enable usage of beacon node with external payload builder (BETA)" defaultValue: false name: "payload-builder" .}: bool 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] defaultValueDesc: $defaultBeaconNodeUri name: "beacon-node" .}: seq[Uri] @@ -973,19 +973,19 @@ type name: "request-timeout" .}: int bindPort* {. - desc: "Port for the REST (BETA version) HTTP server" + desc: "Port for the REST HTTP server" defaultValue: defaultEth2RestPort defaultValueDesc: $defaultEth2RestPortDesc name: "bind-port" .}: Port bindAddress* {. - desc: "Listening address of the REST (BETA version) HTTP server" + desc: "Listening address of the REST HTTP server" defaultValue: defaultAdminListenAddress defaultValueDesc: $defaultAdminListenAddressDesc name: "bind-address" .}: ValidIpAddress tlsEnabled* {. - desc: "Use secure TLS communication for REST (BETA version) server" + desc: "Use secure TLS communication for REST server" defaultValue: false name: "tls" .}: bool diff --git a/beacon_chain/version.nim b/beacon_chain/version.nim index 48e43fb62..54038c08b 100644 --- a/beacon_chain/version.nim +++ b/beacon_chain/version.nim @@ -20,8 +20,8 @@ when not defined(nimscript): const versionMajor* = 22 - versionMinor* = 10 - versionBuild* = 1 + versionMinor* = 11 + versionBuild* = 0 versionBlob* = "stateofus" # Single word - ends up in the default graffiti diff --git a/docs/the_nimbus_book/src/keymanager-api.md b/docs/the_nimbus_book/src/keymanager-api.md index 52c4be985..5a01de364 100644 --- a/docs/the_nimbus_book/src/keymanager-api.md +++ b/docs/the_nimbus_book/src/keymanager-api.md @@ -1,8 +1,5 @@ # 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. As of `v1.7.0` it supports `web3signer` keystores. diff --git a/docs/the_nimbus_book/src/options.md b/docs/the_nimbus_book/src/options.md index 6dbb66518..034f6155c 100644 --- a/docs/the_nimbus_book/src/options.md +++ b/docs/the_nimbus_book/src/options.md @@ -82,7 +82,7 @@ The following options are available: [=infinite]. --rest-max-body-size Maximum size of REST request body (kilobytes) [=16384]. --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-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 @@ -106,11 +106,11 @@ The following options are available: 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 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 - enabled (BETA). + enabled. --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. --payload-builder Enable external payload builder [=false]. --payload-builder-url Payload builder URL. diff --git a/docs/the_nimbus_book/src/validator-client.md b/docs/the_nimbus_book/src/validator-client.md index 3bca617c5..efaa9c425 100644 --- a/docs/the_nimbus_book/src/validator-client.md +++ b/docs/the_nimbus_book/src/validator-client.md @@ -1,7 +1,7 @@ # Run a separate validator client !!! 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. diff --git a/docs/the_nimbus_book/src/validator-monitor.md b/docs/the_nimbus_book/src/validator-monitor.md index a60e4a26d..ad29a19ce 100644 --- a/docs/the_nimbus_book/src/validator-monitor.md +++ b/docs/the_nimbus_book/src/validator-monitor.md @@ -1,8 +1,5 @@ # 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. Monitoring can be carried out for any validator, with slightly more detail for validators that are running in the same beacon node. diff --git a/vendor/nimbus-build-system b/vendor/nimbus-build-system index 8c59324e8..97ee9bab5 160000 --- a/vendor/nimbus-build-system +++ b/vendor/nimbus-build-system @@ -1 +1 @@ -Subproject commit 8c59324e8fc5d5f1126e9d4f5ff38f37322dab45 +Subproject commit 97ee9bab50495b546b7a3415a0e2bdcfd3b6a503