You can register your pools relay on chain as hostname and portnumber. So what you need in case your IP changes is a quick way to dynamically update the DNS A-record for this hostname to the new IP.
The next challenge is to also end up in other relay node’s peer list.
First the background: the implemented block and TX propagation protocol is made in a way that the receiver ask the sender for certain data. It’s not the sender who can blow out as much as he can, demanding ressources for all receivers to validate the incoming data.
Said this I haven’t tried it yet, but I would try to publish a hostname to other peers, with a relative low TTL, eg 2-5 minutes.
What needs to be tested is if the implemented cardano-node does consider this relative low DNS based TTL, and do a fresh DNS A IP lookup
As @RobJF was saying you can either ask your ISP for a static IP or as an alternative you can use a VPN service albeit at a fee or subscription @laplasz.
There is a 3rd option and that is to change your ISP to one that provides public static IP addressing.
Yes, you can supply a DNS name during stakepool registration.
However, you are already stating that the public ip address changes every week.
This will make your stakepool unreachable for some time after a public ip address renewal and a dynamic DNS update because of DNS caching that takes place at other nodes within mainnet.
So dynamic DNS is not preferred.
As updating the registration-certificate requires the cold keys, this is harder (unless you leave your cold keys on an node ) to update in a timely manner (automated).
How critical is it if the nodes are updated first and the certificate later?
Will the node be able to produce blocks?
You can use DNS instead of an ip address. Then you only need to register it once.
You don’t have to start the node with an ip address, because it is optional.
It will just listen on all ip’s that it has then.
I’ve created a staking node on testnet, and I haven’t managed to set a hostname instead of an IP address. Can someone confirm that only IP addresses are accepted or how to set a dns name instead? Thanks