github rocket-pool/smartnode-install v1.9.0

latest releases: v1.13.8, v1.13.8-dev, v1.13.7...
17 months ago

Rocket Pool is excited to release Smartnode v1.9.0! This is the largest upgrade to the Smartnode since v1.5.0 introduced Redstone support, and includes a truly massive amount of fixes, features, and updates. Please read these release notes thoroughly.

Before getting into the details, we want to give a tremendous shout out to all of our beta testers that helped us refine v1.9.0 and Atlas on the Zhejiang and Prater (Goerli) test networks. This release simply would not have been possible without their time, dedication, thorough reports, and suggestions. Thank you!

📖 For a complete guide of the new protocol-related features and how to use them, please see our Atlas guide on the documentation website!
Below is a description of what's changed.

To upgrade, follow the Smartnode upgrade instructions.

Summary

New Features

  • Support for the Atlas protocol upgrade, which includes:

    • Minipools that only require an 8 ETH bond instead of 16 ("LEB8s").
    • Migration of existing 16 ETH minipools into 8 ETH minipools.
    • Migration of existing solo validators directly into minipools without exiting.
    • Support for receiving the ETH staking rewards from the Beacon Chain.
  • Automatic minipool balance distribution for worry-free rewards (configurable, of course).

  • Support for ETH withdrawals and rewards skimming (requires the Shanghai and Capella upgrades on the Execution and Consensus layer, scheduled for Apr-12-2023 10:27:35 PM UTC).

  • Support for split-client mode for Nimbus, which means Nimbus can now be used with fallback clients and externally-managed clients (Hybrid Mode).

  • Support for the Lodestar consensus client.

  • A new Grafana dashboard that works with all client combinations and provides lots of highly-requested stats.

  • Oracle DAO changes, including network balance and price consensus changes.

What Happened to v1.8?

Due to the coincident timing of Atlas, Shapella, and the ETHDenver convention, the Smartnode v1.8 beta has been rolled into v1.9. This release contains all of v1.8's features, so you're free to upgrade directly to v1.9 regardless of which version you're currently running.

⚠️ Important Dates ⚠️

Docker Mode users must upgrade no later than Apr-12-2023 10:27:35 PM UTC, which is the time that the Ethereum network will undergo the Shapella upgrade.

Hybrid and Native Mode users must upgrade no later than Apr-18-2023 00:00:00 AM UTC, which is the expected time of the Atlas upgrade. Note: you will have to manually update your Execution and Consensus clients to Shapella compatible versions by the date above!

Oracle DAO members must upgrade no later than Apr-10-2023 00:00:00 AM UTC in order to use the new TWAP-based RPL price system and update to the new network balance calculation (described in detail below).

Full Release Notes

Client Updates

Geth Changes

Geth's service config TUI now has a checkbox to enable the use of Pebble - a new database introduced with Geth v1.11 that improves sync times and general performance.

  • NOTE: if you want to use Pebble with Geth, you must resync it after checking the box using rocketpool service resync-eth1.

Nimbus Changes

❗ This version introduces split mode support for Nimbus! Instead of running the Beacon Node and Validator Client inside a single process / container, the Smartnode will now run them in separate containers like the other clients. This has the following benefits:

  • Nimbus now supports fallback clients (a secondary Execution client and Beacon Node that Nimbus's Validator Client can connect to when your primary clients are down for maintenance, such as resyncing).
  • Nimbus is now supported in Externally-Managed (Hybrid) Mode, so you can couple the Validator Client that the Smartnode manages to an external Beacon Node that you maintain on your own.
  • The Beacon Node no longer needs to be restarted after the addition of new minipools, meaning you don't lose attestations while it reconnects to its peers.

Lodestar

Lodestar is now supported as an option for your Consensus Client of choice! This is the newest addition to be officially accepted onto Ethereum's Launchpad, and it's ready for validation. Lodestar supports many of the great features you've come to love from the other clients, including Doppelganger Detection, MEV-Boost, externally-managed clients (Hybrid Mode), and more!

New Dashboard

We're proud to announce Rocket Pool's Node Operator Dashboard v1.2.0!

image

This is a single dashboard that supports every client combination - no more having to pick the right one for your client! It adds some much-requested views, including:

  • CPU / RAM usage of the Execution client
  • Execution client peer count
  • Time until next attestation for Lighthouse
  • Attestation performance (correctness of head / source / target, which determines how much ETH you're awarded on the Beacon Chain per attestation)
  • The Smoothing Pool's balance over time
  • Your unclaimed ETH rewards from the Smoothing Pool
  • Support for used space and temperatures of a second SSD
  • The status of Protocol DAO governance votes

You can import the new dashboard from the official Grafana service using ID 18391 by following our Grafana guide.

This was a labor of love with lots of help from @0xfornax, so be sure to give him some thanks as well.

Configuration Changes

  • The Aestus relay is now supported in the list of MEV-Boost relays. This is an uncensored relay that allows all MEV types.

    • Profile mode users that have the "Unregulated (All MEV Types)" profile will begin using it automatically.
  • Added a threshold for automatic minipool balance distribution (see the Smartnode Daemon Changes section below).

    • This threshold is configurable in the config TUI under the Smartnode and TX Fees section as a new setting called Auto-Distribute Threshold.
    • The default threshold is 1 ETH.
  • For Oracle DAO members:

    • There are two new settings in the Smartnode and TX Fees section of the service config TUI:
      • Watchtower Max Fee Override lets you manually specify a max fee higher than the default of 200 gwei for watchtower duties. Setting a value lower than 200 will have be ignored and will still use a max fee of 200.
      • Watchtower Priority Fee Override works the same way for priority fees. The default is 3 gwei.
    • These settings are only meant to be used in emergency situations where the network's base fee has been above 200 for an extended period of time (several hours), and the Oracle DAO needs to submit critical transactions (such as scrubbing minipools with invalid withdrawal credentials).
    • Thanks to Rocket Scientists @0xobjectObject and @Valdorff for recommending these changes!

Smartnode Daemon Changes

  • The node daemon now has a new automatic duty: automatic minipool rewards distribution!

    • Once a minipool's balance has reached a certain threshold, the node will automatically distribute the balance (giving you and the staking pool your share of its rewards).
    • This threshold is configurable in the config TUI (see the Configuration Changes above).
  • The node daemon now uses the new snapshot system to quickly and efficiently retrieve a snapshot of the state of your node, your minipools and your validators every time it performs its duties (every 5 minutes), including sending metrics to the Grafana dashboard.

    • This makes the node process much less taxing on the Execution client for node operators with a large number of validators, and should significantly reduce its CPU load which will improve attestations and overall rewards.
  • For Oracle DAO members: the watchtower daemon has been given the same treatment, taking a snapshot of the entire Rocket Pool network's state all at once during each round of watchtower duties. You should notice lower CPU load and fewer HTTP requests during watchtower duties.

  • This introduces Rewards Tree Specification v5, which simplifies the calculation of Smoothing Pool shares for each Node Operator and adds support for 8-ETH-bonded minipools.

Smartnode CLI Changes

minipool Subcommand

New Commands

  • minipool set-withdrawal-creds changes the withdrawal credentials of a solo validator from BLS credentials (0x00) to a minipool's credentials (0x01) during solo validator migration.
  • minipool import-key imports a solo validator key into the Validator Client managed by the Smartnode.
  • minipool promote finishes the solo validator migration process once the new minipool passes the scrub check, effectively finishing the conversion into a minipool.
  • minipool begin-bond-reduction starts the process of migrating an existing 16-ETH-bonded minipool into an 8-ETH-bonded one.
  • minipool reduce-bond finishes the above process once the minipool has passed the scrub check.
  • minipool distribute-balance safely splits the minipool's current ETH balance between the Node Operator and the rETH stakers without closing the minipool entirely. This is useful for accessing your skimmed rewards while maintaining your validators on the Beacon Chain.

Command Changes

  • minipool close now handles both dissolved and staking minipools in a single command.
    • Minipools that can be closed will now show how much ETH will be returned to the Node Operator when selecting which one(s) to close.
    • Minipools must upgrade to the Atlas delegate in order to be closed.
  • minipool delegate-rollback and minipool set-use-latest-delegate are now disabled for minipools that have migrated to 8-ETH bonds if their old delegate is the Redstone delegate, as the Redstone delegate does not support 8-ETH bonded minipools and will result in the minipool malfunctioning.
  • minipool status now shows much more detail including the minipool's balance on the Execution Layer and its validator balance on the Consensus Layer, along with the Node Operator's share of both.

node Subcommand

New Commands

  • node create-vacant-minipool constructs a special minipool that can accept an existing validator pubkey for an active solo validator on the Beacon Chain. This is used for migrating solo validators directly into minipools without needing to exit them.

Command Changes

  • node deposit now accepts both 8 ETH and 16 ETH options.
    • If you have a credit balance available (such as after migrating from a 16-ETH minipool to an 8-ETH or migrating a solo validator), this command can use your credit balance to create new minipools instead of requiring you to provide the ETH bond from your node wallet.
    • node status now shows how much ETH you can use to create new minipools based on your current RPL stake, rather than the number of minipools (as there are now multiple options for deposit amounts).

service Subcommand

Command Changes

  • service terminate will now remove all of the Docker artifacts on your system, and delete your entire .rocketpool configuration folder. This will remove your wallet, password, and validator keys. Running the Smartnode after service terminate will require a reinstall with rocketpool service install -d.
    • This command now requires privilege escalation such as sudo in order to run properly.

wallet Subcommand

Command Changes

  • wallet purge now works even when the Docker containers are offline or removed.
    • This command now requires privilege escalation such as sudo in order to run properly.

❗ Oracle DAO Duty Changes

The Oracle DAO has some new duties which have been added to the watchtower:

  • Bond reduction checking verifies that minipools attempting to have their bond lowered (e.g., converting from 16 ETH to 8 ETH) are not exited from the Beacon Chain and have >32 ETH. Minipools in violation of these conditions will be scrubbed.
  • Solo migration checking verifies that validators tied to vacant minipools (from users attempting to migrate solo validators) are still active_ongoing on the Beacon Chain, have a CL + EL balance > 32 ETH, have legal withdrawal credentials, and some other safety checks. Minipools in violation of these checks will be scrubbed.

Additionally, the following duties have changed:

  • Network balance submission: there is a new implementation of balance submission included in this release. It makes the following changes to the old submission:
    • 8-ETH bonded minipools are now supported.
    • The rETH stakers' portion of a minipool's balance is now calculated from the balance beacon_balance + minipool_balance - refund (was previously just beacon_balance).
    • The duty now properly gets the Beacon slot that matches the target EL block instead of just the first block in the target slot's epoch.
    • A node's average fee is now calculated using staking, non-finalized minipools only (was all minipools previously).
    • Dissolved minipools are no longer tracked when calculating the rETH ratio.
  • Network price submission: there is a new implementation of price submission that uses a Time-Weighted Average Price (TWAP) scheme for calculating RPL's price instead of relying on the old spot price contract.
    • Network prices are now also submitted to the Polygon and Arbitrum chains.

These changes affect protocol consensus, so they are scheduled to go live at a later epoch on the following networks:

  • RPL Price TWAP: Epoch 193414 (Apr-10-2023 02:49:59 AM UTC)
  • Network Balances: Epoch 194089 (Apr-13-2023 02:49:59 AM UTC)

Oracle DAO members must upgrade to this release no later than April 10th 00:00:00 UTC to ensure the network maintains consensus. We will coordinate this with Oracle DAO members to ensure a majority have upgraded by this date.

Bug Fixes

  • node rewards now detects missing / invalid rewards tree files and can download them instead of exiting with an error.
  • The service config TUI will now properly detect when the terminal is maximized and won't be stuck on the "terminal too small" error message.
    • Thanks to @SN9NV for fixing this!
  • Commands such as service start and service stop should no longer print an occasional error message about pipes being closed.
    • Thanks to @SN9NV for fixing this!
  • The gas estimate screen will now verify your node has enough ETH to perform a transaction before sending it.
  • Fixed a bug that prevented Snapshot voting status from loading properly.

Misc Changes

  • Upgraded many dependencies.
  • Updated the Smartnode and rocketpool-go library to use Go v1.19.
  • Removed the "personal" RPC namespace from the Execution client now that it is deprecated.
  • Re-enabled the ability to add custom docker-compose files to the rocketpool service commands using the -f flag.

Don't miss a new smartnode-install release

NewReleases is sending notifications on new releases.