And if that’s possible, why are servers needed at all? Can’t an app just create a server per user and run it on the users device?

  • fermuch@lemmy.ml
    link
    fedilink
    arrow-up
    10
    ·
    1 year ago

    It is possible! But not so easy.

    You need to build a “reputation” with other servers. If your server is online, then some instances lose messages or just plain fail to load your content. So, first off, you need to be online all the time.

    And it takes a lot of bandwidth! Each message, like and post anyone makes on every instance might come from any other instance, so servers need to have enough bandwidth to talk to each other all day.

    There’s also the problem of storage. You don’t only store your own content, but also a “cache” of other people’s content, so you don’t need to request it again every time.

    There’s even a need for energy. Your server might connect to a lot of other servers, so you might need to have a beefy cpu to process all of that (so no running on batteries)

    What you describe exists, actually. It’s called “peer to peer” (often called “p2p”). There are some p2p networks, like scutterbutt which runs on top of the “gossip” network.

    They have their own problems, tho.

    Federated networks, where you join a server and servers can talk to each other (instead of directly running on the users device) are a middle ground.

    On a server only network, like reddit, means everything is controlled by one entity (reddit).

    With a p2p network, you have the problems I’ve described before (and lots more)

    And finally, a federated network like lemmy exists in between. You join a server, but are not limited to that server. If you don’t like something in your server, you can join some other server or even mount your own, and still be part of the bigger network. With the rules you desire to follow!

    • schnexOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Wow thanks, now I get it. Never realized what p2p really was before now too

  • Stanislav N. aka pztrn@bin.pztrn.online
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    I’m running my own server, but it can’t run on user device reliably, because most federated networks working in push mode, means remote server pushing new content to yours. And if your device will be offline you won"t receive content you miss.

  • Buttermilk@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I don’t know too much about self hosting, so it might be worth asking on a self-hosting community to see the specific issues. But from my ignorance I think there are some hindrances with smaller servers and the speed of their comments propagating through the fediverse.

    Beyond that I think there is something that would jump out as a bit strange to folks if every comment or post was from @username@theirLiteralHomeIP, and If they are running on a phone their IP would be really volatile which might run into issues as well.

    So I don’t think there is anything fundamentally wrong individualized instances, but there are like practical issues with it. Further, it is certainly not foolproof, but different cultures of different servers has worked well in the fediverse to allow blocking posts from spaces that you don’t wish to experience. If each user had a separate instance it would be much harder to do in practice.

    Again, I’m a dumb dumb, so I would hope that someone with more knowledge can clarify, I’m just speculating on what I could see being issues 😅