GSoC 2023: Network Status APIs

PROJECT GOAL

In an effort to improve current resource utilisation and optimisation, the Tor team is developing a new version of their pipeline (v2.0). This update involves transferring much of the data related to Tor nodes and bridges from files stored on a single server’s disk to two separate databases: Postgres and Victoria Metrics.

The main objective of this project is to design a RESTful API service using the actix_web framework that is going to be integrated in the new pipeline v2.0 to support data retrival from the two databases. In particular, the focus will be on designing the new APIs, its requests, and response formats. The project will also involve defining appropriate endpoints and data models, ensuring scalability, performance, and security. The final goal is to achieve a web service that is going to extend/replace the current onionoo protocol used by stakeholders interested in the status of the Tor network and its individual nodes.

PROJECT STATUS

  1. Setup CI pipeline for automatic testing

  2. Developed /summary endpoint

  3. Developed /bandwidth endpoint

  4. Developed /weights ednpoint

  5. Developed /clients endpoint

  6. Developed /details endpoint

  7. Setup initial integration testing for all endpoints

DEPLOYMENT AND TESTING

The greates achievement of our project thus far is the successful internal deployment of the API service. It is currently undergoing rigorous testing and performance testing to validate its functionality and reliability. This testing phase is crucial to ironing out any remaining issues and ensuring a seamless transition to the new pipeline v2.0.

WHAT’S NEXT

  1. Add meta endpoints to check service health and other useful info

  2. Add benchmarking tests

  3. Add more integration tests

  4. Work on the project’s Wiki

  5. Document Network Status APIs code