Node Butler & icon-node-monitor: Tools to simplify node management and monitoring

This proposal goal is to simplify the experience of managing and monitoring nodes in the ICON Network by creating a non custodial web app (Node Butler) that simplifies the execution of several tasks regarding on-chain node management and a telegram bot (icon-node-monitor) that allows to monitor node online status, goloop version etc.

Project Category.

Development, node management tools.

Project Description.

Node butler is a web app that allow validators to login using any ICON wallet that implements the ICON JS Provider API (currently ICONex and Hana) or any supported Ledger device, to allow management of on-chain node related tasks like adding bonds, updating node data, signing tx methods, voting on network proposals and more it will also show detailed information about the node.

Detailed functionality for Node Butler:

  • Displaying all node data available on-chain (Example show in image).
  • Setting list of wallet addresses available to bond in the node.
  • A summary of the network proposals (description, voting result, etc);
  • Voting on new network proposals.
  • A summary of the CPS proposals (proposal count, if they were approved or denied, voting results, etc).
  • Contract explorer and signing methods in selected contracts.

ICON-node-monitor allows node validators to monitor their node and subscribe to notifications via telegram on node online status, goloop version running in the node, new network proposals submitted to the network, etc. Any team can run their own bot in their own servers if they want to monitor their nodes privately or they can subscribe to a channel that will have a bot running in one of our servers.

Detailed functionality of icon-node-monitor:

  • A list of commands that can be used to check nodes you add to be monitored.
  • Runs a recursive check every minute and in the case any of your nodes being behind the ICON Network block height for more than 100 blocks it sends a message to all the users (or chat groups) you add to the bot.
  • A set of recursive task that run at different intervals to check if the monitored nodes are online, what Goloop version they are running, if new network proposals have been submitted to the network and a clean up task for the ‘logs/’ folder. In the case that any node is offline, a new network proposals was submitted or any monitored node is running an outdated version of Goloop, the bot will send alert messages to the users (or groups) registered to the bot report list.

Milestones & timeframe

The timeframe for this project is 2 months and will have the following milestones:

  • Month 1: Front-end development of Node Butler (web app design, wallet integrations, beginning of development for the data fetching code from the ICON Network, development of back-end server and database if necessary) and back-end development of icon-node-monitor bot.
  • Month 2: Finish development of Node Butler and icon-node-monitor, product beta testing with validators, creation and configuration of necessary servers and product finalization and publishing.

Funding

Total requested amount: $7.200
For this project the funding breakdown is as follow:

  • Front-end and Back-end development for both products per month: $3.000 ($6.000 for a total of 2 months of development).
  • $100 per month on server costs for one year.

Message from Sponsor:
This project will be self sponsored and in the spirit of growth and fomenting development in the ICON Network all code will be published with Open Source license in our Github repositories.

What is the expected deployment environment of the Node Butler? Is it intended to be run locally, interfaced with a remote product, or run from a central environment and attached to a remote product via a user system?

Node Butler would be a fullstack webapp, Im planning on the frontend fetching directly some data from the network, but things like getting the CPS proposals takes a couple fetch calls for each proposals and there are currently like 35 proposals so far, its too much fetch calls to make in the front end, because of this im planning on building a backend with a database that takes care of that.

im also planning on running in that server an API node

Would you be the only one running the app? Would it fetch info for every node or only the node it is associated with?

Node Butler (the web app) would be available for all node validators (via node-butler.espanicon.team or something like that), it will have a function to login with your node wallet via ICONex or Hana and once you are logged in you will see your node on-chain data and will be able to sign tx for common node related tasks (voting on a network proposal, settting up bonder list, etc)

icon-node-monitor (the bot) can be easily set up for each team to run their own version of the bot in their own servers or they can simply join a channel that I will be creating so they can access an instance of the bot that I will be running in our servers.

1 Like

Nice, I was hoping that would be how it works

1 Like