Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#23962 closed enhancement (fixed)

Allow searching by bridges by version with the version parameter

Reported by: irl Owned by: metrics-team
Priority: Medium Milestone: Onionoo-1.8.0
Component: Metrics/Onionoo Version:
Severity: Normal Keywords:
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


The version search parameter returns "only relays running a Tor version that starts with the parameter value without leading "Tor"."

This doesn't work for bridges although Onionoo has that data.


As the description does say "relays" not "relays and bridges", I'll let this be an enhancement not a defect. (Although really they are bridge relays...)

Child Tickets

Change History (6)

comment:1 Changed 3 years ago by karsten

This is indeed an enhancement, not a defect, because when we say "relays" we really mean "relays that are not bridges".

So, it's a bit tricky. We retrieve version information of relays from consensuses which contain "v" lines like in the following entry:

r networkofthesmoker AAaX5kASI9/xzl9Qp7aFdPOSnrQ eBpYDHdsD6gPGvFavxsk5PoMEkI 2017-10-24 03:51:15 443 0
s Fast Guard Running Stable V2Dir Valid
v Tor
pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-4 LinkAuth=1,3 Microdesc=1-2 Relay=1-2
w Bandwidth=4540
p reject 1-65535

However, bridge network statuses don't contain such lines:

r Unnamed ACzV/+Qobny0/Tk7Jodk8cP+ME4 EQdxiGmeXGQUcf1RsBjPU3gtFpY 2017-10-24 05:52:13 53811 0
s Fast HSDir Running Stable V2Dir Valid
w Bandwidth=64
p reject 1-65535

What we'd have to do is extract version information from bridge server descriptors, like from this line:

platform Tor on Linux

Doable, but more tricky than in the (non-bridge) relay case.

comment:2 Changed 3 years ago by irl

The reason for this is the problems with the bridges not appearing as running yesterday. My bridges work, but run an older version, and I wanted to query to see if all bridges of a specific version were affected or if that wasn't the issue.

I don't think it would actually be that much more tricky, as you match on the start of the string after the Tor is dropped, so you could treat that line in exactly the same way. The trailing operating system information wouldn't mess up the search.

comment:3 Changed 3 years ago by karsten

Status: newneeds_review

(I worked on all currently open (recommended) version related Onionoo tickets including this one: #22488, #23962, #21827, and #23544.)

The implementation was not as tricky anymore after doing #22488 first.

Now, regard the question whether this requires a minor or major protocol version update, I'm inclined to say minor. The same query for a given version that previously returned only relays would now return relays and bridges. But I can hardly imagine that clients would rely on that and now be seriously confused by getting some bridges back, too. I'd say, let's merge all four version-related changes together and just make a minor version bump.

Please review the second commit 919d5ff in my tasks-22488-23962-21827-23544 branch together with specification changes in commit 75c7626 in my corresponding metrics-web branch.

comment:4 Changed 3 years ago by iwakeh

Status: needs_reviewmerge_ready

Indeed, this is only 'worth' a minor version increase, especially as relays and bridges are separated by the document structure.
As remarked on #22488: tests and checks pass, spec changes describe the changes. => ready for merge.

comment:5 Changed 3 years ago by karsten

Resolution: fixed
Status: merge_readyclosed

Great, thanks for checking! Merged. Closing.

comment:6 Changed 3 years ago by iwakeh

Milestone: Onionoo-1.8.0

This will be part of the next release.

Note: See TracTickets for help on using tickets.