Inschpektor — The user friendly peer manager for your IOTA node :)

codepleb
codepleb
Nov 18, 2018 · 6 min read

Hi there

I was digging a lot into nodejs, vuejs and progressive web apps and wanted to bring what I learned somewhere into a project. That’s how inschpektor was born. A project being at the very front of current leading edge technology.

Inschpektor is inspired by the iota peer manager. But the code is completely unrelated to iota-pm and not at all based on it.


So what are the features?

  • No more manual checking, thanks to notifications! You can use your browser and activate notifications. Those will work on any computer and on any device, except the IOS mobile devices (blame Apple for that fact). Those notifications will reach you like native notifications you know from other apps, no need to keep the browser open or anything. As soon as your node has a problem, you will get informed and no longer have to manually check all the time.
  • Installable! Install inschpektor like an app, directly from the browser (if you don’t want to open it in the browser all the time).
  • Access to your iri config file. When you add or remove a neighbor, the changes will also be written to your iota config.
  • Authentication: Keep your app publicly accessible, while being the only one able to execute commands or view specific data related to your node. You can obviously still run it on the local network only by keeping the ports closed.
  • Restart your node: Directly from the user interface!
  • Track your neighbors: See if their node is still in sync, if they still communicate with your node, their IRI version, etc
  • Instant feedback! You do not need to keep the web ui open for 30 seconds to see, which neighbors are still healthy and which are not. Open the app and directly see if another peer has gone rogue.
  • Add nicknames to your peers, so you know which IP belongs to which username.
  • See the state of your own node (RAM consumption, java version, IRI version, sync state, ping, etc)
  • Indicators:
    👽 A neighbor not being persisted in your IRI config (probably a peer that NELSON manages)
    👑 Premium neighbor, that allows for fetching additional info (like their milestone, their iri version, etc.)
  • Node status badge: Compares the latest milestone with other peers and shows if your own node is in sync.
  • Full transparency: If you want more than just the abstract information about if the node is active and healthy, click on thei neighbor and you will see the communication data in detail for this peer.

“I’m still here, give me the details!”

Let me help you getting through all of the stuff then.

How do I install & run it?
Stuff like that I you can find on the readme file directly on my github account, since the process could change with code changes. The github page will be most up to date, but there should not change much. I also created a youtube playlist for those that do not feel that confident about reading technical manuals: https://www.youtube.com/watch?v=EjXs7kpBqjQ&list=PLAjtvx6a60HLvuLDphPaFRhD3Oe0NVn9J

What do the 👑 & 👽 indicators on the dashboard mean in detail?
👽 This is a neighbor that only temporary appears an will be gone after a node restart. It is not contain within your iota config and therefore a node restart will not reactivate it.
👑 This means a neighbor has the “premium” status. I, for myself, will make sure that my future static neighbors will be “premium” ones before I add them, since it makes the communication between our nodes more transparent. Instead of just the usual info you get about a neighbor, you get his iri version and his synced state on top of it. Read here how to become a premium neighbor to others.

What does the information for each neighbor (in the Dashboard) mean anyways?

Protocol: The protocol used for communication (TCP or UDP)
Healthy: The node has a negligible amount of invalid transactions
Active: The node is sending you transactions.
Synced: (Premium Neighbours only) Is the node of the neighbor still in sync?
Iri-version: (Premium Neighbors only) The iri version your neighbor is running.
Ping: (Premium Neighbors only) Indicated how stable the communication to that neighbor is.

I set a stupid password and want to change it, how?
You need to click “Reset Inschpektor” in the “Manage” view to change the password. You can only do that if you are logged in. If you forgot your password, you currently need to reinstall the whole application (“npm uninstall”, “npm install” again). This is a security measure and protects from unauthorized people being able to harm your node.

I have multiple nodes, can inschpektor handle all of them?

That is possible. You need to run one instance of inschpektor per node. But you cannot install inschpektor globally anymore then. If you install it globally, it can only serve one node. You need to make a local installation for each node you want to manage. To do that, inschpektor needs a unique port for each instance you run. The readme will give more insights into this topic.

Why is running as root user an option?

While I know and understand that this is a huge risk, I advice you to do that only if you run into problems and you don’t really understand, how linux permissions work. I got some error-requests that were related to users not understanding that part.

Running inschpektor with sudo- or root-permissions is not necessary at all, IF you know what you were doing when you setup your iota node and everything. I myself run it with sudo, because I need superuser permissions to restart my node and also to write to my iri configuration. Inschpketor will not be able to do that if those files have restricted access for your current user.

Donations

If you want to show some love, here is the IOTA-address you can send it to. :)

IZ99FQWJUQJCDLBSUOEDZIVROSARFYLXJWPZNAXQPCCGAHCUWKRE9RNHMGNHZTAIZHPUDV9HMSPNJLYSXPNEPTRHUW

BTC: 32o6kbgZqJ9nhT2aRsfEGcMtpThJ2za89T
LTC: LgfSNjqVpXFj9xN8ZWPR9qTZQJpcRRNXRZ
XMR: 4GdoN7NCTi8a5gZug7PrwZNKjvHFmKeV11L6pNJPgj5QNEHsN6eeX3DaAQFwZ1ufD4LYCZKArktt113W7QjWvQ7CWAjwVCr95LATLKqtxr
XLM: GA5XIGA5C7QTPTWXQHY6MCJRMTRZDOSHR6EFIBNDQTCQHG262N4GGKTM
XRP: rLHzPsX6oXkzU2qL12kHCH8G8cnZv1rBJh

What is the vision of this project?

  • The goal is to make handling a node as easy as possible.
  • UX and usability are the top priority. I want users to be able to run a node with as little knowledge as possible. Knowing the details is always king, but strengthening the network should use as little effort as possible.
  • For more specific points, I reference the readme file here, because that one is part of the codebase and regularly updated.

Feedback

You find find me in telegram @codepleb or in the iota discord codepleb.net#9990. I would love to hear from you! Since I am the programmer of this app, I guess there might be “implicit knowledge”. Whenever you read a manual from me and you do not get it or you do not understand some parts of this application, please do not hesitate to write me a message, so we can improve it! And feedback of all kinds is always appreciated! :)

Subscribe for Updates!

If you are interested in getting details about future updates, feel free to subscribe to my telegram broadcast channel: https://t.me/inschpektor
I also post updates on my twitter channel: https://twitter.com/codepleb4

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store