Skip to content

Node reuse and resource sharing on the web #158

@lidel

Description

@lidel

This is a placeholder for tracking open problems and related issues / notes

Embedding js-ipfs on a page binds it to specific tab, origin, and storage.

Open problems

Per Origin

js-ipfs embedded on a web page runs in the context of page's Origin, which means:

  • datastore uses local storage allocated to the origin,
    this means permissions and storage limits are shared with other JS running on a page
  • opening a new tab for the same page spawns a new, full instance of js-ipfs operating on the same datastore

Cross Origin

Each websites running js-ipfs does it on its own:

  • new datastore is created per Origin
    • nodes are unable to share storage,
      • data for a single CID can be stored multiple times in the same browser profile

Same machine

js-ipfs is unable to discover ipfs-desktop running on the same machine.
It could leverage its existence for:

  • delegated routing
  • content preload
  • circuit switching (relay)
  • shared cache, data deduplication
  • persistence (ensuring CIDs are cached outside non-persistent browser storage)

References

Prior Art

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions