Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
T
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 17
    • Issues 17
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • The Tor Project
  • Metrics
  • Trac
  • Issues
  • #40002

Closed
Open
Opened Feb 11, 2020 by teor@teor

Prop 313: 3. Write a Script that Counts IPv6 Relays in the Consensus

We want to write a script that generates statistics for relays that:

  1. have an IPv6 ORPort,
  2. support IPv6 clients,
  3. support IPv6 reachability checks, and
  4. support IPv6 reachability checks, and IPv6 clients.

The first two statistics have no dependencies. The last two statistics depend on the "Relay=3" subprotocol in legacy/trac#33226 (moved).

The script should calculate:

  • the number of relays, and
  • the consensus weight fraction of relays.

In order to provide easy access to these statistics, we propose that the script should:

  • download a consensus (or read an existing consensus), and
  • calculate and report these statistics.

We could write this script using Python 3 and Stem: https://stem.torproject.org

The following consensus weight fractions should divide by the total consensus weight:

  • have an IPv6 ORPort (all relays have an IPv4 ORPort), and
  • support IPv6 reachability checks (all relays support IPv4 reachability).

The following consensus weight fractions should divide by the "usable Guard" consensus weight:

  • support IPv6 clients, and
  • support IPv6 reachability checks and IPv6 clients.

"Usable Guards" have the Guard flag, but do not have the Exit flag. If the Guard also has the BadExit flag, the Exit flag should be ignored.

The script should check that Wgd is 0. If it is not, the script should log a warning about the accuracy of the "Usable Guard" statistics.

See proposal 313, section 3: https://gitweb.torproject.org/torspec.git/tree/proposals/313-relay-ipv6-stats.txt#n82

To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: tpo/metrics/trac#40002