I don’t know a ton about the internals of federated systems, it’s been on my todo list for a while but it keeps getting pushed down by other things. But I still like that the fediverse exists and I’d like to pitch in, even if it’s only a few bucks of processor time / month.
Are there compute tasks that could be offloaded to a network of volunteers? Monitoring tools that could be run from outside the system? Something else I’m not thinking of?


I’ve been slowly setting up my own services locally, and one of the issues I quickly ran into was simple: what’s the point of running the uptime monitor in the same machine? Granted, it still serves is purposes, but…
So, if you do find a way to get something going, I think it’d be really cool. My biggest concern would be, though, on how to ensure you don’t accidentally build a DDoS network instead. A though issue I have no idea how to solve, but which should be solvable!
controlling the total throughput to make sure smaller servers don’t get hammered is tricky. I think it’s one of those things that I will need to prototype and see in action before I really get a feel for it, but my basic idea is that users would pick a “home” server for their service, and that server will tell all its client services how frequently to poll and report. the home server tries to maintain a baseline across all its clients, so if it wants 1 ping every 15 seconds, and it currently has 100 live clients, it’s instructions to each client would be “ping once every 25 minutes”, and the clients would have some some randomizer that chooses a time within the 25 minute interval to ping, giving the server a roughly even distribution of pings over the interval.
server-to-server coordination would involve sharing their current number of live clients with other federated hosts, and setting frequency based on the total number of clients across all federated servers.
For example, suppose
AandBare federated servers, whereAcan handle a lot of traffic andBis just a tiny instance.Amight have 10x more clients thanB, but all ofA’s clients will pingAandB, and send reports to both. But ifBwants to turn down the traffic, they can request fewer checks fromA, who will push that request out to all its clients.