-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document compelling use cases for IPFS in the browser #14
Comments
Some things that are currently on the web but not accommodated by browsers: VR, Blockchains, IoT |
Things that create new possibilities in browsers
Examples:
CREATING THE COUNTERPOINT TO: "your machine is a portal to the cloud." |
UX probably similar to the Wayback Machine browser extensions and bookmarklet? https://blog.archive.org/2017/01/25/see-something-save-something/ |
These Wayback Machine extensions require manual intervention for the user to click the snapshot button. The whole awesomness of IPFS is that I am already viewing a snapshot, and the link I bookmark or put in a blog post can automatically be a link to an IPLD object which has the snapshot plus the mutable IPNS link. The browser already needs to be IPLD-aware (to display directory objects, etc.), so it can handle this transparently for the user. |
... People are used to copying from the address bar or doing "right-click Copy Link Address". It has to work in this case or the web will continue to be connected by rotting links. |
One use case for IPFS is lightning-fast download speeds and to use it as a local cache where possible. Not sure yet what the ideal technical approach would be, but continuing @whyrusleeping's add-on prototype, I added an experiment how it would feel to download files at IP-speeds whyrusleeping/ipfs-webext#1. This approach requires the serving websites to change their links' hrefs to contain a multihash which is not ideal and something automated would be preferred in the future. |
Regarding browser vendors, the chief way to persuade them to support this or that is to show it as already being in wide use. To this end js-ipfs is incredibly powerful; if use of it gains traction (and I have no reason to believe it won't if it does what it says on the box), then it'll be possible to present their support as an optimization rather than a new feature. If nothing else, there'll be a very strong case for granting ipfs security exceptions (such as allowing multiple tabs to share ipfs instances etc.). In other words, presenting hypotheticals to them of what ipfs could or might do is all well and good, but to sell accounting on it there needs to be practical calculation of what definitely would happen were support added. Best way to do that is to actually implement sites that use ipfs and get ordinary people actively using it on a regular basis. I certainly intend on doing that and can assure you that you will see ipfs integration spring up on fringe sites, but the killer argument would be if a more mainstream site adopted it. If ipfs could be marketed as a direct alternative to Cloudflare that might be a good way to pull it off. Ideally, js-ipfs would be a horrendous RAM/CPU hog based on having to create new nodes for each tab, and it'd be a widespread enough of a complaint from ordinary users that the vendors' would be receptive to reducing that load. These are companies that spend inordinate amounts of effort shaving that extra millisecond off javascript rendering times, this sort of optimization argument is the one that will resonate with them. |
We are making progress with IPFS in Service Worker (#55, ipfs-shipyard/service-worker-gateway) and a great use for it would be a drop-in replacement for old school CDN. At some point we will solve local discovery and transports in the browser context (libdweb, webrtc in worker or by some other means) and get it to a point where it is faster and cheaper than a free CDN 🙃 Namely:
|
Collect descriptions of compelling use cases for IPFS in the browser. This info can then be used in #26
Background
@Gozala:
@Gozala in #22:
The text was updated successfully, but these errors were encountered: