Witness Essentials: Watcher (Docker & Signing-Key Support)

in witness-category •  6 months ago


Witness Essentials: Watcher received an update, which includes:

  • Docker Support (incl. PM2 for 24/7 uptime)
  • Private Signing-Key Support
  • .env file has been removed and config.json refactored

Github: https://github.com/witness-essentials/watcher

Commits (1st Nov. 2018): https://github.com/witness-essentials/watcher/commits/master

What is Witness Essentials?

Witness Essentials is a collection of important tools for witnesses.

Github Organization: https://github.com/witness-essentials

More Info: Witness Essentials Explained

Watcher Overview

Witness Essentials: Watcher is a script that watches over a given witness account and in case of missed blocks, failsover to backup-nodes or disables the witness. Besides that, it can also rotate between the given nodes/keys and alert via multiple services.

To sum the features up:

  • Transaction signing either via private signing-key or private active-key
  • Rotation between keys supported
  • Multiple alert options available (TELEGRAM, SMS <NEXMO, TWILIO>, EMAIL)
  • RPC Failover
  • Robust error handling

Getting Started

The easiest way to get started is to use Docker:

git clone https://github.com/witness-essentials/watcher.git
cd watcher
chmod +x run.sh
./run.sh install_docker
./run.sh build
./run.sh start

For Telegram Alerts: You can create a new telegram-bot through botfather https://core.telegram.org/bots#6-botfather.

For more detailed installation instructions (incl. manually with node) check out the repository:

Github: https://github.com/witness-essentials/watcher

Update Instructions

If you're upgrading from an old version, make sure to edit the config accordingly.

The .env-file has been removed and the private active-key has to be added to the config now. But only if you're not using the private signing-key feature AND/OR if the witness is disabled.

If you find problems or have feature requests, feel free to leave a comment or create an issue on Github.


Do you believe that my work is valuable for Steem? Then please vote for me as witness.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  • Good code, and very useful for witnesses
  • Screen captures of the running script could have been nice to see.
  • Is there a way to simulate missed blocks to test the fail-over and disabling features?

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.


Thanks for the evaluation!

To test missed blocks, you could do something like this

if (witness.total_missed > _g.current_total_missed || true) {
      let missed_since_start = (witness.total_missed - _g.start_total_missed) + 1



Thank you for your review, @helo! Keep up the good work!

Hi @therealwolf!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @therealwolf!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!