Coming next to your DAppNode… Multi-client validation in production on Gnosis Chain

Pol Lanski
DAppNode

--

Switching between different client implementations has been in testing on the Prater testnet on DAppNode for a while, and is finally coming to a production environment on the Gnosis Chain.

We presented the multi-client setup at the EthStakers event at Devconnect. The setup was bulletproof enough back then, and any user starting from zero would not experience any hiccups. It was almost ready. But for those who were already validating, the migration of the keys on-the-fly so the user could update from their current Prysm setup to a web3signer + beacon chain client of choice setup without a hiccup was a technical hurdle!

After weeks of extensive testing, of failed migrations (but no slashings, even in the worst conditions!), several migration approaches and lots of cheeky edge cases, we are confident we can bring this into production.

What should I expect as a current GNO validator?

You can expect a seamless transition from a setup that restricts you to only validate in prysm to being able to switch client validators at will without losing more than a few seconds of online time, and likely no more than one missed attestation.

Here’s the timeline of events that’s coming for you:

  1. A new DAppNode core release will be published. This DAppNode version will prohibit you to have any combination of packages that could be hosting keys at the same time. This way, we make it impossible for you to even have installed two packages that, if misused, could cause a slashing event.
  2. A new major update of the Prysm client will be published. You will need to trigger this update manually, auto updates won’t work for such an update. Updating Prysm will install the web3signer package and will move the keys to it. The new Prysm version will be communicating with the web3signer to receive the pubkeys of your validators and start sending attestation assignments to the new key holder.
  3. Once you reach this point, you’re good. You’re validating and there’s nothing else you need to do if you want to keep using Prysm. But now you have the option of switching to another validator client. If that’s your choice, keep reading.
  4. Once you’re up and running with Prysm, you can then install Teku or Lighthouse (Nimbus doesn’t work at a level that we are fully comfortable with in Gnosis Chain yet), and use checkpoint sync to not have to wait for the full beacon chain to sync (watch this to know how to configure checkpoint sync).
  5. Then you can go to the web3signer package > Config and use the drop-down menu to change to a client that you have installed and synced. Please note that if you choose a client that is not installed, the web3signer will be pointing to a package that doesn’t exist and hence you won’t submit any validation work.

Voilà! You are now validating using another client and, what’s best, you can change whenever you want!

Some considerations:

  • The UI that you might have been using, Prysm’s UI, won’t be available anymore, as the keys will be securely stored in the web3signer. A new keymanager UI is also built into the web3signer package. It will display information about your keys, and you will have a DMS dashboard to keep track of all your validator data.
  • It is highly recommended for you to activate the Telegram Bot. It will let you know if you are trying to validate with a package that you have not installed. Your bot is your friend!
  • What if the migration goes wrong?

Not to worry. First of all, it shouldn’t, unless there’s some problem with your machine, the power goes off mid-migration or your cpu gets hit by a cosmic ray. And even in this case, we backup your keys and prepare them for a manual migration. The backup gets eliminated if the migration goes well or after 20 days, so there’s ample time to manually move them to the web3signer. Let us know if that happens and we’ll guide you on the process (spoiler alert, it’s almost as simple as the automatic way).

  • How does the multi-client work and why does it help me?

For a diagram of how the solution works and why we chose to make it work this way, please look at this 1 minute section of this video https://youtu.be/Z0aK1OYPhQg?t=19

  • When can I expect the multi-client setup to come to Ethereum?

Soon.

This multi-client setup will be coming in a few weeks to Ethereum Mainnet. Gnosis Chain and its beacon chain are the perfect canary network, with the right balance of skin in the game and lower stakes than Ethereum. We fully appreciate and support Gnosis Chain in their effort to give back to the Ethereum ecosystem by working closely with the client implementer teams and other ecosystem players like us to make sure Ethereum evolves safely.

--

--

Pol Lanski
DAppNode

Passionate about a better world and technology. #DAppNode #Blockchain4Good