I am building a node.js web api using IPFS basically as a database for json records.
As IPFS gateway I am using Infura which works great.

As you know, for mutable files IPNS comes to the rescue. Unfortunately Infura does not support IPNS so I would like to discuss what’s the alternative?

From what I see, I have two options:

  • run IPFS daemon on a VM and publish IPNS recording using it’s http API
  • run js-ipfs with my node.js API and programmatically publish IPNS names.
  • other?

In general, the more I read about IPNS, the more I wonder if it is the right choice to handle resolving mutable files on IPFS

  • it requires an alive node in order to be holder of the keys (if the node goes down, the keys might be lost forever)
  • it seems to be quite slow to distribute the keys (it depends who and how it reads them)
  • IPNS ha

In short, what are my options in case I want high availability and high response for mutable data when using IPFS?

PS: I tried DNSLink, yeah, it’s a wonderful solution for static content but not for mutable data.

You can export and backup the keys but I get your concern. I’ve been looking into what it would take to support pkcs11 so you can store them in an HSM.

Over the DHT. It should be much faster if you were to enable ipns pubsub.

Looks like your last bullet got cut off.

You can use DNSLink for mutable data by just pointing it to ipns rather than ipfs but I get what you’re saying here. In this case DNSLink just gives you a more memorable address.

Personally, I’d go for some minimal VM from a cloud provider, enable pubsub and use it just for publishing IPNS.

Thanks for the answers

How do I do that? Do you have any link to a documentation so I can study further?

Sure do. Take a look at kubo/config.md at master · ipfs/kubo · GitHub

You’ll want to enable two settings Ipns.UsePubsub and Pubsub.Enabled

dWebServices can be another alternative, basically pinning the ipns records for you for free, also include API

Please, someone define what “pinning the IPNS records” means.