⏰ Why is it needed?
Without some type of monitoring system, witnesses rely on manually keeping an eye on the state and status of their witness nodes. We all know that no one can be watching 24/7 so there are times when if things go wrong with a node it could go many hours before detected. There are scripts out there that can watch a witnesses number of missed blocks, and on increase signal a backup node to take over.
You don't want to run the script on the same server as your node because if the server crashes both the node and the monitoring script will go down. Therefore it is common practice to have a 3rd server to host the monitoring script. This means another monthly bill just for monitoring.
Or you can buy a $35 Raspberry Pi mini computer and run pWP right from your home internet. It will pay for itself in just a few months.
🚨 What Does it Do?
Version 1 simply stores the brainkey pub_key of your 2 nodes (active and backup) and monitors your witness missed blocks reported by the chain. When a new missed block is reported, the pWP will send the witness update command to the chain and set the backup public key as active. That way next time your witness gets into the block rotation, it will be your newly defined active node that will produce the block. It will also send an email notifying you of the issues in real time.
Version 1 Flow
🙅♂️ What if I don't have a backup node?
pWP can still be a valuable tool even if you don't have a second node to switch to. By configuring the NULL key as one of your public keys it will prevent subsequent blocks from being assigned to your witness (and missed). So although your witness will be disabled, you will not continue to miss blocks. You will also get the email notification that your witness missed the block and get to address the issue faster.
👀 Version 2
Version 2 will be a completely different beast than version 1 which just started as a proof of concept. The biggest enhancement for V2 will be the ability to monitor the state of both nodes and handle issues BEFORE a block is missed. This will be accomplished by pWP communicating directly with the nodes and not relying solely on the chain for input.
Some of the current planned enhancements to V2 are:
- Ability to monitor both primary and secondary nodes and identify issues BEFORE a block is missed.
- Improved key management and verification
- Improved GUI to include status for both nodes
- More granular configuration of thresholds
- Multi-witness support - TBD
- Concurrent multi-chain support -TBD
With the ability to monitor the nodes directly, a more comprehensive approach can be taken to identify problems before a node is called to produce a block. This will also allow for detailed notification emails.
👨🚀 Beta Testers Wanted
We have been testing pWP V1 on both Whaleshares and Smoke but would like to expand that to cover a larger test base. We are hoping to find a few witnesses on each platform that would be willing to do some controlled testing before just setting and forgetting.
What we mean by controlled testing is to configure a pWP and then invoking a fault on your active witness and monitor the reaction when your witness fails to produce a block. What we don't want is people configuring a pWP and just letting it run unattended right out of the box. We are still in beta, so there is the potential of things going wrong. If you monitor your testing, you can easily rectify any issue and not miss blocks for an extended time period.