github rocket-pool/smartnode-install v1.9.0-a1
v1.9.0 Alpha 1

latest releases: v1.14.2-dev, v1.14.1, v1.14.0...
pre-release20 months ago

Rocket Pool is excited to release v1.9.0 Alpha 1 for general testing! This is the largest upgrade to the Smartnode since v1.5.0 introduced Redstone support, and we encourage all of our users to help us thoroughly vet it against all kinds of different machines and configurations.


⚠️ This is a test version and is meant for the Prater (Goerli) and Zhejiang test networks only. DO NOT run this on Mainnet! ⚠️


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

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 (requires Atlas).
    • Migration of existing solo validators directly into minipools without exiting (requires Atlas).
  • Support for ETH withdrawals and rewards skimming (requires the Shanghai and Capella upgrades on the Execution and Consensus layer, dates TBD).

  • Support for the Zhejiang testnet, which has been upgraded to Shanghai, Capella, and Atlas.

  • 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, Zhejiang, 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.

Full Release Notes

Client Updates

⚠️ NOTE: Besu is currently not functioning properly on the test networks; this is a known issue. We will have an update when there is a new version out that works with the Smartnode.

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
  • The status of Protocol DAO governance votes

Grafana's dashboard uploading service is unfortunately not working right now so it can't imported from their service via ID, but you can import it via JSON - the dashboard's JSON is available in our GitHub repository. Simply click the link, copy the JSON, and pop it into your dashboard's import dialog.

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

Smartnode Daemon Changes

  • 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

  • The zhejiang testnet is now supported by the Smartnode in the network selection portion of the service config TUI! Zhejiang is running the Shanghai / Capella forks of the Execution and Consensus layers, and the Atlas upgrade of Rocket Pool so all of the new features (including withdrawals) are fully supported. If you'd like to test everything out, give Zhejiang a spin!

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:

  • Zhejiang has been configured to use Rewards Tree Spec v5. Please read the post and included spec for more details.
  • 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:

  • Zhejiang: already in place
  • Prater / Goerli: Epoch 162094 (2023-03-14 00:01:36 UTC)
  • Mainnet: not scheduled

Oracle DAO members on Prater only must upgrade to this release no later than March 13th 00:00:00 UTC to ensure the testnet maintains consensus. We will coordinate this with Prater Oracle DAO members at, and shortly after, the ETHDenver convention.

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!

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.

Installation Instructions

To install this release, please download the CLI:

Example for x64 Linux systems:

wget https://github.com/rocket-pool/smartnode-install/releases/download/v1.9.0-a1/rocketpool-cli-linux-amd64 -O ~/bin/rocketpool

Example for ARM Linux systems:

wget https://github.com/rocket-pool/smartnode-install/releases/download/v1.9.0-a1/rocketpool-cli-linux-arm64 -O ~/bin/rocketpool

Then run rocketpool service install on a fresh system or rocketpool service install -d on a system with an existing configuration to install it.

Don't miss a new smartnode-install release

NewReleases is sending notifications on new releases.