Bucking the OS tatus Quo
Back when the idea of a decentralised social network was in its genesis (around 2009), a protocol family was designed that would cater to this brave new world. That family was called OStatus. OStatus defines protocols that permit de rigueur social networking activities: Atom feeds Users can publish feeds summarising their recent posts
Activity streams A JSON-based format for encoding activity and event metadata, such as ‘liking’ a post
WebSub Formerly PubSubHubbub (PuSH) a realtime notification protocol for streams, feeds and the like
Salmon A message exchange protocol for unifying commentary on posts and articles. Provides a single comment thread where the same source is referenced in different places. So-called because salmon swim upstream.
WebFinger A discovery protocol for entities identified by a URI. These may be people, in which case the protocol is functionally (but not at all structurally) similar to ARPANET’s Finger protocol.
Much of OStatus’s design has been superseded by modern alternatives. OStatus doesn’t support private posts natively, which means that platforms that do (such as Mastodon) would have to use extra attributes to federate private messages, and there’s no guarantee that other platforms would respect those attributes.
But fear not, because since version 1.6 (released in September 2017) Mastodon implements the new and more flexible ActivityPub protocol, which, knowing now what we didn’t then, efficiently provides everything a distributed social network needs. Furthermore, it is extensible enough to be able to provide the things it will need in the future and already can be used for much more than just microblogging – it’s at the heart of PeerTube for example. Meantime, Mastodon will support OStatus as a fallback until the 2.0 release.
For a more detailed analysis and untangling of these protocols, we recommend studying JB Crawford’s excellent treatment, which can be found at https://lwn.net/Articles/741218.