Can't we build a social network with a simple protocol:
1: Each user has a private key that they use to sign their messages.
2: Each user keeps a list of instances who announced that one of their members follows them. When the user posts something, they broadcast the post to those instances.
Shouldn't this be enough?
It could all be url based. One user, one url.
When Sue wants to read Joes latest posts, she sends this request:
someserver.com/joedoe?action=latest_posts
When Sue wants to follow Joe, she sends this request:
> Can't we build a social network with a simple protocol:
> 1: Each user has a private key that they use to sign their messages.
> 2: Each user keeps a list of instances who announced that one of their members follows them. When the user posts something, they broadcast the post to those instances.
> Shouldn't this be enough?
> It could all be url based. One user, one url.
I might be misremembering how it works, but this sounds conceptually similar to how Ghost (the blog platform) works after their recent 6.0 update. They now support federation, posting on Bluesky and Mastodon, etc.
For a small network and low "follower" counts, yes.
But the moment you start scaling to potentially millions of posters each with a disjoint set of millions of followers the M:M connections for broadcast become problematic. The result of a chatty enough group would look identical to a DDOS to many/most of the nodes.
Because the technical aspect of building the software like is the most fun and nerd–sniping, but perhaps the least important part in the process of building an audience and encouraging people to adopt it.
If, like me, you were wondering what PDS stands for: https://github.com/bluesky-social/pds
Thanks. I figured "Practice Dangerous to Security" was a Pretty Darn Silly breaking of the TLA.
Why is this so complicated?
Can't we build a social network with a simple protocol:
1: Each user has a private key that they use to sign their messages.
2: Each user keeps a list of instances who announced that one of their members follows them. When the user posts something, they broadcast the post to those instances.
Shouldn't this be enough?
It could all be url based. One user, one url.
When Sue wants to read Joes latest posts, she sends this request:
someserver.com/joedoe?action=latest_posts
When Sue wants to follow Joe, she sends this request:
someserver.com/joedoe?action=follow&from=otherserver.com/suelue&sig=f819h...
> Can't we build a social network with a simple protocol:
> 1: Each user has a private key that they use to sign their messages.
> 2: Each user keeps a list of instances who announced that one of their members follows them. When the user posts something, they broadcast the post to those instances.
> Shouldn't this be enough?
> It could all be url based. One user, one url.
I might be misremembering how it works, but this sounds conceptually similar to how Ghost (the blog platform) works after their recent 6.0 update. They now support federation, posting on Bluesky and Mastodon, etc.
For a small network and low "follower" counts, yes.
But the moment you start scaling to potentially millions of posters each with a disjoint set of millions of followers the M:M connections for broadcast become problematic. The result of a chatty enough group would look identical to a DDOS to many/most of the nodes.
Every instance would only get the messages that its members have subscribed to. How can any system be more efficient than this?
A $5/month VM could ingest millions of messages per day. What's the problem?
shrug if you think it's simple, why don't you build it?
Because the technical aspect of building the software like is the most fun and nerd–sniping, but perhaps the least important part in the process of building an audience and encouraging people to adopt it.