Would running a Lemmy/kbin instance on your phone be feasible?
Libp2p or similar stack could be used to provide the phone instance an address, caching could be distributed among peers. Of course, as long as other servers also support libp2p.
ActivityPub is all about pushing content around to subscribing servers. It sort of expects the subscribers to always be online which would not work for a phone. Servers could resend missed events, but essentially you would miss every event that occurs while the phone is asleep or doesn’t have the app running.
Also, every event that occurs needs to be processed and stored whether or not you are actively looking at it so it would be a huge battery drain while it was running.
It is definitely a service best run on an always-on server with a client application in a phone just asking the server for the latest stuff on-demand.
Events could be cached on the p2p network, so the phone only pings its peers for new content (mind the existing servers would be peers on the network).
Then the p2p network is really the “server” and the phone is still just a client. I’m also not sure that a p2p network could be queried very well because something would have to be able to produce aggregated and sorted results. It isn’t like pulling one file from a swarm. It would be like a blockchain and the phone would have to download the whole dataset from the p2p network before running queries on it.
What you are talking about sounds kind of like the Nostr protocol. It is a distributed social network trying to solve the same problem that ActivityPub is but in a slightly different way. All the events are cached on multiple relays and the client applications query those relays looking for information that gets aggregated and sorted on the client however it wants.
Yes, the proposal is something like Nostr, but the clients can also relay data on request if they're online. A little more decentralized.
Worth mentioning that the idea is not to make Lemmy abandon ActivityPub, but to allow further decentralisation.
There wouldn't be a need to keep all data like a blockchain to query all data since most sort by hot/recent. Something like Gossipsub would suffice for most users.
But whenever an user queries for old or specific data, the request could be directed to a relay that archives and sorts all data.
Now I think I see what you are saying. People have suggested that Lemmy needs a separate protocol to connect with other Lemmy instances to more efficiently synchronize. Gossipsub could do that. It would also be nice if each Lemmy instance only needed to keep a minimal amount of data at any one time to service the clients that connect to it while the rest exists in the swarm.
I still don’t think that you would want a phone to function as your server and your client, though. All that coordinating takes bandwidth and processing power. Phones are ill-equipped for that. Also, usually to p2p effectively you need to be able to make direct connections through firewalls. Opening your phone directly to the Internet would be a bad idea, plus I doubt any phone companies would let you do that. Without a direct connection, you would need to proxy your connection through some server somewhere and deal with bandwidth costs. Might as well just connect to a server as a client.
Maybe the final solution is software like Lemmy running with decentralized identities via the Nostr protocol that is federated out using Gossipsub.
For what it is worth, I looked to see if anyone had done Nostr over Gossipsub and I came across a project called Gossip. Looks like they are trying to use the Nostr protocol in a psuedo-gossipsub way. That coupled with the proposed Nostr NIP 72 which would allow Lemmy-like communities could make this the solution you were looking for. Obviously these are in their infancy, but it may be an idea to follow.