Relay suddenly removed from networks topology

Hey guys,

Been running my pool [CORAL] for about a couple of weeks now with no problems when suddenly last night my relay was removed from the topology of the network. Not sure what caused this as it was still running fine with many peers, still does have IN and OUT peers. Yet pool.vet and pool tools say it’s offline. Should I run the topology updater script to see if this fixes the issue? Also if you guys have any insight to why this might of happend I’m very eager to know.

Thanks everyone!!

Allways, once/hour!

Hey Alex, yea it I had cronjob running it every hour. Mm maybe something went wrong when I restarted the node the other day and cronjob stopped running the script?

Yeah, could be… check the topology updater logs

Question one. Why do you even need to run that thing?
I know from reading “topology updater” is a script of some kind which was written by someone.
Question two. Once an hour? Why? The node will not consume the new file unless you restart it. Restarting the node every hour is unacceptable providing that it takes about 6-8 minutes for a node to boot. That’s a lot of missed slots and possibly blocks.

Can you please elaborate on why you need all that?
All you need really is a stable number of connections with peers.

The topologyUpdater shell script must be executed on the relay node as a cronjob exactly every 60 minutes . After 4 consecutive requests (3 hours) the node is considered a new relay node in listed in the topology file. If the node is turned off, it’s automatically delisted after 3 hours.

Hi,

I personally don’t think that it is anything to do with your “topology updater”.
Your host/relay is visible (and registered), it just cannot be reached for some reason.
Can you please check your firewall? I don’t see any ports opened on your host. Did you configure your firewall correctly? Did you forget to persist the rules and all ports got back to default after the server restart?

Natcat says your host is unreachable:

[super@ctrl ~]$ nc -zvw10 101.115.185.39 6000
101.115.185.39 6000 (x11): Connection timed out

This doesn’t mean it is down. It only means that it doesn’t reply to pings and host discovery.

TCP and SYN scans report host as down as well.

[super@ctrl ~]$ sudo nmap -sT 101.115.185.39
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-01 09:52 UTC
Note: Host seems down.

But if you remove host discovery (pings) it finally shows up

[super@ctrl ~]$ sudo nmap -Pn -F 101.115.185.39
Host discovery disabled (-Pn). All addresses will be marked ‘up’ and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-01 09:57 UTC
Nmap scan report for 101.115.185.39
Host is up.
All 100 scanned ports on 101.115.185.39 are filtered

So you most likely have problems with your ports as they are all closed.

Now the reason you still have connections is because your node initiates them. Your node sends SYN request to the peers. After that the connection is marked as established which is allowed to pass.

1 Like

Hi,

I get all that. Thanks. But my question still stays, why do you need to run the updater script every 60 minutes? And what difference does it make if you don’t restart your node?
I don’t run any updaters and my relay is visible. Relay information is on the blockchain.
I have around 20 healthy established connections and minting blocks.
I still don’t understand why it is needed? Please excuse my curiosity. I am just trying to understand if I am missing something in its intended purpose.

1 Like

Okay so whats happend is my bloody router has changed my Ipv4 address even though I swear I made it to be static. So now the network is trying to ping a IP on my registration that doesn’t even exist anymore, ahhh i’m so frustrated as we just went into lockdown here in Brisbane and I can’t access my servers until its over. To fix this so it never happens again I need to re-register my node with a DNS instead of an ipv4 address correct? Otherwise my ISP will just frick me over every couple of weeks haha.

Hey,

Sydney here :slight_smile:
Yes, always register DNS. Even if you have static IP. Things happen. It is much easier to update your DNS entries in case of the IP change. On top of that, you can do other cool things with your DNS and multiple relays. It is also good for things like DR etc. Definitely re-register.

1 Like

It isn’t necessary Ruslan, it’s just an add-on script someone wrote to help nodes find each other. Everyone who pings them 1/hour goes into their database of active nodes. Then maybe 1/5 days you download a new *-topology.json file from them with active nodes that are also participating in the ping 1/hour scheme.
I myself just wrote up some python scripts that download the official IOHK list of all relays on the blockchain, ping each one and build a topology file based off of either lowest response times or highest response times.

1 Like

Hey Ruslan,
I feel like i’m banging my head against a wall when it comes to finding a company that can actually give me the DNS service that I need. What DNS service do you use for yourself in Sydney?

Hi,

I don’t use anything Australia specific. My domain is registered with Namecheap and I also use their DNS service. Works well. They give you an option of a paid “advance” DNS as well if you want.

Every cloud provider runs their DNS services too.
I, for instance, use Vultr for my VMs infra. They give you DNS service for free. I don’t use their DNS, but it is there for me if I want it.

What kind of problems are you facing?

Okay this is a very obvious question and I am displaying my ignorance here. But do you need to have a domain to use a DNS service?? Because when I approached DNS service providers and explained to them I need a service that diverts traffic from a DNS to my changing dynamic IP they look at me blankly and tell me they don’t support such a thing. Am I missing the fact that you need a domain name first to point the traffic to in the first place, then route that to my dynamic IP? But also I’m confused how such a service is able to keep track of my changing dynamic IP, how does it know what it changes to? I understand the service would run a script to check if my IP changes but how does it find my new IP if it doesn’t know where to ping to??? And also because my pool is run at my home in Australia I would definitly want an Australian based DNS so that latency is at its lowest correct? I wouldn’t want it have to route through the US or UK for example correct?

Ah, don’t even know where to start :slight_smile:
So many wrongs here. Let’s try and untangle this.

First, you cannot have a dynamic IP with your DNS. Full stop.
There is a DDNS service to manage and update your DNS records with dynamic IPs but this is beyond this discussion.

You need to get a static IP. I cannot suggest anything as I don’t know your infra setup. Get a static IP from your ISP or “persist” one given to you by your cloud provider.

Yes, you need a domain name. Purchase one.
Once your domain name is yours, either keep it on your domain issuer DNS server or move it to the DNS servers of your choosing.
Add an A record to your domain and assign your static IP to the host you just created.
So if your domain is “mypool.xyz”, and you create an A record “coolnode” with your IP assigned to it, your pool will be accessible via “coolnode.mypool.xyz”.
If you decide to change your IP address, you’ll need to update your DNS record with the new IP. It takes around 4 hours for the DNS to propagate across the world (roughly).

It doesn’t matter where your pool is. DNS is propagated and synced across all DNS servers. You can register your DNS in Ukraine and you can still query an Australian DNS server to resolve your host.

Routing and DNS are completely different animals. DNS is just a global service to resolve your hostname to an IP address. Routing is the IP layer. Routing uses algorithms which are beyond this discussion.
You can ping Perth from Sydney and it will go through Japan. You cannot control this unless you are an ISP and control the edge routers.

All the above is irrelevant to you as a PO. Your pool can be contacted by any other pool in the world which can be located in Antarctica, and it can take an unpredictable route. It will take “the shortest path”. If going from Sydney to Perth via Tokyo is considered “the shortest path” by the routing algorithm, it will take that route.

On a separate note, please don’t try to use just Australian pools. It defeats the point of decentralisation.
Yes, response times do matter to win the height battle, but you also need to think about decentralisation.
Imagine, that Australia has only 10 pools, and they all talk only to each other. Then what? Who is gonna propagate the block across the puddle? Thinking that it will be someone else to talk to Germany - no me - is a bit selfish in my opinion. Just get enough peers in your topology randomly from everywhere.
Good luck

1 Like

Thank you very much Ruslan, this was extremely informative and definitely enlightens a lot of my ignorance. Unfortunately I have already discussed trying to get a static IP from my ISP to which they can’t offer me one. Its not so easy for me to change ISP either so I’m kinda stuck with what I’ve got in that regard. I’m not using any cloud service for my servers as they are run out of my home so I don’t think the point about “persisting” an IP applies to me. Am I pretty much screwed here? I was however doing some research the other day and found this VPN service called PureVPN that said they could give me a static IP that would somehow (the guy wouldn’t explain it to me) intuitively update what my Dynamic IP is. I was skeptical at this service at first and now even more since you have enlightened me more haha. Any insight on this would be much appreciated mate, Thanks.