This is a required update to the v1.0.0 prerelease of the Smartnode stack.
It contains several key changes that are necessary to use the Prater testnet, and updates all of the Beacon Chain clients to versions that are compatible with the Altair hard fork on mainnet (scheduled for Oct 27, 2021, 10:56:23am UTC).
You must upgrade to this version before that date!
To upgrade and keep the same network that you have now (either Prater or Mainnet), follow the Smartnode upgrade instructions.
If you want to remove your Prater installation and upgrade to a Mainnet installation, follow the official migration guide.
Protocol Fix
rocketpool node deposit
now immediately deposits the node operator's 16 ETH onto the Beacon Chain after being called, and will wait inprelaunch
status for a particular amount of time (currently 12 hours). This gives the Oracle DAO time to verify that the withdrawal credentials are valid (see the research repository for more information).- If the minipool withdrawal credentials are valid, it will
stake
after the wait period and begin its waiting process to be seen on the Beacon Chain as normal. - If the minipool withdrawal credentials are invalid, it will be scrubbed and the malicious node operator's 16 ETH will be locked on the Beacon Chain deposit contract until withdrawals are implemented.
Installer Changes
- Updated Geth to v1.10.10 on Prater and Mainnet.
- Updated Lighthouse to v2.0.0 on Prater and Mainnet.
- Updated Nimbus to v1.5.1 on Prater and Mainnet.
- Updated Prysm to v2.0.1 on Prater and Mainnet.
- Updated Teku to 21.10.0 on Prater and Mainnet.
- Added the
-p
argument to the Smartnode installer, which lets you specify a different path to install Rocket Pool's configuration files to duringrocketpool service install
. rocketpool service config
will now suggest you consider an alternative Beacon client if you choose one with a supermajority on mainnet, and provides an educational link that describes the concerns with supermajority clients.
Smartnode Changes
- New command:
rocketpool minipool find-vanity-address
- This command will let you search for a seed you can use to create a minipool with a custom prefix in its address during
node deposit
. For example, you can use it to find a seed for an address that starts with0xa77e57
- a fitting prefix for minipools! Runrocketpool m v --help
(the shorthand version) for more information on this command.
- This command will let you search for a seed you can use to create a minipool with a custom prefix in its address during
rocketpool node deposit
now supports an optional--salt
flag that lets you specify a custom salt found using the above command to customize your minipool's address.- Updated several dependencies (such as
libssl
) to mitigate new vulnerabilities. Thanks to community member @texanraj for helping with this! - Added a safety check during minipool staking that ensures the minipool's Beacon Chain pubkey is new and unused before depositing to the Beacon deposit contract. Production of an existing key on the Beacon Chain during minipool creation should not be possible, but this check adds an additional layer of safety just in case.
- The Smartnode now builds Teku's validator folder structure upon startup if it's missing, so it no longer crashes before you create any validators.
- Removed the
minipool dissolve
andminipool close
commands until Beacon Chain withdrawals are enabled.
Client-Specific Changes
- The Smartnode now retrieves your machine's external-facing IP address and passes it into Nimbus as a command line argument; this will make finding peers with Nimbus much faster and more consistent after a restart.
- Updated Nimbus's default maximum peer count to 80 on ARM systems due to this improvement, which should provide improve attestation inclusion distances.
- Added a flag to the ARM configuration for Teku that limits the amount of RAM it can use on low-power systems.
- Added a default Pocket Gateway ID specifically for mainnet. Thank you to the folks at Pocket for making this service available to all Rocket Pool node operators!
- The ETH1 proxy now handles rare 502 gateway errors from Pocket gracefully instead of failing.
- The ETH1 proxy now respects Pocket's limit of 100,000 blocks per event log query, allowing commands such as
rocketpool node rewards
to function correctly. - Added support for Nimbus's new multithreading feature to further improve performance on low-power systems like the Raspberry Pi.
Misc Changes
- The proxy's verbose mode flag now identifies incoming and outgoing messages with a unique ID, so they can be more easily correlated.
- Added
scrub-period
getter and proposal commands to the Oracle DAO section of the CLI. This refers to the amount of time a minipool will stay in prelaunch while the Oracle DAO verifies that it isn't being used as part of the withdrawal credentials exploit. - The smartnode-install files below are now signed with Rocket Pool's GPG key - each one comes with a signature that can be used to verify the file's authenticity. Thanks to @LookingForOwls for requesting this addition to our releases.