Node Governor for EOS.IO

in eos •  9 months ago

eos-control-panel.PNG

Ever since we started experimenting with eosio to create private testnets back in dawn 1.0 days, we had the necessity to manage our nodes (start, stop , verify logs and so on...) and it hasn't been very pratical in a security standpoint to give direct ssh access to the machine for everyone.

Then we joined public testnets and noticed that crashes were happening very often and sometimes we weren't able to relaunch our nodes, simply because we weren't in a place or time with ssh access. So came the idea to build a web based remote control panel for eos.io nodes. It will be most useful to block producers, but also to other non-producing full nodes as well.

The project was started by @igorls and @domiscd, they have already received some help from the community on github (https://github.com/toonsevrin, @eosdublin)

We welcome everyone to test our tool and collaborate with future improvements
You can read the instruction on how to install on your node in:
https://github.com/igorls/eos-node-governor

So, how it works...

We are using the PM2 process manager for Node.js to launch and keep running two apps and also lately we decided to launch keosd (eosio wallet daemon) with it too, PM2 is very handy to manage startup launch an monitor individual apps.

eos-governor

This is the main app, its responsible for doing constant health checks on the nodeos process and to launch a secure web sever (https) with authentication support that hosts the control panel.
remember to change the login and password on the config.js file
The app creates a self-signed ssl certificate on the fly, but you can add your own too ;)

For now you are able to Start / Stop / Reload you node as well as to keep an eye on RAM and CPU usage, but there is much more to come!

eos-api

Its an api proxy to protect the net_api_plugin from external access, while allowing any other traffic to pass through, its launched as a clustered process in PM2 which allow to lighten request load on the single-threaded (for now) nodeos process. We plan to add support for cached block request to come exclusively from this api, leaving nodeos to handle only the slower actions (such as pushing transactions)

Planned roadmap

  • P2P connection management
  • Fork detection
  • Cached requests
  • Network metrics
  • Disk usage metrics
  • External Alerts (email , sms maybe)
  • Multi-node management support
  • Master/slave node operation

We also like to thank our friends in the Jungle and Arrowhead testnets for ideas and support!

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:  

Awesome, can't wait to give it a go!

Amazing! We will make sure to try this out in EOS Scholar Testnet.

Keep up the great work!