Improve ip updating of storage node

Where I live it is common for ISPs to change ip address every time after disconnect and force a disconnect every 24hrs.

The storagenode has no awareness of when the ip has changed. For several reasons using a ddns service is not a good option (free accounts are limited, require ongoing confirmations, service is limited, number of requests might be limited, professional accounts are not free)

Also I consider network discovery of a node as a crucial part which should not rely on "some" 3rd party.

So atm the only way would be to stop the node, change ip in config file and restart it. This however is assumed to come with a massive overhead and kills all statistics thus it is likely to harm reliability and reputation of a node.

So I propose 2 possible solutions:

1. Make the storagenode software aware of ip changes so that it can update and re-advertise to the satellite without complete restart.

2. At least implement a server command for only updating the ip without restarting the entire node so the stats, reliabilty and reputation stays intact. I have something in mind similar to the postfix command "postfix reload", which reloads a changed config without restarting Postfix.

A similar command could be something like /etc/init.d/storj -force-update-ip or simply passing the ip as argument like /etc/init.d/storj -update-ip

I would prefer no.1 to be implemented and storagenode should update its by itself ip without any required interaction of node operator or requirement to restart.

However if at least no. 2 will be implemented then node operator could take care of detection of ip change an run a script to have the node update its ip.

In any case I want to repeat that in my view network discovery is crucial for the storagenode and the entire network, so it should not rely on any third party. Therfore change of ip address should be detected locally and updated without the need of restarting the node.

  • Jammer Dan
  • Jan 16 2020
  • Attach files
  • Jeremy Fritzen commented
    12 Apr 08:54am

    Plus I don't get your point here "kills all statistics thus it is likely to harm reliability and reputation of a node.". Why so?

    The reputation shouldn't be strongly affected if the container is restarted quickly after the IP change.

  • Jeremy Fritzen commented
    12 Apr 08:50am

    Maybe I didn't get the real problem but is it so difficult to restart the container with the new IP?

    A simple script could check regularly if your IP changed. If so, it gets the new one and restarts the container with it.

  • Jammer Dan commented
    3 Mar 05:34pm

    @Pierre-Antoine Charrier

    Yes you are right. Point 2 would simply offer the option to let the SNO implement his own ip update detection and update the node without the requiremt to edit the config and restart the node manually.

  • Pierre-Antoine Charrier commented
    2 Mar 11:06pm

    To me, point 1 is interesting. That'd be a very welcome improvement, making SNOs' life better. Would also make the deployment of a node slightly easier. Very good idea.

    On the other hand, I don't quite see how point 2 would be easier than setting up a DUC or a free DDNS account like no-ip that needs to be manually refreshed once a month.

  • Ryan Curtis commented
    2 Mar 06:09pm

    This would make the network more resiliant by having higher uptime and less repair due to offline nodes. Should get a pretty great benefit from not having to do excess DNS lookups, and waiting for DNS propagation when IPs change.

  • Jammer Dan commented
    2 Mar 04:47am