Could diaspora* Federation POSSIBLY Be Worse?

I think I give diaspora* the award for worst-working concept in living memory. :rage:

Set up four or five test accounts on different pods, connect them as friends, tag them with the same interests, give them the same configuration and equal activity. Watch what happens.

The more pods there are, the worse diaspora* works. If there were maybe five big pods, total, I think it might more or less operate as envisioned, though the developers finally admit that federation has inherent flaws. As it is now, I don’t think it’s at all viable and Disroot isn’t doing anyone any favors by hosting yet another pod.

I have to disagree with you although you are right about certain things.
Yes, federation on diaspora isn’t perfect. It mainly depends on amount of active users on given pod. Yes, the big pods are fauvoritable over small pods because of number of active users and thus the amount of interconnections between pods, which results in more content.

On the other hand it works as intended. Federation only works for pods/users that are ‘connected’ with eachother. Content in federated networks cannot be redistributed to each and every pod as it would require every pod to use the same resources as the biggest pod in the network. You need to be able to handle every post, comment and message comming out of the network, and store it in the database. This excludes small pods running on low end hardware such as rasberry pi and that would lead to more centralized and exclusive network, which is not what diaspora was intended to be. Think of it in terms of email servers that would have to cache every email sent from every server.

Diaspora’s federation isn’t perfect, but so far its a good balance between huge and expensive setups and small private servers. Plus it is constant work in progress. It is all about decentralisation.

I’m personally positive and enthusiastic about the future of federation on diaspora and its upcomming development. For starters, having tags federated network-wide would make things already much better. Secondly, some people are working on public post relay servers which would solve differences between pods by having opt-in option for pods to get all public posts of the network.

As for now, what we (disroot ppl) do every now and then is to check and compare streams on different pods and start sharing content with contacts not yet connected to disroot pod. In that way more public posts end up on disroot pod. It’s manual work and we fail to do it on daily basis (which we did when we started disroot). I admit not the best solution, as it requires a lot of work, plus its hard to think of all possible tags that could be interesting for people bumping into our pod, but atm its the only way to get content to small pods that not yet have many users. We hope to get into our ‘morning coffee rutine’ soon.

If you want to help us with getting content federated to disroot pod you are welcome. Just do what we do. Compare streams on your test accounts and add contacts to some generic aspect on your disroot account.

Hopefully in the near future this will have lesser impact on small pods like ours. However things like this take time and patience, Diaspora dev team is quite small comparing to other open source projects out there and lack of funding does not make it easier. Also from podmin perspective, getting content federated to the pod is something that requires time and dedicated people. Disroot isn’t even one year old project, so let’s see what next 6 months bring in.

1 Like

Federation only works for pods/users that are ‘connected’ with eachother.

OK, then, so you are explicitly saying that if one searches for tagged posts – say “#cats” – he is NOT expected to see any post [1] sent by someone with whom he is not personally connected or [2] on his pod?

In any case, I can assure you that federation between “connected” users is (and always has been) mysteriously unpredictable. And that’s not just for this pod, but any one I’ve tried, ever.

BTW, I’m not beefing about Disroot, which I think is great and well-maintained. I’m just frustrated with diaspora* as pretty much a technically failed concept. “Not perfect” is a great understatement.

OK, then, so you are explicitly saying that if one searches for tagged posts – say “#cats” – he is NOT expected to see any post [1] sent by someone with whom he is not personally connected or [2] on his pod?

Not really. I was as confused as you are in the beginning but some of the podmins on diaspora IRC channel explained me how federation works using similar example.

if userA searches for #cats on podA he will see:

  • [1] Public posts tagged #cats posted by every user that is sharing with any other user on podA
  • [2] Every private post tagged #cats posted by anyone on any pod that is sharing with userA (someone needs to be sharing back with you so you can see his posts of course).

As I said hopefully soon we will have public post relay in place (will check soon whats the current state of it and how to implement it). If this is in place the situation would be:
if userA searches for #cats on podA he will see:

  • [1] Public posts tagged #cats posted by every user on any that is sharing with any other user on relay pod (since relay pods will be one of the biggest pods there, the problem should be sorta solved).
  • [2] stays the same

Diaspora is not prefect but at this moment, the only one with mature code base, big amount of users, federation (as broken as it is), federation to other protocols (fiendica, hubzilla, etc). Of course a lot has to be still fixed, but it is the most pormising alternative open source social network out there. IMO of course.

Let’s all agree :wink: the perfect world would be a decentralized one (like Twister). things are changing for good :slight_smile: let’s hope the devs will keep it that way.

1 Like

Little Big update.
We’ve just updated disroot pod to version 0.6 which brings new relay feature to this release.

I just switched it on, so not sure how it works exaclty but I’m guessing within next days “Public posts” should be filled up from server relays.

1 Like

The description of federation you provided, above, is the identical one I got from the developers a year or so back.

There’s only one problem: It doesn’t actually work and nobody is really sure why. The current remedy rests in denial, which always seems to be the fallback position in the Church of FOSS for any inept product. When confronted with the evidence, the grudging concession is that it’s “not perfect,” which as I said, is a gross understatement. It’s not like this is some minor bug – nor is it consistent or predictable, except that it never works well. Exactly how federation fails seems to change from day to day.

I think that the only technical answer to bad federation would be extremely aggressive “friending,” though this would render diaspora* useless from the standpoint of the user. After about twenty friends, the daily feed becomes swamped in stuff you don’t actually want to see, usually in languages you can’t read and with bloated graphics to boot. I don’t think you can “ignore” a friend and still maintain the association, so you’re back where you started. I also suspect that at least some podmins blacklist users with whom they disagree, which may screw up federation as well.

After actively running numerous interconnected test accounts on different pods for daily about six months, I finally gave up diaspora* as a lost cause for now and deleted all my accounts. With less than 10,000 users worldwide (and falling), I just don’t see it as a worthwhile expenditure of effort.

With relay servers the situation is getting much better. I can see it in daily stats of the server. We only need the biggest servers (joindiaspora) now to join the relay and we should be sorted when it comes to tags and public posts.

At this moment it’s the only working federated social network out there so there is not much alternatives out there anyway. It’s a living organism where each pod has its own rules, admins, users, theme etc. and that’s what makes diaspora awesome in my opinion. Its quite interesting experiment where a lot is changing. Afterall it’s only 6 years old project where community is involved for about 4 years.

I hope you will give it a try soon again.

What do relay servers do?

There is two thing:
outbound - Collects public posts and tags from diaspora pods, and stores it.
inbound - Sends out collected public posts and tags to diaspora pods

This helps in network synchronisation, when smaller pods with less connection don’t receive all public posts. Our daily activity doubled on our server since we started using relay.

At the moment not all huge pods are participating (joindiaspora isn’t as far as i saw). When those big ones join in the public posts problem should be solved on smaller pods as most of the traffic is generated by those pods.

So wait. Some pods do not see the public posts? Why is that?

Is it because when a pod goes offline it won’t sync up with the posts made during down time as it only gets public posts at the current time they are posted whilst they are online, hence the relay stores the posts made during a pods downtime and then sends them to that pod once it comes back online again? Am I right?

No, its because of limitations of federation protocol.
Basically federation in diaspora works this way:
You have a userA on podA. The userA starts sharing with userB on podB. Now, since both pods are aware of each other public posts that are followed by userB will be federated to podA, so every one in podA will see them. In order to get all the content from all pods, one would have to make connection to basically every pod and every user. Big pods, don’t have this problem because they have a lot of users and those users make tons of connection to others on other pods. Because of high activity of their users, the posts on those pods are most complete network vise. Smaller pods (like ours) dont have that many connections with other pods and users so we see only a slice of diaspora universe. This is quite logical, though not ideal. Of course you want to be able to run diaspora pod on limited hardware and communicate with few people and you don’t want to recieve all the junk from entire diaspora universe. But if you do, some clever people thought of relay servers.

Now thanks to relay servers all pods are getting most of public posts and tags no matter the size of the pod. In this way we avoid situation where, people choose big pods because of amount of posts reaching them leaving small pods in the darkness (no users, because of less content, less content because of no users).