Opinion about this IPNS deployment workflow

Hello,
I write here because I want to understand if what I’m trying to do makes sense.
I’ve a small static website and I would like to publish on IPFS but I don’t like DNS (let’s suppose) ans so I would like to use only ENS without dnslink. At the moment I’ve the following automated workflow when I commit on my GitHub repository:

  1. The site is built
  2. It uploads it to Pinata using a GitHub action and get the CID hash
  3. It makes a POST to my personal IPFS node to pin the new version
  4. It makes another POST to my node to publish using IPNS

Now my site is reachable at a static IPNS hash, it’s a little slow the first time I visit it using a gateway (both the mine and that of Pinata) but it’s ok for my needs.
The first step would be to buy an ENS domain and link it to my IPNS hash, the reason because I can’t update the ENS record with a new CID every time is that I would need to make a Ethereum transaction and it costs.
Another thing because someone asks: the IPFS API is behind a Nginx proxy with the authentication enabled, so I’m the only that can update the IPNS address.
Last thing: I don’t like the idea to use a third party service, now I’m using Pinata only to increase the redundancy.

My major doubts are:

a. If my node shut down people can get my site knowing only my IPNS address?
b. I can set a lifetime parameter with IPNS when I make name/publish call, the default value is 24h, can I set something like 24000?
c. Could be useful set the ttl value too?

1 & 2
IPNS just a small data and It has lifetime (Default 24h and yes, you can set it to 24000h). if your IPNS record expired, people can not get CID from this IPNS record and also can not visit website.
3
I don’t think the ttl will help you. Because the ttl only affects the cache time of visitors’ machine.

ENS domains aren’t natively supported in all browsers. As far I know, there are only two mainstream browsers, Brave Browser and Opera that support the .link TLD when entered in the address bar.

Also… the eth.link domain space is now controlled in large part by Cloudflare:

https://medium.com/the-ethereum-name-service/ens-partners-with-cloudflare-on-improved-eth-link-service-4801bf9148ff

We are pleased to announce we are partnering with Cloudflare to provide better service for eth.link. On January 18th, we will transition our ENS + IPFS gateway service hosted at eth.link to a version developed and run by Cloudflare. You can read a description of how Cloudflare’s service works on their blog.

So, the reality is… if one is utilizing some form of name resolution to content, one is reliant on some “Big Tech” something or another.

For a real decentralized content hosting/provider solution, you’ll need to develop an IPFS enabled application which runs its own node per installation… or run your own gateway and put your web page IPNS key in the Gateway.RootRedirect configuration variable.

https://github.com/ipfs/go-ipfs/blob/master/docs/config.md#gatewayrootredirect

Options for hosting static content:

  • ENS domain resolved via Cloudflare and Brave Browser
  • Self-run IPFS Gateway and Internet facing IP address
  • DNSLink
  • Pinning service and distribute IPFS links by hand to interested parties…
  • Traditional web server + DNS

For low bandwidth static content, I would probably just utilize DNSLink + Pinning service…

Pinata has free pinning for up to 1GB of storage. Domains can be purchased for a few dollars a year… or if you like EPIK, $300 USD for an infinite time. Then you don’t need to run a server at all… one time fee of $300… just update the DNSLink records whenever your content changes.

At the moment of this post, I’m showing about a $50 fee for changing ENS records. So, ENS could be very expensive for time sensitive changes.

Wow, $50 per update? That’s insane. Good for them if they can get that but that’s not something I’m even going to think about using.

The price for updating ENS records is not set by ENS…

It’s a smart contract. The fee goes directly to Ethereum miners for processing the transaction on the blockchain… Once you buy an ENS domain, ENS does not charge any other fees.

Gas prices have been quite high today for some reason… Right now, it’s about $36.00 for a generalized smart contract interaction.

Check basic gas market price here:

Interesting info. I’m not making any moral judgment on the price just saying it’s too much for me. It’s like a high stakes poker table. Nothing wrong with playing poker for lots of money but I’m not sitting down. I’ll just watch from the sidelines.

Gas prices fluctuate with blockchain congestion. I’ve interacted with complex smart contracts with low gas prices… and total transaction costs of just a few cents USD…

Eth Gas Station has an API which can be used free of charge to monitor gas prices in a somewhat automated way.

I’ve created a little script that places the current basic values on my Openbox desktop via the conky utility. It’s handy to have an idea how much xyz trade/contract interaction is going to cost at any given moment…

Nice. I was thinking, “really? With covid gas has been pretty cheap lately. Like $2.50/gal” I had to look it up. I’d love to keep up with crypto currency but I’m already depressed enough trying in vain to keep up with the AI thing.

@FledgeXu

IPNS just a small data and It has lifetime […]. if your IPNS record expired, people can not get CID from this IPNS record and also can not visit website.

And if my IPNS record doesn’t expire but my node shut down? How long the other IPFS nodes remember my IPNS record?

@ipfsme

ENS domains aren’t natively supported in all browsers.

Yes, I know, at the moment I’m using a Firefox extension.

Also… the eth.link domain space is now controlled in large part by Cloudflare

I didn’t know and I am neither happy nor amazed.

For a real decentralized content hosting/provider solution, you’ll need to develop an IPFS enabled application which runs its own node per installation… or run your own gateway and put your web page IPNS key in the Gateway.RootRedirect configuration variable.

Now I’m reconsidering this solution and I just implemented something similar, since I want to leave my IPFS node public I didn’t change the IPFS configuration but I added the following new route in the reverse proxy:

mysite.org -> myipfsnode.org/ipns/mysite.org

This works because in the end I added a dnslink record.

if you like EPIK, $300 USD for an infinite time. Then you don’t need to run a server at all… one time fee of $300… just update the DNSLink records whenever your content changes.

I didn’t know such plans existed, interesting concept however…a potentially eternal website.

At the moment of this post, I’m showing about a $50 fee for changing ENS records. So, ENS could be very expensive for time sensitive changes.

Yes, I know, maybe with the layer 2 we’ll have minor fees, let’s hope.

Thank you all.

@aciceri

When you publish IPNS record, your IPFS node will publish this record to other nodes to store. So if your node shutdown, it should be ok. The time should other IPFS nodes remember you depends on publish lifetime.