ipfs / in-web-browsers

Tracking the endeavor towards getting web browsers to natively support IPFS and content-addressing
https://docs.ipfs.tech/how-to/address-ipfs-on-web/
MIT License
344 stars 29 forks source link

Document compelling use cases for IPFS in the browser #14

Open flyingzumwalt opened 7 years ago

flyingzumwalt commented 7 years ago

Collect descriptions of compelling use cases for IPFS in the browser. This info can then be used in #26

Background

@gozala:

I probably have repeated this many times already, but I think most important is to figure out what IPFS in browser supposed to give users and try to figure out all from that perspective.

@gozala in #22:

As to what I'm proposing - IMO there needs to be a particular, well defined feature that IPFS in browser provides that would gain a user traction. For example Opera shipped p2p file sharing, chat & static site server back in 2009 and so did AllPeers Firefox extension in 2006 but neither end up being successful, it's either due to lack of that particular feature or maybe they were just ahead of time. Either way I think it's something worth taking time to consider.

flyingzumwalt commented 7 years ago

Some things that are currently on the web but not accommodated by browsers: VR, Blockchains, IoT

flyingzumwalt commented 7 years ago

Things that create new possibilities in browsers

Examples:

CREATING THE COUNTERPOINT TO: "your machine is a portal to the cloud." INSTEAD EMPHASIZING: visibility of what's around you. Treating all data as social data and all interactions between nodes as social activity.

flyingzumwalt commented 7 years ago

Use case Inspired by @jefft0's comments in #21: bookmark a page and snapshot it and serve that snapshot to the network. Plus, by extension, copy that snapshot to any additional nodes (i.e. Newspaper, Library, Legal Proceedings) with cryptographic integrity checks.

ghost commented 7 years ago

UX probably similar to the Wayback Machine browser extensions and bookmarklet? https://blog.archive.org/2017/01/25/see-something-save-something/

jefft0 commented 7 years ago

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.

jefft0 commented 7 years ago

... 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.

haadcode commented 7 years ago

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 https://github.com/whyrusleeping/ipfs-webext/pull/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.

reit-c commented 7 years ago

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.

lidel commented 5 years ago

We are making progress with IPFS in Service Worker (https://github.com/ipfs/in-web-browsers/issues/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 :upside_down_face:

Namely: