As you correctly identified, there are two types of seed nodes, i.e. DNS seeds and seed nodes. DNS seeds are stored in chainparams.cpp. As of today (April 2017) the following nodes are listed in this file.
No, the DNS seeds are not running a Bitcoin client. The DNS seed nodes only give you a list of IP addresses that are running (or were recently running) a Bitcoin client. In the source code you can see that the DNS seed nodes are contacted only to get a list of addresses.
This is 'service bit filtering.'
You can run nslookup seed.bitcoin.sipa.be, and get a list of bitcoin nodes.
You can also run nslookup x1.seed.bitcoin.sipa.be, and get a list of nodes with NODE_NETWORK set.
(source 1. source 2.)
Bitcoin addresses aren't meant to be reused as this significantly reduces privacy. This was known to Nakamoto before the initial release of Bitcoin (see section 10 of his Bitcoin paper) and his original software was specifically designed not to reuse addresses. That means any mechanism that turns easily-understandable string X into address Y should only be ...
Couple of points covering what it is and how it works:
The description might be out of date. You'd need to follow the code to see how seeding is done. E.g. IRC seeding is not used any more (but that is noted).
Those addresses are DNS seeds. They run a DNS name server which is usually used to translate website names (like www.google.com) to IP addresses (...
Yes, all "seed nodes" refer to bitcoin clients known (or suspected) to be more or less permanently available. The DNS seed nodes are those reached via DNS lookup; the others via their IP address. A more thorough answer (including other initial "bootstrapping" connection methods than these hardcoded seeds) has been given to another question.
I think this works great if you want to confirm a shipping address in order to make sure the person who paid is aware of where the shipment goes (if you want to accept the fact that everyone in the network can see your shipping address).
You can embed an shipping address into the blockchain using OP_RETURN or something similar, but a much simpler way is to ...
The DNS seed addresses are hardcoded into Bitcoin Core (or other clients). You would need to convince the Bitcoin Core developers to add your seed node to the hardcoded list.
You can find here a list of the requirements you'd be expected to fulfill.
What you are saying is correct.
I'll quickly elaborate on why these hardcoded dns seeds are required. The attack you mention is called "peer list poisoning", a strategy that can be used to segregate someone from the network. There are two main types of peer list poisoning:
Dishonest nodes: the attacker poisons your peer list with real nodes, but malicious ...
Asking this question on Super User might have resulted in a quicker and more response as this is strictly speaking not limited to Bitcoin.
Sipa's bitcoin-seeder allows you to run the DNS node on a port other than 53, so that you could set up a DNS seed for each of the networks you want to support. In order to receive incoming queries and respond to them you'...
It's important to realize that a domain name can represent either a host machine OR a sub-domain. Name-serving a sub-domain is done by delegating the job to name servers for that sub-domain. This is done by specifying name servers for sub-domain in the parent domain's zone file.
I'm not familiar with how to delegate sub-domains at GoDaddy, but I bet your ...
Those hosts are DNSseeds.
When your node starts if it find itself unable to successfully connect to the network within 11 seconds it will query those DNS names which are run by technical people in the Bitcoin community, and get back a lists of recently working nodes.
The use of DNS improves your privacy somewhat since DNS caching can prevent the operator's ...
In order for a bitcoin node to start connections with other nodes, it first needs a seed node. A seed node can be any node (listening) connected to the bitcoin network. Once the node has connected to the initial seed node, it can then retrieve information about other nodes in the network and start connections with those ones as well.
The names you are ...
Because domain names cost money and Satoshi Nakamoto wanted you to be able to lend your friend 0.00001 BTC without him have to pay a corporation an annual fee.
Because that would raise all sorts of security concerns (See DNS spoofing etc)
Because addresses are cryptographically derived from private keys and the whole Bitcoin system really rather depends on ...
"Bitcoin DNS" is a bit of a misnomer.
It appears that hostnames such as dnsseed.bluematt.me are not actual DNS servers - you cannot communicate with them using DNS protocols. However they are valid domain names in the normal public Internet DNS system and have multiple "A" records associated with them. You can therefore query the DNS seed hostnames in the ...
I realize this question is a couple years old, but a proper tutorial has never been written until now. The tutorial is somewhat large, so I won't re-post it here, but I wrote a step-by-step guide for setting up a DNS seeder that you can find permanently hosted here: https://github.com/team-exor/generic-seeder/blob/master/SETUP.md.
The instructions are ...
Generally there's some discussion about attacks against the bootstrapping of Bitcoin Core, but there's not a whole lot in terms of being able to defend against it. Fortunately the DNS seeds are only really used on the first launch of the software, the rumoring of peers within the network is used for all subsequent connections.
There's not a whole lot that ...
The problem stems from the way Ubuntu 18 handles DNS resolution.
My clue was comparing the output of netstat -an | grep "LISTEN " on a machine with a working dnsseed vs the Ubuntu 18 machine with a non-responding dnsseed
The Ubuntu 18 machine showed
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
(which the other did not). ...
DNS Seeders are not regular coin nodes but rather servers running a customized DNS binary. They do crawl a coin's P2P network and keep a list of currently live nodes to give as an answer when queried about a domain name.
This is great, because instead of a DNS server with a list of fixed IP addresses (where people promised to maintain nodes at), this ...
Each normal node should connect to the seeder, this connection is detected by seeder service, that will test the node and add it to the list if some basic verification pass.
Exist other additional features, like for example fetch node list from main know seeder DNS into new seeders services.
Bitcoin Core chooses peers in the P2P network in a few ways:
it tries to connect to peers it already knows about, or
it connects to peers it learns about by querying volunteer-run DNS services, or
it connects to one of a number of hardcoded seeds
Once connected to the P2P network, peers rumor possible other nodes they know about, and the node builds a ...
One idea that I came up with is to have every node in the network expose a "sign" endpoint. Something like:
Using this data, one can verify that the owner of the DNS acme.com has the ...
Is there any way that I can set this up on one VPS with Root access?
For the DNS seeder to properly listen and respond to incoming DNS queries, it absolutely must be listening on the standard DNS port # which is 53. You can normally only have one port open per computer/ip, so running two DNS servers on the same VPS is either very difficult or impossible.
No DNSSec is not needed with Namecoin. The mapping from name to IP cannot be forged.
However, DNSSec requires changes to resolver libraries so the domains are actually cryptographically verified.
Namecoin, to be secure, requires similar changes to resolver libraries because nothing in the current resolver libraries actually checks the integrity of the ...