Skip to content

Instantly share code, notes, and snippets.

@rBurgett
Created September 20, 2022 23:52
Show Gist options
  • Save rBurgett/62ce49caf02cae861708ae68dd2d7ae2 to your computer and use it in GitHub Desktop.
Save rBurgett/62ce49caf02cae861708ae68dd2d7ae2 to your computer and use it in GitHub Desktop.
Node Pilot 0.16.0 Release Notes

Features

  • Ethereum 2.0 support
  • Pocket BETA-0.9.x support
  • Ethereum Goerli testnet support
  • Pocket nodes are now served via Node Launcher which allows for one-click updating like other Node Pilot supported chains
  • All Node Pilot functionality is exposed via a JSON-RPC server at port 34417 (temporary documentation can be found here: https://gist.github.com/rBurgett/22605a4880e6f6e1cda15e426d02b299)
  • All key passwords are now encrypted
  • Nodes now automatically restart if they unexpectedly shut down
  • You can shut down Node Pilot while leaving your nodes running
  • Updated file structure to allow for more flexibility and chain implementations as well as significantly smaller backup files
  • Includes the standard validator API which will soon include support for Fuse, Harmony, and Ethereum 2.0 staking through the UI.
  • All node peer ports are now exposed to the host machine

This is the biggest release in the history of Node Pilot. It includes many significant new features as well as countless bug fixes. Node Pilot now provides API access to all of its functionality. This can be access via the new JSON-RPC server at port 34417 as well as via the command line. This allows for large-scale scripting of all Node Pilot functionality. The API has been heavily tested in production over the last few months with enterprise deployments running hundreds of Pocket nodes completely headless. This release also includes support for the new standard validator API through Node Launcher which allows for creating validator nodes and staking on multiple blockchains, not just Pocket. In the near future, Node Pilot will allow you to create and stake Fuse, Harmony, and Ethereum 2.0 validators.

When you first run Node Pilot 0.16.0 you will be led through a number of prompts while it updates. Before you upgrade, you will want to save a backup of your config folder in case anything unexpected happens during the upgrade. It is important to understand that these are breaking updates. After the changes have been made, you cannot revert to a previous version of Node Pilot without replacing your config folder with a backed up version and possibly your data folder as well.

But, these features come with breaking changes and it is important that these be understood.

Breaking Changes

  1. File structure updates

There are a number of file structure changes which were necessary in order to support the validator API as well as a number of newer chains and chain clients. For example, there is no longer a nodes.json file in ~/.node-pilot/config. The Pocket Nodes which used to be in there now live in ~/.node-pilot/config/chains.json. There are also many changes within ~/.node-pilot/config/nodes. Fuse and Pocket for example both have updated config file structures. In pocket node folders you will no longer find a root directory. The directories which used to be under the root directory in the config folder are now in the chain data folder. The configs themselves have been moved around as well. The pocket keystore is now in the keys directory where it belongs, having previously been in the root folder which no longer exists. Chain data in ~/.node-pilot/chains have also been updated as well, with some chains experiencing more changes than others.

  1. Encrypted Passwords

All key passwords are now encrypted. They used to be in plain text in nodes.json but are now stored encrypted within a new file called ~/.node-pilot/config/passwords.json. This provides significantly more security, but it also means that you will not be able to copy validator nodes between Node Pilot instances just by copying the data from within chains.json. While we have always encouraged people to not touch the files within the .node-pilot directory, we know that some people do go in there and make their own changes at their own risk so it was worth bringing up.

All passwords are encrypted with the user's master password, so keeping track of your master password is more important than ever. If you lose your master password, you will lose all access to your Node Pilot instance. You can no longer do old tricks like deleting users.json and then creating a new user. If you do that, you will not be able to decrypt your passwords. So, it is aboslutely essential that you keep track of your master password and that you keep backups of your config folder and all of your keys.

  1. CLI Changes

There are now multipe options when shutting down Node Pilot. ./np stop used to stop Node Pilot and all nodes. But, now it only stops Node Pilot itself while leaving the daemonized nodes running. If you want to do a full shutdown of Node Pilot from the command line, you must enter ./np stop --all.

  1. Moving pocket nodes between Node Pilot instances

With Node Pilot 0.16.0, because of the changes to passwords and nodes, there is currently no way to move pocket nodes between Node Pilot instances. You can no longer just copy the files from one instance to another. We are working on a native solution for importing/exporting from the UI as well as from the CLI and via the API, but that is not ready yet. So, for the moment your pocket nodes cannot be moved from the Node Pilot instance that they were created in to another Node Pilot instance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment