The Tor Project will be improving tor relay IPv6 support in 2020.

Students may choose to focus on:

  • designing and implementing tor relay IPv6 features,
  • tor relay IPv6 testing, or
  • diagnosing and fixing bugs in tor's IPv6 code.

Prerequisites

  • Network configuration skills
  • Basic understanding of IPv4 and IPv6

Recommended:

  • Experience testing network software
  • Experience running Internet-connected servers

Programming skills needed:

  • C coding
  • Building Unix-based (Linux, *BSD, macOS) software

Recommended:

  • Experience with Unix network programming
  • Python coding (for testing)
  • Access to a server with public IPv4 and IPv6 addresses (to run a test relay)

Getting Started

  1. Clone tor using git
  2. Build tor from source
  3. Run the tor unit tests using "make check". Let us know if they fail, and we'll help fix them.
  4. Clone chutney using git. Chutney is a tor integration test tool.
  5. Run the tor integration tests using "make test-network". Let us know if they fail, and we'll help fix them.
  6. Make sure you have a GitHub account, so you can submit pull requests to tor's GitHub repository

See our Getting Started document for more information.

Once you have completed the above tasks, you may wish to move on to the following initial tasks for the project.

Initial Tasks

Main Tasks

Stretch Goals

Links/Resources

Technical Proposals

Tor Relay IPv6 Reachability https://gitweb.torproject.org/torspec.git/tree/proposals/311-relay-ipv6-reachability.txt

Tor Relay Automatic IPv6 Address Discovery https://gitweb.torproject.org/torspec.git/tree/proposals/312-relay-auto-ipv6-addr.txt

Relay Operator Guides

Tor Relay Guide: IPv6 https://trac.torproject.org/projects/tor/wiki/TorRelayGuide#IPv6

Roadmaps

Tor IPv6 Roadmap https://trac.torproject.org/projects/tor/wiki/org/roadmaps/Tor/IPv6Features