Hi! Author here. This is my first npm package, so I'd love to hear feedback on how I can improve it, what tools I can use for that, etc. Thank you for checking it out :)
Is it possible to update a website hosted on IPFS and push those changes to all IPFS users?
The equivalent on AWS Cloudfront would be breaking the cache, so all users would see the most recent version.
I'm not sure if this would work on IPFS because it seems more like a P2P network and there might be many different (and old) versions of the site at different locations in the system, with no way of controlling who sees what.
IPFS is p2p, but all the content is accessed only by a hash, so the same address always refers to the same version; when you update the site, you're actually creating a new address, leaving the old untouched.
Using Cloudflare, you can tie a regular domain to one of these addresses, but that "tie" is only stored there, so when you push a new version, you can update the Cloudflare settings, and everyone connecting to the domain will see the new version "immediately", even if the old version still exists in the p2p
network.
Good idea! I've been following Web Packaging from a distance, so would need to do some research, but from the looks of it, ipfs-deploy could automate packaging up a directory into an SXG before uploading it to pinners. Gotta figure out how to the signing part though. I'll look into it!
Thank you! It makes me very happy to hear that. Feel free to ping me if you run into any trouble (even if it's just a non-showstopper like some unnecessary friction or papercut.) Also keen on hearing what services I should add next. I don't use AWS Route 53 but I think it would be a good option to support for instance.
If you pin to IPFS and then use a public http gateway like https://cloudflare-ipfs.com, which caches and distributes via their CDN, you'll have a good CDN alternative.
If you just use IPFS directly with a non-CDN'd, non-cached http gateway, the latency will probably be prohibitive for regular web stuff.
Yes, definitely. I mean, you certainly get better bandwidth and latency depending on popularity and geographic diversity of seeders, and there are even youtube-alternative websites that host videos on IPFS. But for something like browsing from one page to the next, where the payload is small and you want <200ms latency, I think just the DHT lookup might already put you above that budget. I'm guessing though, haven't made any measurements.
In torrent when you download something you also announce yourself as a seeder. In ipfs afaik you have to explicitly pin something in order for your peer to be announced as a provider.
This means that even if your content in ipfs is popular it won’t be fast.
I should add, since you didn't specifically mention web stuff, that it _can_ be used as a CDN for stuff that is less latency-sensitive, like software package managers. That is in fact, the main focus of 2019 for Protocol Labs, the company behind IPFS.
If I am supposed to host my website on it, I want to know how much it would cost (for a given service level). Don't really care if the tech is more like butterflies or turtles...
IPFS nodes generally cache data that has been accessed recently, so if your website is the most accessed content on IPFS you can host it for free just by sharing it once and users will have relatively quick access to it because nodes directly connected to them will probably have a cached copy already. If requests are rare, expect to host it yourself or pay a pinning service, and expect higher latency as users will be requesting content hosted multiple hops away. You should care whether the tech is butterflies or turtles, because you can't compare butterflies and turtles -- or you can, but the comparison breaks down when you ask which will get to an undefined point x quicker. If x is in the air, butterflies; if x is in the water, turtles.
I'm trying to learn more about IPFS for long term file storage. Do you know if these services are using "IPFS Cluster" or something like it to manage pins?
Wow, that was really fast, congrats! I'd love to have Eternum support on ipfs-deploy, btw. Please let me know if you'd like to submit a PR and need help.
Afaik. in the pinning method this tool uses, it costs nothing. But you can't be sure that it will really be always live (it depends on the good heart of the pinning service you used).
If you want to really ensure it's live you should run at least one node that pins it yourself (or pay someone to do that)
Yeah both Infura and Pinata are free for up to 1Gb or something like that, which is fine for most static websites and blogs. But those are startups, so I agree that for long-term permanence it's better to do some self-hosting down the line.