One issue I've had with IPFS is that there's nothing baked into the protocol to maintain peer health, which really limits the ability to keep the swarm connected and healthy.
I think serving video is a particularly interesting use of Webtorrent. I think it would be good if you could add this as a front end to basically make sites DDOS proof. So you host like a regular site, but with a JS front end that hosts the site P2P the more traffic there is.
I think it is very difficult (and dangerous to the host) to serve user-uploaded videos at scale, particularly from a moderation standpoint. The problem is even worse if everyone is anonymous. There is a reason YouTube has such a monopoly on personal video hosting. Maybe developments in AI moderation will make it more palatable in the future.
The "host" is the user in this case. Every user that watches the video, shares the video. Given that discovery doesn't appear to be a part of this platform, any links would undoubtedly be shared "peer-to-peer" as well, so if you aren't looking at illegal things and don't have friends sending you illegal things to watch, it's perfectly safe.
What I'm suggesting is more in the context of self hosting - a JS wrapper which would make it easy to host a video with plain HTML while preventing bandwith issues.
Hey, that's pretty much the project I've been thinking of doing for a while!
I really dislike the monopoly YouTube has on online video, but other options or self-hosting can become really expensive due to bandwidth (especially if your video suddenly goes viral). I think P2P (over WebRTC, for browser compatibility) has potential for creating a solution.
Roughly:
* You have a Website with some <video>s you want to share hosted somewhere—doesn't matter if it's dynamic, static, hosted on a CDN or a VPS, as long as it imports a few scripts and embellishes the <video> tag with a few details.
* Base case: you want to publish a video, you host the video. That means you host a server at home that is running the hosting software (maybe WebTorrent based, maybe something custom). As high-speed fiber Internet becomes more common, hosting video from a home network becomes more feasible (unless ISPs decide to cock-block it).
* A signaling server establishes a P2P connection (WebRTC datachannels) between a visitor of your Website and your video-hosting home server.
* If you have a fast enough Internet connection (100+ Mbps) and low traffic, I don't see why the base case shouldn't work (other than network connectivity problems due to complicated NATs and such). If you have a surge of simultaneous traffic, those that came earlier can offload pressure on the home server by seeding the video chunks they have already downloaded. Theoretically, infinite scalability without bandwidth or hardware bottlenecks (but likely coordination woes in practice).
But there's more!
Say there's another person on the Web hosting their videos in the same way. If I like their video, I can re-host it on my own home server and let their signaling server know about it. Now there are two "persistent" video servers hosting the video that a visitor can download from. If I trust this person, I can choose to automatically re-host all their past and future videos.
Moderation isn't a problem, because you explicitly choose which videos to re-host, or because you re-host (future) videos of people you trust.
The more people re-host videos, the better their availability, download speed, and latency if hosts are geographically distributed.
Further ideas of pooling signaling servers and home servers into networks to enable other possible niceties (though likely with a more substantial moderation burden) ...
I've tried a really basic proof of concept of the base case (across a few countries on a mobile network!), and it worked!
Currently, I'm looking to talk with anyone who is interested in any of this :)
I like Peertube a lot, and I didn't realize until just now that they had a form of P2P distributed distribution which uses WebRTC. But it would be great to be able to do that with a static site, without deploying a whole framework. Just a simple JS wrapper which could sit on top of a <video> element would be amazing
That would be kubernetes, right? Or the people using 9fs as a fast filesystem into their containers no matter what exterior architecture, without realising where it comes from.
Plan 9 was interesting for me because I was just at the point of deciding "maybe everything being a file is a mistake". Then I learned about plan 9 and it blew my mind. Really a very neat system.
It's not the most complete lens, but I've always also thought of it as "lots of servers advertising services through a centralized directory" (e.g. like NT's Object Manager).
But, I don't think the Plan 9 team ever figured out how to elegantly implement security/isolation-related primitives like secret storage with a single general mechanism. Their "canonical" way of providing secure authentication relies on a few ad-hoc capability mechanisms, built on top of 9P deeply integrated with some special-purpose kernel features. [1] If Bell Labs had more time, I think they would've ended up rethinking 9P around this issue.
I’ve been playing with it on an old laptop. It took me a bit to “get it”, but once the “everything exposes filesystems” thing clicked in my brain, I grew to really like it. I would love to try daily driving 9Front but the lack of a modern browser and video acceleration is a pretty hard blocker.
I still would like to make a server with it though. Maybe that would be a good weekend project.
So, hypothetically, if P9 had won, would it be better? I don't see any reason why it wouldn't be a perfectly capable interface. Is there a technical limitation here?
I don't know much about graphics, but having tried to get graphics drivers working on Linux for a couple decades, it seems like you're missing some context about proprietary interfaces here
My personal conspiracy theory is that they choose who to serve a degraded model to based on social graph analysis and sentiment analysis, maximizing for persuasion while minimizing compute.
IMO this strategy seems inspired by TikTok's approach for retaining new uploaders.
TikTok used to give new uploaders a visibility boost (i.e., an inflated number of likes and comments) on their first couple of uploads, to get them hooked on the the service.
In Anthropic/Claude's case, the strategy is (allegedly) to give new users access to the premium models on sign-up, and then increasingly cut the product with output from cheaper models.
Of course, your suggestion (better service for users who know how to speak Proper English) would be the cherry on top of this strategy.
From what I've seen on HackerNews, Anthropic is all-in on social media manipulation and social engineering, so I suspect that your assumption holds water.
I would actually assume a little more sophistication. For each user, a measure of "Are they convinced that AI is great". Then, you weaponize your compute to have the maximum social impact. If somebody has a large following (many edges on the social graph), and theyre skeptical of AI tech, inject the expensive but effective models directly into their veins. Let them taste the joy. Then start watering down their dose, and move onto the next person in the graph, again maximizing for net social impact. Language may not even be a consideration
Interesting - I just spent all day on this on an app which I'm using. My architecture is a little different (probably worse).
The app lives on a single OpenBSD server. All user data is stored in /srv/app/[user]. Authentication is done by accessing OpenBSD Auth helper functions.
Users can access their data through the UI normally. Or they can use a web based filesystem browser to edit their data files. Or, alternately, they can ssh into the server and have full access to their files with all the advantages this entails. Hopefully, this raises the ceiling a bit for what power users of the system can accomplish.
I wanted to unify the OS ecosystem and the web app ecosystem and play around with the idea of what happens if those things aren't separate. I'm sure I'm introducing all kinds of security concerns which I'm not currently aware of.
Another commenter brought up Perkeep, which I think is very interesting. Even though I love Plan 9 conceptually, I do sort of wonder if "everything is a file" was a bit of a wrong turn. If I had my druthers, I think building on top of an OS which had DB and blob storage as the primary concept would be interesting and perhaps better.
If anybody cares, it's POOh stack, Postgres, OCAML, OpenBSD, AND htmx
reply