Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: PereguineBerty on May 07, 2014, 07:03:56 PM



Title: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: PereguineBerty on May 07, 2014, 07:03:56 PM
These can be a serious pain in the ass to get working and let’s face it – the information available on them is rather fragmented and vague at best, even if you are already accustomed to the workings of currencies.

This guide is divided into three parts:
1)   Adapting the seeder software
2)   The web stuff
3)   Running the seeder

Before doing anything else, it would be best to have a web address in mind for your seeder. Most of them use subdomains i.e. dnsseed.yourcoin.org rather than regular page links such as yourcoin.org/dnsseed (this is for DNS record reasons). You don’t have to call yours dnsseed; in fact you can call it what the hell you like.

Adapting the Software
1.1)  In your currency’s net.cpp enter the address that will be used for your seeder i.e.

Code:
static const char *strMainNetDNSSeed[][2] = {
{"yourcoin.org", " dnsseed.yourcoin.org "},
        {NULL, NULL}
}

You will need to recompile all your wallets before release for these changes to take effect, so make sure you settle for something that won’t need to be changed later.

1.2)  Download or make a fork of the Litecoin Seeder https://github.com/pooler/litecoin-seeder (https://github.com/pooler/litecoin-seeder) which is based on sipa’s Bitcoin Seeder https://github.com/sipa/bitcoin-seeder (https://github.com/sipa/bitcoin-seeder)). You can use either version and it doesn’t matter whether your coin is SHA-256, Scrypt, X-11 etc. The LTC version is used here for demonstration purposes because it has already been customized and the most relevant/important stuff has already been changed. This means there’s commit history and it’s much easier to show changes using GitHub as it has color coded syntax highlighting - which isn’t possible on this forum. Whichever version you use, read the README to familiarize yourself with the process.

1.3)  Using this Litecoin Seeder historical commit as a reference:  https://github.com/pooler/litecoin-seeder/commit/3c64ed5ab35f597480712818a27d442100332719#diff-4ed1bfdfd26731997cfdb6c1085c6692 (https://github.com/pooler/litecoin-seeder/commit/3c64ed5ab35f597480712818a27d442100332719#diff-4ed1bfdfd26731997cfdb6c1085c6692), you need to alter your own seeder code with  your coin’s ports, magic bytes (pchMessageStart stuff), protocol version, seeder name and the web address of your of your DNS seed.

Note:  When adding your domain name in the seeder’s main.cpp, if you only have one site to enter, use the following syntax in full:

Code:
static const string mainnet_seeds[] = {"dnsseed.yourcoin.org", ""};

Otherwise you will get segmentation faults when compiling later.

1.4)  Upload your repo to GitHub.


The Web Stuff
The main point of this stage is to (very loosely put it) redirect traffic from your website by creating a DNS 'NS Record' and an 'A record' to instruct where the resources can be found. This will enable your web address to forward to a host somewhere else, such as a VPS running the DNS Seeder software.

2.1) In your website host’s admin panel website, create a subdomain. If you are self-hosting you probably might not need to create a subdomain and can just use DNS records to achieve the desired result. Use the address entered in your currency’s main.cpp i.e dnsseed.yourcoin.org. Web host admin panels vary tremendously, so you may need to Google how to do this on yours. This link has useful info on creating an NS record http://help.dnsmadeeasy.com/spry_menu/ns-record/ (http://help.dnsmadeeasy.com/spry_menu/ns-record/)

You might need to do this twice – once for dnsseed.yourcoin.org and again for www.dnsseed.yourcoin.org. Alternatively, if you self-host, you will need to use the run in this Linux terminal command to create the NS record:

Code:
dnsseed.yourcoin.org   86400    IN      NS     192.168.0.1

(Obviously changing the dnsseed.yourcoin.org and 192.168.0.1 to the relevant domain name and IP address of your VPS).

2.2) Create an 'A Record' (Address record) that points your dnsseed.yourcoin.org to the IP address of your VPS.

You can check the DNS status by typing the following into a Windows/Linux/Mac command prompt/terminal, even on your home PC:

Code:
nslookup dnsseed.yourcoin.org

The IP address of your VPS should be displayed if the record is working correctly but be aware it may take a while for the DNS record to propagate, so please be patient.

Please note that some web hosts do not allow you to create NS records on shared hosting plans, so if the option to create one isn't available, send their support team a message. They create one for you or may tell you that you need to upgrade your hosting plan. Try your luck with just an A record instead and see if it works.


Running the seeder

The seeder has to be compiled before it can be used!

3.1) Clone your seeder’s GitHub repository onto the VPS/server that will be running it and navigate into the seeder’s main folder.

3.2) If you are using 64-bit operating systems, make sure that initial compiler flags in the Makefile are set to:

Code:
CXXFLAGS = -O3 -g0 	(i.e. remove –march=native because this will cause architecture issues)

3.3) To compile, type the following the terminal:

Code:
make

3.4)  Now you need to instruct the seeder to run and look up the host and name server, so in the terminal you need to enter something along the lines of the following but (obviously!!)..... change dnsseed.yourcoin.org to your seeder’s website address and the 192.168.0.1 to your server/VPS IP address.

Code:
./dnsseed -h dnsseed.yourcoin.org -n 192.168.0.1

This guide isn’t a definitive guide and WILL need some improvements so if you come across any problems, please post them in here rather than PM me as I don’t have time to help everybody. Hopefully people who have come across similar issues too will be able to help out and turn this thread into something that is a useful resource.



Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: YarkoL on May 07, 2014, 10:06:20 PM
Great guide!


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: elbandi on May 08, 2014, 12:10:30 AM
Just a note.
You sould create a NS domain record not an A record. Becase this seeder act as a dns server, and answer for the request with 3-4 valid ips.

Elbandi


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: behzadtala on June 16, 2014, 07:50:06 AM
is that possible to run yourcoind and software seeder software together on one server?


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: morinpa on June 28, 2014, 12:51:16 PM
Yes, it is possible.  They use different ports.


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: morinpa on June 28, 2014, 12:57:19 PM
Hey PereguineBerty

Thanks for the guide, it was helpful.

But I still have a question.  What does this do?

static inline int GetRequireHeight(const bool testnet = fTestNet)
  {
     return testnet ? 0 : 470000;
  }

Return 0 when on testnet and return 470000 when on mainnet, I guess, but what does in control exactly? Trying to adapt this for another coin and I don't quite understand this part.

Thanks


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: psionin on July 04, 2014, 07:54:05 PM
Awesome stuff, thanks for posting this. How can one check to see if it works? Are there any stats that can be read either from the directory or by sending commands to the process?


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: YarkoL on July 04, 2014, 10:49:57 PM

Return 0 when on testnet and return 470000 when on mainnet, I guess, but what does in control exactly? Trying to adapt this for another coin and I don't quite understand this part.


Nodes that have blocks less than that number are
discarded by the crawler as not good candidates,
see IsGood db.h:108


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: esotericizm on July 04, 2014, 11:30:55 PM
If you have a server running a form of *nix you can install and setup bind9. That way all you have to do is add some nodes to your zone file. No need to use bitcoin seeder.

Of course this will require manually updating your zone file to add new nodes.

Good guide otherwise.

Awesome stuff, thanks for posting this. How can one check to see if it works? Are there any stats that can be read either from the directory or by sending commands to the process?

Easy way to test is to use a site like https://www.whatsmydns.net and search the A record. If its working it should display a list of your peers/nodes or you can use 'dig' if on a *nix machine.


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: PereguineBerty on July 06, 2014, 07:18:18 PM
Awesome stuff, thanks for posting this. How can one check to see if it works? Are there any stats that can be read either from the directory or by sending commands to the process?

When the seeder is initialy run, it displays a real-time update of the stats of connected peers although the info it provides isn't always 100% reliable (at least not in my experience).

I find the best way is to check if it's working is by running your wallet, making sure that no nodes are available in yourcoin.config file. If the wallet doesn't pick up any new connections after a few seconds (but give it a minute or two to test), something isn't configured correctly.


Return 0 when on testnet and return 470000 when on mainnet, I guess, but what does in control exactly? Trying to adapt this for another coin and I don't quite understand this part.


Nodes that have blocks less than that number are
discarded by the crawler as not good candidates,
see IsGood db.h:108

Excellent answer, Yarkol. This will be added to the instructions.

Most of the important changes needed are included in the git commit history mentioned above and also in the seeder instructions but this one hasn't been mentioned. It could cause a real pain for devs if the seeder starts kicking nodes at specific blocks, so they should be made aware of this.


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: PereguineBerty on July 06, 2014, 07:28:14 PM
If you have a server running a form of *nix you can install and setup bind9. That way all you have to do is add some nodes to your zone file. No need to use bitcoin seeder.

Of course this will require manually updating your zone file to add new nodes.

Good guide otherwise.

Awesome stuff, thanks for posting this. How can one check to see if it works? Are there any stats that can be read either from the directory or by sending commands to the process?

Easy way to test is to use a site like https://www.whatsmydns.net and search the A record. If its working it should display a list of your peers/nodes or you can use 'dig' if on a *nix machine.

Thanks, esotericizm - yours is an interesting approach to seeder setup and may be an alternative for people who have difficulties with the Sipa seeder.



Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: puchisupport on January 29, 2018, 03:44:11 AM
Recently I face a similar problem and find this other useful doc in dogecoin seeder code:

Code:
./dnsseed -h dnsseed.example.com -n vps.example.com

That means your domain needs to be able to have arbitrary NS entries
for subdomains. Alternatively, if you want to use the apex domain as seed address,
you can just point this domains NS entry to the server where the seeder is running.

To help understand the NS settings, the request process works like this:
1. The client sends an A request to his DNS Server for dnsseed.example.com.
2. His DNS server goes up the DNS chain and finds which DNS server knows this address.
3. The authorative server for example.com tells us that vps.example.com is the NS server for dnsseed.example.com.
4. The A request gets send to vps.example.com.
5. dogecoin-seeder takes this request and returns a set of IPs back to the client.

So in short: Set an NS record on dnssseed.example.com pointing to whereever the
dogecoin-seeder is running. Make sure the address you put in there
(vps.example.com) points to this server. Run dogecoin-seeder with the above parameters.

If all goes right, a query to dnsseed.example.com should
report several IP addresses as A records. Note that it might take a few hours
for DNS settings to propagate over the internet.

If you want the DNS server to report SOA records, please provide an
e-mailadres (with the @ part replaced by .) using -m.


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: lpxcc on September 04, 2018, 03:24:24 AM
Can anyone tell me how to run dns seeder as service on ubuntu? I want to be sure that my dns seeder is automatically running after server reboot


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: alias420 on September 16, 2018, 01:43:43 AM
I'm a little confused as to how one customizes the seeder software itself so that it crawls a specified altcoin on a specified port.  Is there anywhere the shows what you have to customize so that the seeder is crawling the proper network?


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: dbkeys on September 16, 2018, 02:23:10 PM
Can anyone tell me how to run dns seeder as service on ubuntu? I want to be sure that my dns seeder is automatically running after server reboot

What version of Ubuntu are you running ?  

On Ubuntu 14.04 LTS & 16.04 LTS, run DNS seeder via /etc/rc.local
I ilke to start a detached screen session, (called seeder-screen) everytime on boot.

(Note: on Ubuntu 18.04 LTS, systemd has eliminated /etc/rc.local setups. In this OS, you can set up a systemd unit file in /etc/systemd/system, but it's not possible to pass parameters via the 'ExecStart' spec, so the binary should be hardcoded with your particular parameters, such as name of sub-domain served and the hosting IP address, etc.)


example:
Code:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.


### Bitmark DNS Seeder - Answers with ip-addresses in the da.bitmark.guru sub-domain    
###           which are all running know-good bitmark nodes                                                
screen -dmS seeder-screen dnsseed -h da.bitmark.guru -n 204.68.122.22 -m dbkeys@bitmark.io

You can check functioning of the seeder by attaching to the seeder-screen session.

Code:
screen -dr seeder-screen

Code:
Bitmark (MARKS) DNS Seeder
Supporting whitelisted filters: 0x1,0x5,0x9,0xd
Starting 4 DNS threads for da.bitmark.guru on 204.68.122.22 (port 53).......done
Starting seeder...done
[18-09-16 14:34:42] 36/296 available (264 tried in 1000s, 0 new, 32 active), 307 banned; 3445 DNS requests, 3332 db querie


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: dbkeys on September 16, 2018, 03:13:07 PM
I'm a little confused as to how one customizes the seeder software itself so that it crawls a specified altcoin on a specified port.  Is there anywhere the shows what you have to customize so that the seeder is crawling the proper network?

The OP, PereguineBerty's Guide (https://bitcointalk.org/index.php?topic=599623.0) is very useful, but could use some copy-editing.

Start with the latest source code, (from the original author, SIPA (Peter Wuille), as written for bitcoin)
Code:
git clone https://github.com/sipa/bitcoin-seeder.git
   and   change things specific to your coin.

You can compare what we've done for Bitmark:
https://github.com/sipa/bitcoin-seeder/compare/master...project-bitmark:master

Basically, you should customize which node versions your seeder will report as good, the required blockheight, the protocol version, the fixed seed nodes your seeder needs to get started, the "magic" bytes of pchMessageStart[] and of course, the P2P port for your coin.

PM me if you need more help.


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: CubitDev on September 25, 2018, 10:40:41 PM
Can anyone tell me how to run dns seeder as service on ubuntu? I want to be sure that my dns seeder is automatically running after server reboot

crontab is your friend  ;)

sudo crontab -e # You're starting the seeder as root

Then add the line : @reboot /<dir>/<application> [-]<parameters>

That should do it.


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: Walter_ on September 26, 2018, 08:02:39 AM
You can also make a systemd service.

nano /etc/systemd/system/seed.service

put this in, customize where needed:

[Unit]
Description=COIN dns seeder
After=network.target

[Service]
WorkingDirectory=/<LOCATION>/coin-seeder
ExecStart=/<LOCATION>/coin-seeder/dnsseed -h <HOSTNAME> -n <IP> -m email@mail.com
Restart=on-failure
RestartSec=10
User=root
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=COIN-seeder

[Install]
WantedBy=multi-user.target

save & exit
systemctl daemon-reload
systemctl enable seed
systemctl start seed


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: Kalkulus on November 20, 2018, 12:15:34 PM
I'm a little confused as to how one customizes the seeder software itself so that it crawls a specified altcoin on a specified port.  Is there anywhere the shows what you have to customize so that the seeder is crawling the proper network?

The OP, PereguineBerty's Guide (https://bitcointalk.org/index.php?topic=599623.0) is very useful, but could use some copy-editing.

Start with the latest source code, (from the original author, SIPA (Peter Wuille), as written for bitcoin)
Code:
git clone https://github.com/sipa/bitcoin-seeder.git
   and   change things specific to your coin.

You can compare what we've done for Bitmark:
https://github.com/sipa/bitcoin-seeder/compare/master...project-bitmark:master

Basically, you should customize which node versions your seeder will report as good, the required blockheight, the protocol version, the fixed seed nodes your seeder needs to get started, the "magic" bytes of pchMessageStart[] and of course, the P2P port for your coin.

PM me if you need more help.

Thats' looks very helpful, but still not able to have anything working :D
Just pm'ed you!


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: Crazyhead90 on December 14, 2018, 07:31:00 PM
Hey guys,

I've been trying to get a bitcoin-seeder working myself, but i keep getting stuck trying to set up a nameserver..

The things i have:
1. VPS where i want to run the dnsseed on (12.345.678.90)
2. Sub-domain (seed.example.com)
3. Sub-domain2 (ns0.example.com)

The steps i took are:
1. Go to the subdomain seed.example.com and go to DNS settings.
2. Select NS-record and put "ns0.example.com" in it
3. Go to sub-domain "ns0.example.com" and put a A-record with the VPS ip "12.345.678.90"

When i run "dig -t NS seed.example.com"  i get an servfail and it wont show anything:
Code:
dig -t NS seed.helix-crypto.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t NS seed.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 11513
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4096
;; QUESTION SECTION:
;seed.example.com. IN NS

;; Query time: 38 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Fri Dec 14 09:55:51 PST 2018
;; MSG SIZE  rcvd: 50

When i run "dig -t A ns0.example.com" i do get the A record forwarding to the VPS IP:
Code:
dig -t A ns0.helix-crypto.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t A ns0.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10330
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4096
;; QUESTION SECTION:
;ns0.example.com. IN A

;; ANSWER SECTION:
ns0.example.com. 5 IN A 12.345.678.90

;; Query time: 36 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Fri Dec 14 11:15:54 PST 2018
;; MSG SIZE  rcvd: 65

When i try to run the dnsseed program it wont find my any seeds either this way:
./dnsseed -h seed.example.com -n ns0.example.com -p 5353
https://i.gyazo.com/f2b52ec55e1b8d6ce3737e08feb47a5f.png

When i go back to the sub-domain seed.example.com and remove the NS record and change it with a A record directly to the VPS i get:
Code:
dig -t NS seed.example.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t NS seed.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58593
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4096
;; QUESTION SECTION:
;seed.example.com. IN NS

;; AUTHORITY SECTION:
example.com. 5 IN SOA shades19.rzone.de. hostmaster.strato-rz.de. 2018121404 86400 7200 604800 7200

;; Query time: 36 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Fri Dec 14 11:20:26 PST 2018
;; MSG SIZE  rcvd: 124

And when i run dnsseed with the following parameters it does find seeds, but it wont broadcast them to the dns:
./dnsseed -h seed.example.com -n 12.345.678.90 -p 5353
https://i.gyazo.com/04db23b1de72e8080aa45ceb15e1d2fc.png


It seems like whatever i try, i keep getting servfail when i set a NS to anything. Does anyone have any clue what i'm doing wrong and what i should change to get it working?


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: hey_connor on March 20, 2019, 11:31:27 AM
The variable "clientVersion" is compared with REQUIRE_VERSION(which is a protocol version) in the function IsGood,
Code:
if (clientVersion && clientVersion < REQUIRE_VERSION) return false;
while it is compared with 31900(which seems to be a client version v0.3.19) in the function GetBanTime.
Code:
if (clientVersion && clientVersion < 31900) { return 604800; }
What on earth should "clientVersion" be compared with? Client version or protocol version?


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: suprnurd on June 27, 2019, 04:42:58 PM
I believe clientVersion is the protocol version - I believe the seeder is only saving the "protocolversion" from the nodes it connects to and does not do anything with the "version" (i.e. from -getinfo)

If you check you'll see that clientVersion doesn't get overwritten with a different value for each if statement so it will always contain the protocol version.


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: Epssos on December 30, 2019, 12:20:17 PM
Hi,
I'm trying to setup bitcoin seeder, but i'm having problem with correct DNS setup.

Domain is registered in Goddady, and i have DNS record:

Code:
NS               @                   ns1.seederio.com          1h

VPS in Vultr, with IPv6 and reverse DNS

Code:
 xxxxxxxxxxxxxxxxxxxxxxxxxxx	ns1.seederio.com


Command to run seeder (with root priv):
Code:
./dnsseed -h seederio.com -n ns1.seederio.com -m admin@seederio.com -t 2 -d 1


But after command:
Code:
dig -t A ns1.seederio.com

I've got following message:

Code:
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.seederio.com.              IN      A

;; AUTHORITY SECTION:
seederio.com.           600     IN      SOA     ns13.domaincontrol.com. dns.jomax.net. 2019123003 28800 7200 604800 600

;; Query time: 217 msec
;; SERVER: 62.179.1.61#53(62.179.1.61)
;; WHEN: Mon Dec 30 13:15:17 CET 2019
;; MSG SIZE  rcvd: 116

For
Code:
dig -t NS ns1.seederio.com
I've got the same result. Could you help me with this problem?


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: suprnurd on January 03, 2020, 04:15:18 PM
I got it working on my end by using a subdomain so something like this:

Code:
A		ns		111.222.333.444		1h
NS seeder ns.seederio.com 1h

dnsseed -h seeder.seederio.com -n ns.seederio.com -m no-reply@seederio.com

dig seeder.seederio.com

;; ANSWER SECTION:
seeder.seederio.com. 3600 IN A 111.222.333.444
111.222.333.445
111.222.333.446




Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: Epssos on February 17, 2020, 08:54:50 PM
I got it working on my end by using a subdomain so something like this:

Code:
A		ns		111.222.333.444		1h
NS seeder ns.seederio.com 1h

dnsseed -h seeder.seederio.com -n ns.seederio.com -m no-reply@seederio.com

dig seeder.seederio.com

;; ANSWER SECTION:
seeder.seederio.com. 3600 IN A 111.222.333.444
111.222.333.445
111.222.333.446



Still no result. When i put
Code:
dig +trace @8.8.8.8 seeder.seederio.com any
I've got:
Code:
;; Connection to 2001:41d0:xxxxxxxx#53(2001:41d0:xxxxxx) for seeder.seederio.com failed: connection refused.

Seeder is working on port 53. UFW is disable


Code:
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1479/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1479/sshd
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1108/dhclient
udp6       0      0 :::53                   :::*                                10929/dnsseed
root@vps790584:~/seeder# sudo lsof -i -P -n | grep LISTEN
sshd      1479 root    3u  IPv4  14942      0t0  TCP *:22 (LISTEN)
sshd      1479 root    4u  IPv6  14951      0t0  TCP *:22 (LISTEN)


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: joe@exor on May 07, 2020, 11:53:48 PM
Hi,
I'm trying to setup bitcoin seeder, but i'm having problem with correct DNS setup.

Domain is registered in Goddady, and i have DNS record:

Code:
NS               @                   ns1.seederio.com          1h

VPS in Vultr, with IPv6 and reverse DNS

Code:
 xxxxxxxxxxxxxxxxxxxxxxxxxxx	ns1.seederio.com


Command to run seeder (with root priv):
Code:
./dnsseed -h seederio.com -n ns1.seederio.com -m admin@seederio.com -t 2 -d 1


But after command:
Code:
dig -t A ns1.seederio.com

I've got following message:

Code:
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.seederio.com.              IN      A

;; AUTHORITY SECTION:
seederio.com.           600     IN      SOA     ns13.domaincontrol.com. dns.jomax.net. 2019123003 28800 7200 604800 600

;; Query time: 217 msec
;; SERVER: 62.179.1.61#53(62.179.1.61)
;; WHEN: Mon Dec 30 13:15:17 CET 2019
;; MSG SIZE  rcvd: 116

For
Code:
dig -t NS ns1.seederio.com
I've got the same result. Could you help me with this problem?

You are missing some steps in your DNS setup.

First of all, you are required to create both an NS and "A" record, and it looks like you have only created an NS record (and even that I don't think is true because you seem to be trying to use your domains default ns1 nameserver). Next, your NS record must point to the "A" record, and your "A" record must point to the ip address of your vps. And lastly, your arguments for running the seeder app are mixed up a bit.

To correct your current setup I would do something like this:

1) Create an "A" record that points to the ip address for your vps (ex: 111.222.123.231). You can give it any name you want but for this example lets call it vps.seederio.com
2) Create a new NS record and point it to the "A" record you just created. The NS record can also be called whatever you want but for this example lets call it seeder.seederio.com
3) On your vps, setup the DNS seeder app according to the instructions (I believe you already did this step)
4) Run the following cmd on the vps to start crawling your coins network and simultaneously start listening for DNS requests:

Code:
./dnsseed -h seeder.seederio.com -n vps.seederio.com -m email.example.com

5) Wait a few minutes to allow the seeder to find the "good" nodes on your network.
6) You can test that your seeder is working by using the following cmd, but keep in mind that these values can be cached and may not always give a good result even if it is working:

Code:
nslookup seeder.seederio.com

If all is working it should return a list of "good" ip addresses that are valid seed nodes for your network. An alternative to using the nslookup cmd is to use an online service to check if your seeder is working. You can visit this page after your seeder is running to see if it is working (you should see lots of ip addresses and green checkmarks. Seeing no ip addresses and red X's means something isnt working): https://www.whatsmydns.net/#A/seeder.seederio.com (https://www.whatsmydns.net/#A/seeder.seederio.com)

7) That's it! You are done!  :)


Title: Re: A Basic Guide/Tutorial for Creating DNS Seeders
Post by: joe@exor on May 08, 2020, 12:19:42 AM
I would like to say a BIG THANK YOU to the original creator of this thread @PereguineBerty, as this has served as the main setup guide for the bitcoin-seeder for exactly 6 years to the day!

A lot has changed since then, and earlier this year I took it upon myself to improve the functionality of the seeder app and also took the time to write a complete step-by-step guide for its use.

All details, including a copy of the full guide can be found here: https://bitcointalk.org/index.php?topic=5239304.0 (https://bitcointalk.org/index.php?topic=5239304.0)