We hack on a solution to resolve high availability problem of Validator nodes in PoS. This project will allow anyone to build its own highly available Validator setup.
We joined together 3 Dappnode hardware nodes. All of them are running a Polkadot node, but only one is validator. Two others nodes are only synching Polkadot chain.
To see how it works and what is going on, we created a Web UI which shows the current validator state.
Our hardware setup looks like this. It includes:
- 3 Dappnodes (Runs Archipel Orchestrator and Polkadot node)
- Raspberry Pi 3B (Plays the role of router)
- Switch (Links all together)
Here we can see that Avado Dappnode is the current validator and two others are only synching the chain state. If validator state changes the Web UI will be updated automatically.
Web UI was deployed at IPFS:
Source Code of Web UI:
Archipel Orchestrator is the main component of Archipel solution.
It watches the blockchain and pings other nodes. Then it switches the validator mode if necessary.
- /ipfs/QmPk2xBHaHbrjYYz7Y5oDpWuNp6sEqpyxkTJ91QQsm7xio
When Archipel is up we can see 3 nodes in the Polkadot telemetry. We can see that the “archipel-avado” node is in Validator mode. All other nodes are just synching. If the “archipel-avado” will become unavailable, the other one will take the relay and will become the new validator. Internally “archipel-avado” will pass in only synching state.
To select the next leader we need have a shared state between Archipel nodes. For this purpose we choose to use a smart contract to synchronize the state between 3 nodes:
We have tested it and deployed it on Goerli and Skale sidechain. Skale sidechain allow us to have a faster response for the High availability switch.