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