IPNS-Link : Address/expose DYNAMIC websites using IPNS and access them using any Gateway

The prototype is live.

1 Like

If you have had your first taste of IPNS-Link, we are eager to hear from you. Join the community and help the project grow. Consider contributing in any way you can.

If you have any questions or comments feel free to email us.

We also take this opportunity to thank the IPFS and Libp2p developers without whose hard work and commitment, IPNS-Link would never exist.

1 Like

Here’s our first blog post. Hope you like it :smiley:

Open call for devs

Hello Kindred Spirits,

We welcome you to implement the IPNS-Link project, especially the Gateway, in a proper server-side language - be it Go, JS, Rust, Ruby, Python - whatever you are good at. The existing prototype, in the spirit of playful experimentation, has been rather hurriedly hacked in Bash :man_facepalming:. Thankfully, it works! But of course we need to evolve.

For your implementation, you can follow the specs, which you are welcome to freely discuss, criticize, improve upon and contribute to, and reference the existing version. Once you start working on an implementation, please create an issue here to keep the community updated and to encourage collaboration. Once it’s working, your implementation will be proudly featured in IPNS-Link’s GitHub organization and you would receive a public membership invitation.

If you have any queries, or if you wanna say hello and show your support, or if you just wanna school us, always feel free to get in touch: contact@ipns.live.

Thanks for chipping in.

We are on Medium now :smiley: IPNS-Link – Medium

Another blogpost on IPNS-Link : Introducing IPNS-Link - DEV Community

Looks interesting. Please forgive me, because I haven’t dug too deeply into this yet, but what does IPNS-Link to that isn’t already in stock IPFS? Does it just automate some of the functionality already there? Does it add something new?

@zacharywhitley Glad you asked :blush:

The current implementation of IPNS-Link consists of simple Bash scripts dependent on go-ipfs (v0.10.0 onwards) and some standard *nix tools. In this sense, IPNS-Link indeed just automates some of the functionality already there in vanilla IPFS. So what’s all the fuss about, you might ask. Well IPNS-Link shows you a new way to use IPFS, if you will, harnessing its full potential – something I haven’t found elsewhere. Allow me to explain.

  1. IPFS is mostly associated with static web-publishing. IPNS-Link, on the other hand, exposes any web-app, including dynamic sites.

  2. To access an website pinned to IPFS, you need an IPFS-gateway. To access a web-app exposed with IPNS-Link, you need a new type of gateway, called an IPNS-Link-gateway. These gateways are purpose-built to serve dynamic websites efficiently. They are way more than simple http-proxies. When they are asked to perform as a simple IPFS gateway, they would shake their head and redirect you to a subdomain IPFS gateway such as cf-ipfs.com.

  3. When exposing your website with IPNS-Link, you can specify which public gateways you trust. All other gateways will redirect your users to your trusted gateways.

  4. You can instruct IPNS-Link-gateways to redirect users to a preset URL when your local server is offline.

  5. You can instruct IPNS-Link-gateways to serve the static contents of your website - such as logos, images, css, javascripts and knowledge-base from the IPFS cache (compare CDN). Only requests for dynamic contents are proxied to the origin-server. Gateways can be instructed to cache streaming content too.

  6. IPFS, in conventional usage, consumes a lot of bandwidth, even in dhtclient mode. IPNS-Link doesn’t. It takes lots of pains to make sure your internet bill is minimal without sacrificing performance.

  7. In an upcoming feature, you would be able to enforce geo-restriction at the gateway level. Third parties can’t censor your site, when exposed with IPNS-Link. But you may choose to geo-restrict yourself, and gateways would respect that.

Very cool. Thanks for the response. All very good into to know about your project. It’s really helped me to understand it a lot better.

1 Like

IPNS-Link has a Matrix community now. All welcome: https://matrix.to/#/#ipns-link:matrix.org