... | ... | @@ -62,3 +62,41 @@ _Resources:_ |
|
|
- https://gitlab.torproject.org/tpo/network-health/team/-/wikis/metrics/development/home
|
|
|
|
|
|
## 2. Project "Onion Service Support Tooling for Arti"
|
|
|
|
|
|
- Mentors:
|
|
|
- Gabi
|
|
|
- Wesley
|
|
|
- Hours required: 175 hours
|
|
|
- Skills required: Knowledge of Rust (experience with async programming is a plus); ability to use Git
|
|
|
- Expected outcome: **the `arti` CLI is extended with more commands for key and state management; constructive discussions leading to changes to, or recommendations for, Arti's APIs and documentation.**
|
|
|
- Difficulty: Medium
|
|
|
|
|
|
### Problem
|
|
|
|
|
|
Arti has two state management subcommands, `arti hss` and `arti hsc`, for managing the state of onion services and onion service clients, respectively. These commands are currently very limited in functionality, and do not support many of the features onion service clients and operators will require.
|
|
|
|
|
|
### Proposal
|
|
|
|
|
|
This project is about contributing to the tooling onion service clients and operators will need for managing the on-disk state and keys of their Arti onion services. It will involve extending the existing state management commands, as well as potentially adding new ones, and contributing to Arti's APIs and
|
|
|
documentation.
|
|
|
|
|
|
For example, the extra functionality we need includes but is not limited to:
|
|
|
|
|
|
- a subcommand for listing keys and certificates from the configured keystores
|
|
|
- a subcommand for performing consistency, validity, and integrity checks on the specified stores (this might also take an optional `--fix` flag, to fix the detected issues, if possible)
|
|
|
- an `arti hss destroy-and-recreate` subcommand, for generating a new identity (set of keys) for an existing onion service (this command will replace all the keys and state of the service)
|
|
|
- an `arti hss destroy` subcommand, for removing the persistent state and all the keys of a onion service.
|
|
|
- miscellaneous low-level "plumbing" subcommands, which deal with individual files from the keystore and state directories (for example. `arti keys-raw remove-by-path`)
|
|
|
- a C Tor to Arti key migration tool, which will enable onion service operators to seamlessly migrate from C Tor to Arti
|
|
|
|
|
|
A successful project will involve implementing some, or all, of the functionality
|
|
|
described above.
|
|
|
|
|
|
### Resources
|
|
|
|
|
|
- The Arti repository: https://gitlab.torproject.org/tpo/core/arti
|
|
|
- About onion services: https://onionservices.torproject.org/technology/
|
|
|
- Table comparing the C Tor and Arti onion service implementations: https://onionservices.torproject.org/dev/implementations/
|
|
|
- The original state management CLI implementation plan: https://gitlab.torproject.org/tpo/core/arti/-/blob/main/doc/dev/notes/state-management-cli.md
|
|
|
|
|
|
|