I'd imagine your best bet is reading through the w3c spec if you want protocol details. I think reading it directly is probably approachable enough for a CS student and should be a good exercise.
Fediverse
A community dedicated to fediverse news and discussion.
Fediverse is a portmanteau of "federation" and "universe".
Getting started on Fediverse;
- What is the fediverse?
- Fediverse Platforms
- How to run your own community
TL;DR, each user is an Actor, which has an inbox for receiving objects and activities, and an outbox for sending them. The objects are essentially structured metadata that various actions can be performed on. When you respond to a status, for example, your Actor is performing a Reply activity and sends out a Note object. Following another Actor, on the other hand, would be your Actor sending another Actor a Follow activity.
This implementor's guide might be helpful to understand some of what's going on underneath the hood: https://socialhub.activitypub.rocks/pub/guide-for-new-activitypub-implementers
Some useful specs can be found here:
- ActivityPub's specs: https://www.w3.org/TR/activitypub/
- ActivityStreams, which Activities and Objects are defined by: https://www.w3.org/TR/activitystreams-core/