Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Trac
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Network Health
  • Metrics
  • Trac
  • Issues
  • #40002
Closed
Open
Issue created 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 an admin enable hashed storage. More information
Assignee
Assign to
Time tracking