[ANN] Nubits-Seeder (DNS seed crawler for NuBits)

Hello,

I would like to present the most recent addition to the NuNetwork tool shack:

This is a small piece of software that crawls for active Nu nodes. It also provides a build in DNS server, which results in something like this:

host nuseed.coinerella.com
nuseed.coinerella.com has address 79.165.43.162
nuseed.coinerella.com has address 94.23.252.118
nuseed.coinerella.com has address 128.199.149.176
nuseed.coinerella.com has address 73.7.110.25
nuseed.coinerella.com has address 176.9.65.41
nuseed.coinerella.com has address 91.64.185.252
nuseed.coinerella.com has address 162.243.108.181
nuseed.coinerella.com has address 104.131.41.17
nuseed.coinerella.com has address 188.226.223.94

So, if you query the said DNS seed, it will return a bunch of IP addresses where Nu nodes (version >=2.0.0) are reachable. The software is very (!) lightweight and demands next to no resources from the server.

Check it out, the server nuseed.coinerella.com is running. I’ll soon propose a motion to let this server be run on the same machine as anton.coinerella.com.

Main use cases:
-speed up peer discovery in NuDroid
-enhance connection number in Nud for users with peer discovery problems

Big thanks to @sigmike and @MatthewLM for their work.

Willy

6 Likes

awesome @willy!

Do you think it’s worth to have this piece of software run on multiple machines ?

I can setup on a raspberry pi and a couple of amazon instances if needed . Let’s coordinate it!

Mh. I never did something like NS load balancing, if that’s what you’re thinking of.

What I can imagine though is, that users can chose their own seeds in NuDroid and Nu.

Any case, I think “the more, the merrier” suits well here :slight_smile:

Edit:

The number of nodes on NuNet is currently ~200 if I recall correctly. One server instance is able to crawl all those known nodes in about 1-2 minutes, so given our current network size, using more than one seeder shouldn’t have a real effect.

well, redundancy is never unreal :slight_smile:
It’s not about ability to crawl fast(er) : if we only rely on one single machine and that machine goes down or becomes unreachable for whatever reason, nodes will be wandering in the dark :wink:

2 Likes

Of course, I was referring to the fact that it won’t enhance node discovery. Redundancy always is a plus!

genau!
I’ll ping you back when I get some time to setup a new machine!

Maybe you could also submit a small PR to https://github.com/NuNetwork/documentation where we are trying to collect all resources !

GERMAN! You… too?

hehe nope but raised somewhere bilingual :wink:

1 Like

I’m currently re-evaluating the idea of offering crawled nodes via a DNS server.

My main concern is the vulnerability of DNS itself. DDOS and SYN flood are pretty easy and seem very costly to mitigate.

I’m going to explain my thoughts referring to an article for a Cloudflare (CF) product called virtual DNS.
This blog article is a good read to get an idea how vulnerable DNS is in general.

The main problem I’m seeing is that the DNS server’s IP-address is very easy to detect and thus vulnerable to DDOS attacks. Virtual DNS, as offered by CF, would hide that IP-address and the attacker would “only” be able to attack the CF DNS frontend. The nubits-seeder DNS server would be (nearly) hidden in the network.

I’ve contacted CF to get an offer for their virtual DNS package which would provide proper DNS protection. Sadly, I don’t think this is going to be cheap.

A cheaper, maybe intermediate, solution could be offering the IP-table as a JSON file via HTTP.
Creating a small script that queries a local (not publicly available) DNS server and saves the data into a JSON should be quite easy to create. That’s about the additional development that would be required.

Reasoning:
-HTTP traffic is easily and cheaply (starting at 0$ / month) routable via CF-like services (CDN)
-IP of origin HTTPD is hidden by the CDN
-Easier to decentralize, due to low (lower) infrastructure costs
-Caching for the tables is available
-Performance increase

NuDroid / Nud would need a routine that reads the JSON and then makes the connection attempts.
I’m currently discussing with @MatthewLM how hard that would be to implement into NuDroid.

Thoughts?

How does it compare to Bitcoin btw?

There are currently ~700 connected to the bitcoin node of https://blockchain.info/ … I guess there are a bit more.

Crawling for a couple of days, nubits-seeder shows about 25 of those 200 NuBits nodes to be reliable enough to be considered as a seed node provided in the DNS zone.

1 Like