Atlas should make clear when relay details come from outdated consensus
This is relevant to both Atlas and Globe, as far as I gather. Wasn't entirely sure whom to CC, sorry if too many recipients.
Two very much related things:
-
Onionoo-using tools should make clear to the user when relay flags come from an outdated consensus.
-
Onionoo-using tools should be careful using the keyword uptime, especially when relay is not running (not present in the last consensus).
Example: relay 0FB356FB... on Atlas (if the relay gets included in the newest consensus, see attached image (atlas_details_relay_running.png)). Here the problem is that Atlas (and Globe as well) may show the Running flag to be present, but show the overall relay as not running (running: false).
The latter is because the relay wasn't featured in the last consensus (as reported by Onionoo); the former is because Onionoo is returning the last known flags (from the last consensus where the relay was featured in) for this relay, among which the Running flag is present.
As Karsten said,
The flags thing is a presentation problem, not a data problem. Onionoo should include the latest flags, but Atlas (and Globe?) should present them in a non-confusing way. Atlas (and Globe) can learn from last_seen when these flags were contained in a consensus.
Flags could either get some simple indication of being old / 'not fresh' (simply when running: false), and/or there could be a small field indicating where these flags are coming from ("reported by last available consensus" in green, vs. "reported by authorities at Onionoo:last_seen (outdated by <in_hours(Onionoo:relays_published - Onionoo:last_seen)> hours)", or somesuch.)
Likewise with the uptime keyword: I suppose that either the name for that field (which is derived from Onionoo's last_restarted) should be changed (I guess last restarted doesn't sound intuitive? It would actually make sense to me at least / would be more honest), or it should be removed when running: false.
Re: fixing this:
-
re: 2., if it's only about removing the uptime field/span when relay not running, it'd just be about inserting a simple conditional at https://gitweb.torproject.org/atlas.git/blob/HEAD:/templates/details/main.html#l101 I suppose?
-
re: 1., depends on decision, but should be similarly simple.
-
haven't looked at Globe's code