/ Ideas / Improving Resilience of ActivityPub Services

This is an idea proposed in 2023 as a Cambridge Computer Science Part II project, and has been completed by Gediminas Lelešius. It was supervised by Anil Madhavapeddy as part of my Personal Containers project.

Summary

The original goal of the project was to improve the resilience of the distributed social networking protocol "ActivityPub", by caching the content on multiple instances and serving them in case the origin instance goes down. The project uses public-key cryptography to ensure data integrity, build a network of public key servers and verifiers and use that consensus instead of relying on individual servers to provide trustworthy data. The core deliverable is a key server gathering and serving public keys, a verifier checking the entries of that server, and a modified Mastodon server rescuing failed ActivityPub requests using an external key server.

The original aims were achieved, with core deliverables being a key server and a verifier. The Mastodon source code was modified to use a key server and other instances to rescue failed content queries. Finally, functional testing was conducted and the project outcome was evaluated. The system was deployed to work with the live ActivityPub network.

Links

Related Ideas