Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Hysmagus on January 15, 2020, 05:33:45 PM



Title: What are some decentralized/better alternatives to DNS Seeds?
Post by: Hysmagus on January 15, 2020, 05:33:45 PM
I'm doing some research into DNS Seeding, and alternative options to it. My main thought process is that, even if DNS Seeders are a functional but imperfect solution for initial peer discovery, they do still but a long term burden on the few individuals that are running the dns seeds, and do have a slight centralization factor. Additionally, the fall back of chainparams seeds generated using the included python script can fall out of date quickly, and requires house-keeping/pruning of dead peers (https://github.com/bitcoin/bitcoin/commit/0218171a24cedacaa2fb0745f78968499df5d28c) . I've tried searching to see if anyone was already working on better options or improvements to the existing solutions, but I haven't had much luck.




For reference:
DNS Seeding is visible in the code here (https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp)  and defined here (https://bitcoin.org/en/glossary/dns-seed) with the codebase for the seeders (by Sipa), available here (https://github.com/sipa/bitcoin-seeder/)

 Chainparams peers that are hardcoded as a fallback to dnsseeds defined here (https://github.com/bitcoin/bitcoin/blob/master/contrib/seeds/README.md) and visible in the codebase here (https://github.com/bitcoin/bitcoin/blob/master/src/chainparamsseeds.h)


Title: Re: What are some decentralized/better alternatives to DNS Seeds?
Post by: Pmalek on January 16, 2020, 10:03:19 AM
My reply might be totally off-topic or not, I am not sure.

Recently I've been seeing posts and threads (especially in the local section I frequent) about some new project that is trying to create a new decentralized Internet. It is called Tachyon Protocol. My intention is not to shill about it in anyway.
Anyways, if you want to take a look at it, this is their ANN page > https://bitcointalk.org/index.php?topic=5194065.0


Title: Re: What are some decentralized/better alternatives to DNS Seeds?
Post by: DaveF on January 16, 2020, 12:53:45 PM
No matter how you want to talk to another machine on the internet you need to know it's IP.
At some point along the way you are going to need to know what it is.
If you are running a Windows / linux / whatever machine today unless you want to install another piece of software on top of it that connects in some new and different manner we are going to be stuck with DNS.

This has come up several times in several places on other sites I am on that have nothing to do with BTC. Always comes back to the same place DNS works so we keep it.

-Dave


Title: Re: What are some decentralized/better alternatives to DNS Seeds?
Post by: DaCryptoRaccoon on January 17, 2020, 11:33:54 AM
Some of the DNS seeds in use in bitcoin now are below :

Quote
       

        vSeeds.emplace_back("seed.bitcoin.sipa.be"); // Pieter Wuille, only supports x1, x5, x9, and xd
        vSeeds.emplace_back("dnsseed.bluematt.me"); // Matt Corallo, only supports x9
        vSeeds.emplace_back("dnsseed.bitcoin.dashjr.org"); // Luke Dashjr
        vSeeds.emplace_back("seed.bitcoinstats.com"); // Christian Decker, supports x1 - xf
        vSeeds.emplace_back("seed.bitcoin.jonasschnelli.ch"); // Jonas Schnelli, only supports x1, x5, x9, and xd
        vSeeds.emplace_back("seed.btc.petertodd.org"); // Peter Todd, only supports x1, x5, x9, and xd
        vSeeds.emplace_back("seed.bitcoin.sprovoost.nl"); // Sjors Provoost
        vSeeds.emplace_back("dnsseed.emzy.de"); // Stephan Oeste

https://github.com/bitcoin/bitcoin/blob/c20fbb7be864bb7652280d5855be89b6b04cdfd1/src/chainparams.cpp#L116

While I agree that there should probably be a more decentralized way of doing this I think it's worthy to have for new clients who need to download the chain I am not sure if you have checked the DNS seeder codebase yet so I will leave a link here for you.

https://github.com/sipa/bitcoin-seeder



Title: Re: What are some decentralized/better alternatives to DNS Seeds?
Post by: Stedsm on January 17, 2020, 09:05:32 PM
There is no perfect answer for your query, to find the IP address you need to crawl for the DNS servers that return the IP address from the host machine with full nodes in the network which has the full merkle tree, the fact is there is never a truly decentralized solution.


Title: Re: What are some decentralized/better alternatives to DNS Seeds?
Post by: Dabs on January 27, 2020, 02:00:15 PM
It used to be IRC, but that's also a little bit centralized. I'm not sure if an altchain counts there is namecoin, so at the very least a few DNS seeds can be referenced. Still semi centralized.

How does Electrum work on this? Because they rely on Electrum servers.

These seeds are only required for brand new full nodes that are syncing for the first time. Older ones usually remember their most recent list of peers and try to connect that way.


Title: Re: What are some decentralized/better alternatives to DNS Seeds?
Post by: gmaxwell on January 31, 2020, 07:26:09 PM
It used to be IRC, but that's also a little bit centralized.
You mean "massively worse":  IRC was a single system that you had to stay connected to when you were online to get returned by it. If it filtered the view you got, then that's the view you got.

The dnseeds don't require any connectivity to it, and there are a bunch, so any one can't rig your view of the network.  Your ISP's recursive resolver hides your IP from the DNSseeds and can cache requests so the seeds may not see your request at all. Plus, now adays, it only uses them if it doesn't have its own info and/or is failing to get connected.

The IRC server started tampering with the results too-- they had some weird justification for it, but that was a major factor in moving to the dnsseeds.


Title: Re: What are some decentralized/better alternatives to DNS Seeds?
Post by: Dabs on January 31, 2020, 09:52:38 PM
Hehehe, yeah, massively worse for sure. I used to chat on EFnet a couple decades ago. K-line this. G-line that. Floodnet? oh, I remember ops in some channels too, and bots. Then watch the splits. Splits were common. You'd see half the chat room population disappear for a few minutes.

I believe the biggest now is freenode, probably what the first bitcoin client used? I log in once a year or even less just to keep my #bitcoin nick updated or something.

Some malware use or used IRC as command and control servers too. Maybe that's where the first version of the wallet got the idea?