Arti supports directory authorities
In the context of the project to transition relays to Arti, project 141, this milestone will track all the work on implementing the support for directory authorities. The following is the text in the Objective 1 of the project:
Directory authorities are a group of special-purpose relays on the Tor network that maintain the list of currently-running relays and every hour publish a consensus view of the network. In Tor terms, a consensus is a single signed document compiled and voted on by the directory authorities once per hour, ensuring that all clients have the same information about the relays that make up the Tor network. Currently eight relays are considered directory authorities and have been chosen to be in these positions because of their operator’s long-term contributions to the Tor network and Tor community.
To achieve this Objective, we will port Tor’s existing directory authority implementation to Rust and establish a minimally-disruptive path to migrate existing directory authorities to the new code base. This Objective requires explicit, collaborative communication with directory authority operators, conducting tests with them, and engaging them in the creation of a transition plan.
Activities to accomplish this milestone:
- O1.1 Port the ability for directory authorities to form a view of network status
- Deliverable: Mechanisms for directory authorities to form a view of the network status, manage authority keys, generate shared random values, generate votes, compute consensus documents, and handle extrainfo in Arti.
- O1.2 Port the ability for directory authorities to manage authority keys
- O1.3 Port the system for directory authorities to generate votes.
- O1.4 Port the ability for directory authorities to compute consensus documents.
- 1.5 Port directory authority voting protocol.
- Deliverable: Directory authority voting protocol in Arti.
- O1.6 Run conformance testing on directory authority voting protocol.
- Deliverable: Results of fuzz testing consensus voting protocol in Arti.
- O1.7 Add directory authority denial of service (DoS) protections.
- Deliverable: Directory authority DoS protections in Arti.
- O1.8 Add directory authority security improvements.
- O1.9 Develop C implementation to Arti migration tool.
- Deliverable: Migration from C to Arti tool for directory authorities.
- O1.10 Port extra-info handling mechanisms.
- O1.11 Port features to run as a bridge authority.
- Deliverable: Logic for bridge authority in Arti.
- O1.12 Work with directory authority operators to plan transition from C to Arti.
- Deliverable: Documented feedback from directory authorities (testing and production) about migration.
- Deliverable: Plan for parallel phase in of Arti and phase out of C for directory authorities.
Expected Outcomes:
- Arti Tor implementation supports directory authority and bridge authority relays
- Arti consensus voting protocol produces the same results as C implementation consensus voting protocol
- Increased connection between the Tor Project and directory authority operators
- Buy-in from directory authority operators for the move from C to Arti
Indicators we are tracking for this objective:
- Percentage of directory authority operators who agree to contribute to transition plan. The target is 85-90%.
- Percentage of tickets about directory authorities in Arti that are closed. The target is 90%.
You can read more about this project in the wiki.