I don't want to undermine the hard work of other people, but for the sake of completeness, know that federation has its critics on the decentralization scene.
I discovered that around the ssb community a couple weeks ago, the argument being that in federation model, people always end up choosing the same node, be it because it has more users (like diasp.org for diaspora) or nicer interface (like gmail for smtp), and it just ends up in centralization again. Here is an article discussing it : https://secushare.org/federation
The alternative is to forget about the client/server model entirely, and have distributed database hosted by clients and synchronized through p2p. Secure Scuttlebutt (ssb) is an attempt at that, through the gossip protocol ( https://en.wikipedia.org/wiki/Gossip_protocol ). The idea being that clients can synchronize with each other directly, even without the internet, using only local network, and transport encrypted data meant for other people (so the data propagates).
From what I understand so far, ssb makes this possible by implementing a database inspired by blockchains : each user has its own append-only database on which you can add an encrypted entry only by signing them with a private key, that people can verify and decrypt using your public key (and their secret key, if it was a private message meant for them).
The networking part still use federated-like nodes (actually regular clients, but running on hosts without firewall) to workaround the fact that most people are behind firewalled NAT and can't listen to ports. The important part here is that one of those nodes (called "pub") can disappear, it won't affect you, even if you first accessed the network using it : your data is on your machine, the pub only help finding peers and can be replaced at any moment (you quickly discover other pubs after the first one), and even is not needed if your peers are on the same local network than you (perfect tool for a family private social network, btw).
Now, while I find ssb cool and that's the project I want to work on, I find secushare article I mentioned above unnecessarily harsh and definitive. A problem has been spotted on in the federation model, it doesn't mean it can't find any solution. For example, a protocol based on federation can forcibly limit the number of users per node (although, the service could just spawn several nodes), or an other incentive for distribution could be created. I'm pretty sure there are a lot of smart people working on this.
People should have learned the lesson from federated email VS Gmail: federation works only when people don't have a compelling reason to stick to one service provider.
Comments
I don't want to undermine the hard work of other people, but for the sake of completeness, know that federation has its critics on the decentralization scene.
I discovered that around the ssb community a couple weeks ago, the argument being that in federation model, people always end up choosing the same node, be it because it has more users (like diasp.org for diaspora) or nicer interface (like gmail for smtp), and it just ends up in centralization again. Here is an article discussing it : https://secushare.org/federation
The alternative is to forget about the client/server model entirely, and have distributed database hosted by clients and synchronized through p2p. Secure Scuttlebutt (ssb) is an attempt at that, through the gossip protocol ( https://en.wikipedia.org/wiki/Gossip_protocol ). The idea being that clients can synchronize with each other directly, even without the internet, using only local network, and transport encrypted data meant for other people (so the data propagates).
From what I understand so far, ssb makes this possible by implementing a database inspired by blockchains : each user has its own append-only database on which you can add an encrypted entry only by signing them with a private key, that people can verify and decrypt using your public key (and their secret key, if it was a private message meant for them).
The networking part still use federated-like nodes (actually regular clients, but running on hosts without firewall) to workaround the fact that most people are behind firewalled NAT and can't listen to ports. The important part here is that one of those nodes (called "pub") can disappear, it won't affect you, even if you first accessed the network using it : your data is on your machine, the pub only help finding peers and can be replaced at any moment (you quickly discover other pubs after the first one), and even is not needed if your peers are on the same local network than you (perfect tool for a family private social network, btw).
Now, while I find ssb cool and that's the project I want to work on, I find secushare article I mentioned above unnecessarily harsh and definitive. A problem has been spotted on in the federation model, it doesn't mean it can't find any solution. For example, a protocol based on federation can forcibly limit the number of users per node (although, the service could just spawn several nodes), or an other incentive for distribution could be created. I'm pretty sure there are a lot of smart people working on this.
People should have learned the lesson from federated email VS Gmail: federation works only when people don't have a compelling reason to stick to one service provider.