Opened 4 years ago

Last modified 4 years ago

#16477 new enhancement

Native ipfs / ipns support

Reported by: kallisti5 Owned by: axeld
Priority: low Milestone: Unscheduled
Component: Network & Internet/Stack Version: R1/beta2
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by kallisti5)

Was thinking about this, and native ipfs / ipns support in haiku would be pretty neat. It could be implemented the same way gopher is implemented (but instead of directly communicating with IPFS, just returning a gateway URL)

Relevant code locations:

  • src/kits/network/libnetapi/IPFSRequest.cpp
  • src/apps/webpositive/BrowserWindow.cpp

We could parse ipfs URL's and translate them to a public IPFS gateway:

ipfs://Qm..../index.html
V
https://cloudflare-ipfs.com/ipfs/Qm.../index.html

The gateway should be configurable. You can use a public gateway, one on your network, or an IPFS gateway running locally...

ipfs://Qm..../index.html
V
http://127.0.0.1:8080/ipfs/Qm.../index.html

IPNS support would give basic name resolution support:

ipns://coolsite.com/index.html
V
http://127.0.0.1:8080/ipns/coolsite.com/index.html

This is kind of a "minimum" implementation allowing handling ipfs addresses.

More information: https://ipfs.io

Gopher mentions needing to be converted to an add-on.. I *think* this could be implemented out of tree as an install-able add-on (with some changes to handle ipfs, ipns in webpositive), but I don't see fundamental add-on support in our network kit to do such a thing. If this is the consensus, then this ticket should be replaced with one to implement add-on network kit URI resolvers.

Change History (2)

comment:1 by kallisti5, 4 years ago

Description: modified (diff)

comment:2 by kallisti5, 4 years ago

Out-of-tree URI handling blocked by #16478

Note: See TracTickets for help on using tickets.