If we want to promote decentralization, we should strive to make Nimbus as easy to use as possible for home stakers with minimal technical skills. Ideally, it should be possible to install, configure and continuously operate Nimbus without ever touching the command line. The set of features required to make this possible will also enable hardware vendors to ship Nimbus in specialized plug-and-play home staking hardware that offers only remote administration (e.g. an always-on wi-fi router).
To achieve these goals we will develop a set of user-friendly installation packages for Nimbus, following the established practices of all major operating systems (Windows, macOS and Linux) and few key embedded OSes such as OpenWrt and DD-WRT. The users of Nimbus will be able to continue relying on all existing management and monitoring methods through the familiar command-line interface, but going forward we will also offer a management and monitoring GUI available in the Status desktop and mobile applications. It will be possible to pair any installation of Nimbus with the Status account of the user, so it can managed from any instance of the Status app (e.g. on a mobile device owned by the user). The Status desktop app will provide a straight-forward way to install Nimbus in an already-paired configuration to stream-line the setup. Please note that the pairing process will preserve the the user privacy completely and won't leak any information to Status or another third party.
Some technical details and development items:
The Nimbus installer will actually install a piece of software called "Nimbus node manager". The software has the following responsibilities:
[ ] It keeps track of new releases of the Nimbus consensus layer executable (aka nimbus-eth2), the Nimbus execution layer executable (nimbus-eth1), the Nimbus command-line interface (used to manage and interact with locally running nodes) and Fluffy.
[ ] It can upgrade and roll-back any of the above components in zero-downtime fashion. The initial version of the zero-downtime upgrade procedure will take advantage of the "time to next action" metric of the Nimbus beacon node.
[ ] It can perform upgrades automatically. The user is free to enable or disable this policy and also to specify an upgrade delay period (e.g. 2 weeks) in order to allow for potential problems to be discovered by more active early adopters.
[ ] It communicates with the Status app through the Waku protocol. This ensures that the pairing can be established without any networking configuration (i.e. the user doesn't have to specify IP addresses and ports of the running Nimbus instances) and that not even metadata regarding the use of Nimbus is leaked to anyone. The locally running Nimbus node can bind its API and metrics port to localhost and the Nimbus node manager can made them available to the Status app through a HTTP-over-Waku transport.
[ ] The user can remotely start new Nimbus nodes connected to different networks (e.g. testnets). The Nimbus node manager then acts as a simple supervisor for the started processes.
Since the Nimbus node manager is a relatively simple executable and it is able to upgrade even its own components, the Nimbus packages can be safely up-streamed to become part of the official package repositories. The user doesn't need to worry about installing an older version of Nimbus because the node manager will take care of downloading the latest binaries upon its first use. The binaries will be stored in mutable location of the file system such as /var/lib/nimbus/bin/nimbus-cl-X.Y.Z.
Nimbus will be able to use a single data directory for all of its operations. The beacon chain data for a particular network will appear as a sub-folder in this shared directory. Most users should be happy with the default path (e.g. /var/lib/nimbus/data)
Most configuration variables will be modifiable at run-time (e.g. setting a new web3 provider). The configuration values will be written to a system-wide config file. Settings applicable to a particular network may be stored in a separate config file in the network sub-folder.
The Status app will provide the user with helpful notifications and it will feature dashboards with various performance metrics, making it unnecessary to use third-party tools such as beaconcha.in and Grafana. The user will also be able to execute the administrative actions described above (upgrades, rollbacks, launching new nodes, changing settings, creating new validators, withdrawing funds, etc). It will be possible to pair mode than one Nimbus instance with a single user account.
To pair an existing Nimbus installation with the Status app, the user will go through the following process:
The user navigate to a "Nimbus Node management" section of the Status app and selects an action "Pair with a command line install of Nimbus". This generates a random ID that the user can easily copy/paste. On the host where Nimbus is installed, the user runs the command nimbus pair <random-id> and this completes the pairing process.
If we want to promote decentralization, we should strive to make Nimbus as easy to use as possible for home stakers with minimal technical skills. Ideally, it should be possible to install, configure and continuously operate Nimbus without ever touching the command line. The set of features required to make this possible will also enable hardware vendors to ship Nimbus in specialized plug-and-play home staking hardware that offers only remote administration (e.g. an always-on wi-fi router).
To achieve these goals we will develop a set of user-friendly installation packages for Nimbus, following the established practices of all major operating systems (Windows, macOS and Linux) and few key embedded OSes such as OpenWrt and DD-WRT. The users of Nimbus will be able to continue relying on all existing management and monitoring methods through the familiar command-line interface, but going forward we will also offer a management and monitoring GUI available in the Status desktop and mobile applications. It will be possible to pair any installation of Nimbus with the Status account of the user, so it can managed from any instance of the Status app (e.g. on a mobile device owned by the user). The Status desktop app will provide a straight-forward way to install Nimbus in an already-paired configuration to stream-line the setup. Please note that the pairing process will preserve the the user privacy completely and won't leak any information to Status or another third party.
Some technical details and development items:
The Nimbus installer will actually install a piece of software called "Nimbus node manager". The software has the following responsibilities:
Since the Nimbus node manager is a relatively simple executable and it is able to upgrade even its own components, the Nimbus packages can be safely up-streamed to become part of the official package repositories. The user doesn't need to worry about installing an older version of Nimbus because the node manager will take care of downloading the latest binaries upon its first use. The binaries will be stored in mutable location of the file system such as
/var/lib/nimbus/bin/nimbus-cl-X.Y.Z
.Nimbus will be able to use a single data directory for all of its operations. The beacon chain data for a particular network will appear as a sub-folder in this shared directory. Most users should be happy with the default path (e.g.
/var/lib/nimbus/data
)Most configuration variables will be modifiable at run-time (e.g. setting a new web3 provider). The configuration values will be written to a system-wide config file. Settings applicable to a particular network may be stored in a separate config file in the network sub-folder.
The Status app will provide the user with helpful notifications and it will feature dashboards with various performance metrics, making it unnecessary to use third-party tools such as beaconcha.in and Grafana. The user will also be able to execute the administrative actions described above (upgrades, rollbacks, launching new nodes, changing settings, creating new validators, withdrawing funds, etc). It will be possible to pair mode than one Nimbus instance with a single user account.
To pair an existing Nimbus installation with the Status app, the user will go through the following process:
The user navigate to a "Nimbus Node management" section of the Status app and selects an action "Pair with a command line install of Nimbus". This generates a random ID that the user can easily copy/paste. On the host where Nimbus is installed, the user runs the command
nimbus pair <random-id>
and this completes the pairing process.