This is v1.10.0 of the Smartnode.
It is a recommended update for node operators using Nethermind, Nimbus, Prysm, or Teku, as well as anyone that generates their own rewards trees (including the Oracle DAO).
To upgrade, follow the Smartnode upgrade instructions.
Client Updates
- Updated Nethermind to v1.20.1.
- Updated Nimbus to v23.7.0.
- Updated Prysm to v4.0.7.
- Updated Teku to v23.6.2.
❗ Breaking Changes
- The
Expose ... Ports
options for the Execution client, the Consensus client, MEV-Boost, and Prometheus have been changed.- Instead of using a simple on/off checkbox, this is now a dropdown with three selections:
Closed
, which is the same as the previous "off" (unchecked box)Open to Localhost
. which is a new setting that allows connections from your local machine only. This is desireable by people that run nodes on Virtual Private Servers or in the cloud, so those ports aren't exposed to the Internet directly.Open to External hosts
, which is the same as the previous "on" (checked box).
- If you previously had any checkbox enabled for exposing ports, such as if you used the machine as a fallback for a second node, you must select one of these options after upgrading to expose them again.
- Thanks to @0xfornax, @poupas, and @jshufro for contributing this!
- Instead of using a simple on/off checkbox, this is now a dropdown with three selections:
Important Dates
- The Oracle DAO must update to v1.10.0 or later by Epoch 219314 (August 3, 2023 1:29 AM UTC) to maintain consensus.
New Experimental Feature: Rolling Records
v1.10.0 introduces a major new feature that can be used by Oracle DAO members, and by node operators that opt into generate their own rewards trees: Rolling Records.
This feature will continuously capture the attestation performance of the Rocket Pool network for the current rewards interval in real time, instead of doing the entire interval at the end as it is currently done.
This makes creating and reporting the rewards tree at the end of each interval practically instantaneous, rather than take several hours.
However, doing so will cause your node to generate a state snapshot of the entire Rocket Pool network every 4-6 minutes, which can be computationally intensive!
Rolling Records are only recommended for systems with extra CPU cycles and RAM to spare.
⚠️ NOTE: Rolling Records are still experimental at this time and are opt-in.
When it is enabled, the Smartnode's watchtower
process will store a compressed snapshot of the complete attestation record for the current interval to disk at a pre-defined interval (by default every 45 epochs - it can be changed in the service config
TUI).
Upon restarting the watchtower
process, it will load the latest snapshot that was saved and resume from there.
The location of these snapshots is configurable (by default, ~/.rocketpool/data/records
- it can be changed in the service config
TUI).
When too many snapshots have been generated, the Smartnode will automatically purge the latest one(s) and only retain a certain number of them (by default, 200).
Smartnode Changes
-
This version introduces support for Rewards Spec v6, which will be used for rewards starting with Prater interval 118 and Mainnet interval 12.
-
The initial check to determine whether or not Atlas has been deployed has been removed.
-
The Oracle DAO will now submit network balance updates and rewards snapshots if their node started processing them, even if consensus had already been reached by the time they were done.
- This is a short-term way to gauge whether or not a node is alive and running properly (see RPIP-19 for more information).
- Note that this doesn't guarantee each node will report for those duties, as a watchtower that started its check after consensus has been reached will not attempt to make a submission for that duty. This will be made more robust in a future release.
Bug Fixes
-
The check for your fallback node's health will no longer return an error about the wrong Chain ID if your fallback node is offline.
-
Some commands were missing a check to determine if the primary Execution client is synced or if it needs to use the fallback (if applicable). This has been fixed by @jshufro.
Misc Changes
-
Replaced the conventional
encoding/json
library with go-json, which speeds up many operations that involve the Consensus Client (such as state snapshotting).- Thanks to @jshufro for this change!
-
The Smartnode now treats validator indices as strings instead of integers, which speeds up operations involving the Consensus Client (as they are provided as strings).
- Thanks to @jshufro for this change!
-
Support for migrating from very old Smartnode versions (pre-v1.3, when the TUI was introduced) has been removed.
-
Added explicit copies of Prater rewards interval 0 through 5 for nodes that wanted to claim rewards from them, as the contracts didn't emit events for them until interval 6.