#26919 closed enhancement (fixed)

Remove fingerprint parameter

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

Description

We have two quite similar parameters: lookup and fingerprint. Both expect a full hex fingerprint and return a single relay or bridge (or more than just one when we implement #25448).

The main difference between these two parameters is that fingerprint returns relays or bridges regardless of whether they have been running in the past week. There is no other way to access these documents other than by knowing the exact fingerprint of a relay or hashed fingerprint of a bridge. Unlike other parameters, the fingerprint does not even work with hashed relay fingerprints or hashed hashed bridge fingerprints.

Do we need to keep the fingerprint parameter with this somewhat special behavior?

We added the parameter four years ago for one of the EFF relay challenges. But is it still in use? And is that because clients really need to access older relays and bridges, or because their developers did not know about the lookup parameter?

Setting type to enhancement, because removing the fingerprint parameter would let us remove some special code from the code base.

However, if there are valid use cases to keep the fingerprint parameter, let's just collect them here and let the parameter in.

Child Tickets

Change History (11)

comment:1 Changed 13 months ago by irl

Can you pull the stats on how many requests were made with the parameters?

comment:2 Changed 13 months ago by karsten

Not easily. We only keep aggregate statistics of most frequent parameter combinations:

2018-07-24 13:46:11,543 Request statistics (2018-07-24 13:46:11, 3600 s):
2018-07-24 13:46:11,544   Total processed requests: 40467
[...]
2018-07-24 13:46:11,544   Most frequently requested parameter combinations: [search, limit, type, fields] (21944), [lookup, fields] (18106), [lookup] (236)

So, at least we can say that at most 181 (= 40467 - 21944 - 18106 - 236) out of 40467 requests (0.58%) included the fingerprint parameter. Could also be 0, but we don't know for sure.

What we could do is extend the statistics to include less frequent parameter combinations beyond the top 3 without giving a request count for privacy reasons. Then we'd at least find out whether the fingerprint parameter is used at all, over a day or two.

comment:3 in reply to:  2 Changed 13 months ago by karsten

Milestone: Onionoo 1.16.0
Status: newneeds_review

Replying to karsten:

What we could do is extend the statistics to include less frequent parameter combinations beyond the top 3 without giving a request count for privacy reasons. Then we'd at least find out whether the fingerprint parameter is used at all, over a day or two.

Please review commit d767dba in my task-26919 branch.

If this patch looks okay, let's include it in the next release and announce for a month later that we're going to remove the parameter. And just in case it turns out that the "fingerprint" parameter is used more than we thought, we can still leave it in. (We'll do another change in that next major version, which is the "version" parameter change, so there will still be a new major version.)

comment:4 Changed 13 months ago by irl

Status: needs_reviewmerge_ready

LGTM.

comment:5 Changed 13 months ago by karsten

Status: merge_readyneeds_information

Great, thanks for looking! Merged the logging patch to master. Leaving this ticket open for actually removing the "fingerprint" parameter if we still like the idea after seeing the statistics.

comment:6 Changed 13 months ago by irl

Status: needs_informationneeds_revision

The patch actually needs revision.

/home/irl/tor/onionoo/src/build/java/base.xml:183: Test org.torproject.onionoo.server.PerformanceMetricsTest failed

Can you update the test?

comment:7 Changed 13 months ago by karsten

Status: needs_revisionneeds_information

Oops, good catch! Yes, updated the test. Moving back to needs_information until next month. Thanks!

comment:8 Changed 13 months ago by karsten

Milestone: Onionoo 1.16.0Onionoo 1.17.0

Schedule for protocol version 7.0, likely to be released in 1.17.0.

comment:9 Changed 13 months ago by karsten

So, first result from looking at the logs is that there are still requests coming in with the "fingerprint" parameter. We can't say how many, just that there's at least 1 per hour. Hmm, this makes this decision a bit harder, because we cannot just say it was unused anyway. However, I'd still want to take out that parameter and simplify the underlying code.

How about we wait for feedback from the announcement to take it out in about a month, and if nobody shows up with a valid use case that we still want to support (and that we did not think of yet), we stick to the plan and remove it?

comment:10 Changed 12 months ago by karsten

Milestone: Onionoo 1.17.0Onionoo 1.18.0

Versions 1.17.0 and 1.17.1 are already released, the next released version will be 1.18.0.

comment:11 Changed 12 months ago by karsten

Resolution: fixed
Status: needs_informationclosed

This is now merged and deployed as part of 7.0-1.18.1. Closing. Thanks!

Note: See TracTickets for help on using tickets.