N3developertoolkit / neo3-visual-tracker

Neo N3 blockchain explorer that is directly available within Visual Studio Code for developer usage and development scenarios.
https://marketplace.visualstudio.com/items?itemName=ngd-seattle.neo3-visual-tracker
MIT License
7 stars 11 forks source link

[UX] status bar information #137

Open ixje opened 2 years ago

ixje commented 2 years ago

There's quite a bit of confusion about what this status bar is supposed to tell us image I therefore want to open this issue to discuss what it is, isn't, should be, shouldn't be and strange behaviours I've observed.

Background

I first mentioned not understanding this status bar here https://github.com/ngdenterprise/neo3-visual-tracker/issues/124#issue-1164023091 and then recently (2 months after the first post and having forgotten that I wrote about it) again here https://github.com/ngdenterprise/neo3-visual-tracker/issues/129#issuecomment-1140758269. I'm having a discussion with the user robliou in #124 and felt it was time to split it off in its own issue

What is its purpose?

Just from its visual presence I cannot understand what it is telling me, which from a UX perspective is a problem. Let's take this status as an example

Neo: Not connected

To figure out what connected in this case means and why I need to be connected I had to look at the source code. It turns out it says something about the "connection status" (more on this later) of the BlockchainMonitor class. This class, which if my scan is right, polls a chain on an interval for its block height and caches blocks that have transactions internally for quick access elsewhere in the code base. It obtains this information via RPC calls to the chain.

So "connection status" refers to the RPC connection of the BlockchainMonitor class? Yes and No. The status changes (or is supposed to, see the observations section below) depending on if the block count of the chain can be requested via RPC. RPC is not a long lasting connection, just short get/posts requests, which adds to the confusion of what "connected to" means in the screenshot above.

What I think it is; if the "system" can successfully monitor a chain.

Should it exist?

Why should I care if some internal process can cache information? I just want to know that it failed to obtain the latest information when I open a tab/window that actually uses the information this monitor tries to obtain/cache (e.g. the block explorer). Until that time I don't care.

I tend to think that this status bar shouldn't exist at all. If it is decided that it should exist, then please let's change what the text says to something like Chain monitor [Online]: monitoring <chain name>

Observations

Let's assume the status bar should exist

ixje commented 2 years ago

@devhawk would love to get your view on this