We're the creators of Lemmy, Ask Us Anything. Starts Monday, 7 Aug, 1500 CEST
This is an opportunity for any users, server admins, or interested third parties to ask anything they'd like to @nutomic@lemmy.ml and I about Lemmy. This includes its development and future, as well as wider issues relevant to the social media landscape today.
Note: This will be the thread tmrw, so you can use this thread to ask and vote on questions beforehand.
One of the biggest burdens on people running lemmy servers, is the disk space taken up by images. Currently the internet has a massive problem with image (and other data in general) duplication: images get posted to 9 different platforms, copied everywhere, with none of them sharing any of the hosting costs.
The static data distribution problem, is actually a completely solved problem: via torrents. The user experience of this tho, needs to be improved across the board in apps and web UIs. Lemmy's markdown fields do support torrent links, but there's no easy "upload audio" or "upload video" button, which ideally should hook in to an in-browser or system-wide torrent app.
I'd love to see comment trees of audio and video replies, but to me this isn't doable, and would explode server costs, unless someone devotes time to the solution above. In the meantime, people will just have to use other services to upload their audio / video content and link to it, or ideally, create torrents and share magnet links.
Image uploads are currently the biggest disk-space burden on server runners. We don't have any limit hard-coded in lemmy's back end, but admins are free to set hard limits in their nginx / server configs.
This is interesting, I've never considered torrents for this exact case before. Has anyone done any groundwork to figure out what this would look like from a systems level? I'm having a hard time wrapping my head around the big picture - where the seeders come from, what are the incentives to keep certain kinds of data resilient, how to keep complexity away from the clients, etc.
This issue isn't specific to lemmy, but to the entire web, which has a serious duplicated static data problem. Webtorrents started to tackle these problems, but didn't get too far IMO because the vast majority of torrent seeders use native clients.
Essentially, people need to normalize seeding / posting torrent magnet links, and create platforms built around them. And web and app UIs need ways to view that data in a seamless way.
If I had a lot more time I'd wanna work on it, but my backlog is years long.
There may be an opportunity here for Lemmy to help solve part of the distributed blob problem, that is, what are the incentives for people to contribute bandwidth/storage? Instead of the dodgy crypto-reward schemes we see come up, it could just be an extension to the motivations already driving why people set up Lemmy instances or contribute hours to moderate communities.
Some brain-droppings:
I have a few TB that I would be willing to contribute if I knew how, if it wasn't very time consuming, and if I was comfortable with what I was supporting.
I don't really want to serve videos unrelated to my personal interests or that I feel are low value, but I would be happy to serve content that is important to the communities that I am part of.
Lemmy can be a proxy for automatically deciding what content is worth storing/serving for people contributing resources. Blob is posted to this community I'm supporting -> I'll seed that. The post it belongs to has low interest or gets downvoted -> maybe that blob doesn't need to stay around for that long.
All the complexity of the blob swarm underlying a community really should be hidden from the clients. If it's any more difficult than integrating an imgur-like service it'll never be implemented.
This could (should?) be implemented outside of Lemmy core.
The thing that came to my mind is to have all torrent links in some kind of blockchain, where new torrent links can be added all the time and if someone wants to help the community they can just download all the torrent links from the blockchain and help seeding the torrents. These can be images, videos, audios or whatever else. The problem hereby is it can get really big really fast. This could be prevented by adding size limits for specific file types and also removing torrents from the blockchain, which werent used by a user for a long time. Effectively we would have to add a counter for visits in the last 6months and also the last viewed date from a user for each torrent. That way old, not frequentely accessed data would be deleted and prevent the size to get too big.
This general approach would prevent data loss but also help decentralize data.
Of course this is just a concept which just came to my mind but it should be possible to implement i think
Ah, I posted above before I read your reply which basically said the same thing. I think this is a really cool idea (but probably doesn't need blockchain to work).
couldnt we just be only able to post under 3 minute compressed audios to our user accounts and pin the post to our users, that way it's impossible to duplicate and wouldnt exceed half a megabyte