[tor-project] eRPC - An Efficient Relay Partition Checker (GSoC Final Report)

Hey everyone,

I hope everyone is doing well :slight_smile:

I started working on eRPC few weeks back as part of GSoC and since I’ve started this project, new doors of knowledge have opened every single day for me. I never thought the abstractions on which the tor browser runs would be this fun to peel through “arti”. I’ve had days where I spent my entire day just trying to understand how different tor spec files were implemented in “arti”, it was a fun journey that I still want to continue.

The problem this project(eRPC) aims to solve is, a tool for checking partition among relays(by attempting to create all possible two hop circuits) and using the circuits that were built by OnionPerf running hosts(they release OnionPerf analysis file). Currently eRPC handles the basic fundamentals i.e creating two hop circuits, taking OnionPerf analysis file as input and adds extra feature on top of it, such as distributing among different host machines using gRPC, pause and resume the state of the application, saving data to relational database sqlite or/and graph database neo4j. This data then can be used to visualize the partition within the Tor Network. You can view more about the project at https://gitlab.torproject.org/rishadbaniya/erpc

I’ve attached a report regarding the current state and future plans of this project, you can find the most details regarding the project at the WiKi of the repository.

Finally, I would like to thank everyone at the Tor community for being extremely helpful every time and guiding me through the entire journey, especially to my mentors “GeKo” and “juga”.

With regards,
Rishad Baniya

(Attachment eRPC_final_report.pdf is missing)