Suggestion for "relay" Lemmy instance for personal use?

itpcc@lemmy.world to Selfhosted@lemmy.world – 42 points –

I've been in Lemmy for a month and I'm quite enjoy using the service.

However, after the mass migration on both Reddit and Twitter, I feel like the services are now significantly slower than they used to be. So I'm wondering whether I should have some kind of personal CDN/relay service for "caching" information especially medias or just create a new instace and federated to public Lemmy instance?

FYI, I have a private OpenVPN served on DO and 1L "server" that run Proxmox for existing services to my home. Should be okay to have a Nginx reverse proxy, right?

29

You are viewing a single comment

You definitely could, but it's not really sustainable.

Worst case scenario: if everybody does this, and there's 50.000 subscribers on a certain community, then that community will have to update 50.000 other servers whenever one user leaves a single message or vote.

Sure, your own server wouldn't have a hard time, but it every popular server (with lots of subscribers) would. It would either take a long time for you to receive their updates, or you wouldn't get them at all.

The best thing you can do, is join a medium size server: it won't be as overloaded as a big server, and wouldn't cause as much strain on the fediverse as a personal server.

Do you think the Fediverse would scale to a 1:1000 instance to user ratio?

I can say with full confidence that I have absolutely no idea.

I've heard this idea thrown around before, so I take no credit for it: One way to circumvent the issue would be to have actual relay nodes. As in: nodes that don't hold contents or users themselves, but just "broadcast" incoming messages to several instances, so that the source instances don't have to. This would of course have its own drawbacks and limitations, but it would alleviate the bottleneck.

I'm sure some kind of solution will be found though. Call me optimistic, but I think the lemmi/binniverse has a bright future ahead of it. I, for one, have burned my reddit bridges.

Or use crypto. Generate keypairs, sign updates. Add support for delegating updates to other instances.

Maybe add support for having instances getting data to indicate if they're willing to relay update data to others, and have main instance refer to them for a certain time period, say.. 6 hours maybe?

Relay willingness would depend on instance config and load, ideally.

Edit: any reason I'm getting down votes? If there is a problem with the approach, at least leave a comment.

Yes, we all know crypto and scalability go hand in hand /s

You thought I was talking about cryptocurrencies? Really? You read that, saw crypto, public/private keys, signing data, and thought "He's talking about cryptocurrencies, and surely not cryptography!" ??

Seriously? Wow... I sincerely hope you're not hosting anything public, and if you do, consider shutting it down and step away from the server until you have a bit more technical insight.

After you explained it a bit further in another comment it was pretty obvious you didn't mean cryrocurrencies. I really did latch onto "crypto" as cryptocurrency, unfortunately the case for a lot of people.

No down vote from me, but surely by now you know how people feel about crypto.

At any rate, I don't think an immutable ledger is desirable for speech (what's the point of moderation), perhaps more something like torrent would be preferable. And, as someone else mentioned, relay software already exists.

Who said anything about immutable ledger? I was talking about signing updates so it can be verified when relayed through untrusted third parties.

So if lemmy.world sends an update to lemmy.selfhosted.guy and then lemmy.anotherselfhosted.guy federates with lemmy.world, lemmy.world can then say "Hey, here's my public key, lemmy.selfhosted.guy have a copy of my data and is willing to be delegated to, you can get the data from him" and then lemmy.world doesn't have to distribute it's changes to everyone itself, but maybe just update 5-10 hosts. And the number of relays will scale with the network.

And thanks to the data being signed, you can trust the updates from lemmy.selfhosted.guy being from lemmy.world and not been tampered with, keeping lemmy.world as the authority of the data, even if you don't trust lemmy.selfhosted.guy.

Edit: This would also mean all the small self hosted instances will boost the network instead of threatening to overload it.

My bad, I thought you meant the other crypto (as did everyone else, presumably). I know cryptography was first, but I think it's safe to say that that abbreviation has been irrevocably tainted.

yeah, I'm slowly starting to realize that. That a few misunderstood, I could see that. If you're new to things you've probably only heard in connection to cryptocurrencies. But everyone misunderstanding? It's really shocking. Especially since the context should have made it obvious.

As developer we have crypto libraries. Crypto systems. Crypto layers. Crypto functions.. And so on.

Crypto is cryptography. Cryptocurrencies are just a small thing, using cryptography. To have that "take over" the crypto word completely is as unnerving as waking up one day and mentioning to someone you washed your face this morning and they respond "What, like, the screen?" and then discover everyone only thinking of facebook, even with the context.

I'm sorry, I'm rambling. It's just so unbelievable to me to have this happen in a forum focusing on self hosting services. Where crypto should (hopefully) be daily bread and butter.

It happens. Remember the original meaning of the word hacker, versus its public perception? You can hang on to the original meaning and have an extra hurdle in communication, or you can accept it and move on by being more specific.

At any rate, I think public/private keys are already being used by Lemmy for authentication on the way you propose.

I would think that updating 50.000 Lemmy instances would have a similar performance effect of 50.000 Lemmy users browsing one instance. In that case instance with one user won't benefit the Fedeverse, but shouldn't be an issue either.

I would think that updating 50.000 Lemmy instances would have a similar performance effect of 50.000 Lemmy users browsing one instance.

Only if the users are browsing All their watched communities 24/7. Otherwise they would only be producing load when they're interacting with Lemmy.