Skip to content

Releases: rocket-pool/smartnode

v2.0.0-b4

23 Sep 01:18
e2857c0
Compare
Choose a tag to compare

warning: NOT FOR MAINNET! ⚠️

This is Smart Node v2.0.0 Beta 4. It contains several fixes reported by beta testers from Beta 3, and a few notable (but transparent to the user) changes.

For installation or update instructions, please see the v2 installation guide.

Once you finish updating, remember to run rocketpool service config or rocketpool service start for the changes to take effect!

Changes

CLI

v2.0.0-b3

13 Jun 18:27
91b3c6b
Compare
Choose a tag to compare
v2.0.0-b3 Pre-release
Pre-release

warning: NOT FOR MAINNET! ⚠️

This is Smart Node v2.0.0 Beta 3. It contains several fixes reported by beta testers from Beta 2, and a few notable (but transparent to the user) changes.

For installation or update instructions, please see the v2 installation guide.

Once you finish updating, remember to run rocketpool service config or rocketpool service start for the changes to take effect!

Changes

CLI

v2.0.0 Beta 2 (NOT FOR MAINNET!)

07 May 15:12
f6d4b4e
Compare
Choose a tag to compare
Pre-release

⚠️ NOT FOR MAINNET! ⚠️

This is Smart Node v2.0.0 Beta 2. It contains several fixes reported by beta testers from Beta 1, and a few notable (but transparent to the user) changes.

For installation or update instructions, please see the v2 installation guide.

Once you finish updating, remember to run rocketpool service config or rocketpool service start for the changes to take effect!


⚠️ Smart Node v2.0 requires the Houston protocol upgrade to function properly. As such, you can only use it on the public Holesky testnet (which has been upgraded to Houston).


Changes

CLI

  • Fixed voting on Protocol DAO proposals.
  • Proposing PDAO rewards percentages now uses the correct service route.
  • Fixed the node rewards command.
  • Fixed the pdao proposals list command.
  • The slippage check during node deposit now properly checks if the min is the same as the max and ignores the prompt.
  • Multiselect commands (such as minipool distribute) now support ranges as well as comma-separated options - e.g., things like 1-3,4,5,6-10 will now work. Embrace your inner printer page dialog!
  • wallet export now prints the wallet key as a hex string.
  • The --local-script flag has been added back to service install.
  • Fixed some typos.

Service

  • The node API no longer uses a Unix socket; it's been moved to a network socket (bound to localhost, default port 8080) as part of macOS support.
  • minipool exit now properly respects your minipool choice.
  • Added the archive mode setting for Geth.
  • Added the service/get-config route to the daemon to dynamically get the Smart Node's config from the API.

v2 Migration guide

  • Added a note about updating your alias if you had one set from Smart Node v1.

Known Issues

v2.0.0 Beta 1 (NOT FOR MAINNET!)

29 Apr 15:02
ca1f3a3
Compare
Choose a tag to compare
Pre-release

After months of development, Rocket Pool is proud to release the first public beta of Smart Node v2.0.

Smart Node v2 is a complete rewrite of the Smart Node that aims to improve existing functionality, add new functionality, and make it dramatically easier to maintain. It incorporates modern tooling and techniques, years of lessons learned from working with the original Smart Node in the wild, and many suggestions provided by users that made sense but just weren't practical to build into v1.


⚠️ Smart Node v2.0 requires the Houston protocol upgrade to function properly. As such, you can only use it on the public Holesky testnet (which has been upgraded to Houston).


Overview of What's New

The following is a list of what's changed from v1 so far, in no particular order:

Installation

NOTE: for actual installation instructions, please see the v2 installation guide.

  • The Smart Node now comes in a .deb package, so users running Debian or Debian-derivative distributions can now install it via sudo apt install rocketpool and update it via sudo apt update && sudo apt dist-upgrade once the Rocket Pool repository is set up.
    • Packages for other distributions, such as RHEL or Fedora, will be introduced at a later date.
    • For now, users not on Debian-based systems can install via the traditional rocketpool service install command. It will still pull the necessary files from GitHub as it did before.
  • Installation no longer puts all core system files into your ~/.rocketpool directory. System files (such as Docker compose templates and execution scripts) are now put into /usr/share/rocketpool. The CLI binary is now installed to /usr/bin/rocketpool.
    • Runtime files, such as your Docker compose overrides and logging, are still put into ~/.rocketpool by default.
  • Installation via the CLI can optionally now be done with local install scripts and packages on your filesystem instead of needing to reach out to GitHub. This is helpful in places where GitHub can't be accessed.
  • (For developers) The old smartnode-install repository has been migrated into the smartnode repository.

Daemon (Node Container / Service)

  • The api, node, and watchtower Docker containers have now all been consolidated into one node container.
  • The daemon now uses Multicall for all of its Execution client reads, batching state reads together into as few requests as possible. This significantly reduces the overhead (both CPU-wise and time-wise) on large operations that required many blockchain reads, such as minipool status or the new on-chain Protocol DAO voting system.
  • You can now run the node in passwordless mode, where the password for your node wallet is not saved to disk. This way, if someone steals your node, they will not have access to your node wallet. (They can still slash your validators, though).
    • When using passwordless mode, you'll need to provide the password via the CLI any time you restart the daemon. It will be preserved in memory but not on disk.
  • You can now enter masquerade mode, where your node assumes an arbitrary address that you specify. For all intents and purposes, your API, node, and watchtower loops will proceed to act like the specified node instead. As you don't have the private key for that address, your node will be in read-only mode while masquerading and won't be able to submit transactions or recover validator keys. You can end the masquerade and return to your normal (wallet) address at any time.
    • This is particularly useful for support and debugging.
  • The daemon now supports graceful shutdowns of the API server, node, and watchtower task loops rather than terminating them immediately upon closing.

API

  • The daemon API has been overhauled. It is no longer a sequence of terminal commands executed by the CLI via docker exec. It has been replaced with a true HTTP-based API endpoint.
    • The API endpoint is hosted on a Unix socket and is accessible by processes running as the user on the node's local filesystem (e.g., the new Smart Node CLI).
    • It is not (currently) accessible via a TCP port, so it can't be reached via browser; this is a feature that will be coming in the future but requires the addition of an authentication system first.
    • Once that is in place, the Smart Node will be open to things such as WebUIs to replace (or at least supplement) the CLI.
  • The API is now a persistent process; instead of starting and stopping with every CLI command, as in v1, it will now start with the rocketpool_node daemon and maintain state until the daemon stops. This means it doesn't need to reacquire all of the network contracts and parse their ABIs with every call; it only does this once at startup, which provides a significant speedup over v1.

Logging

  • The CLI and daemon both now have improved logging systems.
    • The CLI's global --debug flag will now print debugging information to the terminal as the relevant command is being executed.
    • The daemon now logs its activities to three separate files:
      • api.log for API requests and responses, such as HTTP requests submitted by the CLI (completely new, v1 unfortunately does not have an analog for this)
      • tasks.log which records logs from the node's task loop (used to be the standard output of the rocketpool_node container)
      • watchtower.log which records logs from the watchtower's task loop (used to be the standard output of the rocketpool_watchtower container)
    • The daemon's logs can be written in logfmt or JSON. They support proper, customizable log rotation and four log levels ranging from DEBUG to ERROR.

Transactions

  • In v1, commands that provide multiple selectable options (such as distributing minipool balances) would only allow you to select one option from the list, or "all". In v2, you are now able to select an arbitrary combination of options if you want to trigger the function on some, but not all, of the options.
  • In v1, running a command on multiple options would submit the transactions in sequence; the first would submit, then it would wait for it to complete before submitting the next one, and so on. In v2, the Smart Node now submits all transactions at the same time and waits for them in parallel once they've been submitted.
    • This will make multi-tx operations much, much faster and less sensitive to gas fluctuations, as multiple TXs can now be included in the same block together.
    • This also fixes issues where the selected gas price was only applied to the first transaction in v1. In v2, the selected gas price is applied to all transactions.

CLI Command Changes

  • Use rocketpool -pt ... to print raw transaction info (such as calldata) without submitting if you want to use the calldata for your own activities.
  • Use rocketpool -st ... to sign all transactions and print them without submitting them to the network. This is useful for things like offline wallets or creating custom transaction bundles for services like Flashbots Protect.
  • Use rocketpool --debug ... to print debug info about the command being run, such as API back-and-forth traffic or other variables.
  • When using the rocketpool service config TUI to modify the Smart Node's configuration, you can now include the -u file to intentionally restore all of the settings that will be replaced during a Smart Node upgrade, even if you're not upgrading.
    • This is useful if you manually tweaked container tags and just want to get the "recommended" tags back.
    • This is also useful for development testing where you want to emulate an upgrade when you install a new build, even if the new version is the same as the old version.
  • rocketpool node sync has been moved to rocketpool service sync to more accurately reflect its nature.
  • rocketpool node sign-message and rocketpool node send-message have been moved to rocketpool wallet sign-message and rocketpool wallet send-message for the same reason.
  • Use rocketpool wallet delete-password to enter passwordless mode.
  • Use rocketpool wallet set-password to provide the password to the daemon. You will be prompted for whether or not you want to save it to disk.
  • Use rocketpool wallet masquerade to set your node's address to someone else.
  • Use rocketpool wallet restore-address to end masquerading and set your node's address to your wallet address.
  • Use rocketpool service node-logs with api, tasks, and/or watchtower to view the new logs respectively.

Installation

Please see the v2 installation guide for installation instructions for Docker and Hybrid mode or for Native mode depending on your setup.

Feedback

To prevent mixing v2 feedback with the existing v1 Smart Node, we request that you provide feedback in our Discord server, in the #beta-feedback thread.

v2.0.0-olddev

14 Apr 22:47
03dc132
Compare
Choose a tag to compare
v2.0.0-olddev Pre-release
Pre-release

This is a development prototype for Smart Node v2.0.0 using the OLD devnet.

⚠️ This is still very much under construction and will break, DO NOT use this build unless instructed by the developers - especially if you are using v1 of the Smart Node already. ⚠️

v2.0.0 Development Prototype

23 Jan 03:28
f8b30be
Compare
Choose a tag to compare
Pre-release

This is a development prototype for Smart Node v2.0.0.

⚠️ This is still very much under construction and will break, DO NOT use this build unless instructed by the developers - especially if you are using v1 of the Smart Node already. ⚠️

v1.0.0-rc2

26 May 07:17
Compare
Choose a tag to compare

RC2 for Prater

This is Release Candidate 2 of the Smartnode stack, which is targeting the testnet on Prater.

New CLI Functions

  • rocketpool node claim-rpl: lets you manually claim RPL rewards after a checkpoint.
  • The new --nonce global flag can be used to manually set the nonce of a transaction, which can be useful for overwriting an existing "stuck" transaction with a gas price that's too low.

Config Updates

  • Added support for the Pocket Network as a decentralized ETH1 light client option.
  • Added the rplClaimGasThreshold setting, which lets you set a gas price limit on automatic RPL reward claims - if the network price is above this limit, automatic claims will not go through. Setting it to 0 will disable auto-claims entirely.

Misc Updates

  • Changed the smartnode and smartnode-pow-proxy Docker images to use Alpine instead of Ubuntu as a base. This greatly lowers their size, and offers a better security footprint since Alpine provides a smaller set of capabilities for attackers to use.
  • Added support for an improved total effective network stake calculation to make RPL rewards more accurate.
  • Fixed timezone validation during node registration.