Hello everyone, I hope everyone's doing well. This is a 3 week report(June 19 - July 8)for the GSoC(Google Summer of Code) Project, eRPC(An efficient Relay Partition Checker).
Project Repo : https://gitlab.torproject.org/rishadbaniya/erpc
Let me explain the progress of the project and the challenges. So far, the relay partition checking tool is ~50% complete, it achieves the goal of checking for partition by creating two hop circuits between all the relays present in the tor_netdir::NetDir provided by arti, it also handles the influx of relays by wrapping around the DirMgr provided by arti. You can run the application through here :
https://gitlab.torproject.org/rishadbaniya/erpc#running-primary-worker
and also explore it's structure through here :
https://gitlab.torproject.org/rishadbaniya/erpc/-/wikis/home
Let's go through an important challenges that I am trying to solve and community members involved in "arti" might help me out on this -:
Segregating the errors that occurred while attempting to build a circuit:
Here are list of all the errors that can occur while attempting to build a circuit :
https://docs.rs/tor-circmgr/0.9.1/src/tor_circmgr/err.rs.html#18
While running the erpc application and building thousands of circuits, we found out that
The most common error of all was : https://docs.rs/tor-circmgr/0.9.1/src/tor_circmgr/err.rs.html#111, which was mostly due to OS level errors.
It would be great to have your feedback regarding how we should consider a relay being partitioned simply through those errors at https://gitlab.torproject.org/rishadbaniya/erpc/-/issues/18
With Regards, Rishad Baniya