-
Notifications
You must be signed in to change notification settings - Fork 38.7k
net: Hardcoded seeds update for 0.21 #20237
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Stats: ``` IPv4 IPv6 Onion Pass 426728 59523 7900 Initial 426728 59523 7900 Skip entries with invalid address 426728 59523 7900 After removing duplicates 426727 59523 7900 Skip entries from suspicious hosts 123226 51785 7787 Enforce minimal number of blocks 121710 51322 7586 Require service bit 1 4706 1427 3749 Require minimum uptime 4124 1098 3681 Require a known and recent user agent 4033 1075 3681 Filter out hosts with multiple bitcoin ports 512 140 512 Look up ASNs and limit results per ASN and per net ```
There are many nodes that have there onion v3 address linked to 8333 created in /etc/tor/torrc but probably won't tell and stay onlynet onion or don't enable service calls port 9051 and cant use the additional v3 support from 0.21 by auto creating onions anyway. But since almost all old nodes versions can do connect and addnode with long v3 address since years, if thre Tor software is above Tor 0.3.2.2-alpha (October 2017 ), it might be useful to have a short list core approved list they could add manual to there old nodes, And btw. why not add the Tor v3 addr from the known seeders ( if they have Tor nodes ) in the vseeds list, i.e. when the user selects onlynet=onion to make sure we don't seed by ADDR messages via Tor exit nodes and stay at least for virgin bootstrap in Tor, i somewhere posted a patch for diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index ffd2076c9..4903e3bda 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -10,6 +10,7 @@
#include <tinyformat.h>
#include <util/system.h>
#include <util/strencodings.h>
+#include <util/system.h>
#include <versionbitsinfo.h>
#include <assert.h>
@@ -113,6 +114,7 @@ public:
// This is fine at runtime as we'll fall back to using them as an addrfetch if they don't support the
// service bits we want, but we should get them updated to support all service bits wanted by any
// release ASAP to avoid it where possible.
+ if (gArgs.GetArg("-onlynet", "") != "onion") {
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
@@ -122,6 +124,11 @@ public:
vSeeds.emplace_back("seed.bitcoin.sprovoost.nl"); // Sjors Provoost
vSeeds.emplace_back("dnsseed.emzy.de"); // Stephan Oeste
vSeeds.emplace_back("seed.bitcoin.wiz.biz"); // Jason Maurice
+ };
+
+ if (gArgs.GetArg("-onlynet", "") == "onion") {
+ vSeeds.emplace_back("seedersv3onionaddressasdasdasdasdad.onion:8333"); // Add seeder onion v3 address
+ // since we can not seed over Tor UDP DNS and call anyway the first node from the return + // the exit socket the exit Tor node give us for the FQDN of normal seeders, so why not call
+ //if onlynet=onion the Tor seeder node and gossip from ADDRv2 or ADDR,
+ }
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,0);
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,5);
|
|
concept ptACK Tyi, those two on the list i was unable to reach. |
|
@Saibato Thanks for testing! Yes, I'd assume a part of them will be unreachable at any single time, I'm surprised the other 510 were connectable. |
Me 2 , i did run the test twice, at first thought also impossible, but that was the case with a ten second delay between next address connect in the list. Btw. a big improvement compared to the 3 working fixed that we only have now in 0.20 |
|
The changes look fine. I'm now running the instructions in Ran makeseeds.py a second time to see the variance. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 6866259
- reviewed the changes locally
- ran
python3 generate-seeds.py . > ../../src/chainparamsseeds.hfrom/contrib/seedson top of this patch and it made no change - ran all the steps in
/contrib/seeds/README.md, which created this diff: jonatack@084717e - returned to the original patchset and repeated the generate seeds step again to be sure
|
I confirm that running Re-downloading the seeds and running Maybe as a future improvement we may devise some deterministic way to generate the seeds, so that everybody can generate |
@jonatack @vasild Thanks for checking !
Yes, maybe. The topic of improvements to the seed generation comes up every time just before the release and then dies down immediately after it. I'm happy for someone to put effort in this though. See also #17020 which ahs quite the TODO list alrady 😄 |
961f148 doc: update contrib/seeds/README dnspython installation info (Jon Atack) dd7b5f4 script: fix deprecation warning in makeseeds.py (Jon Atack) Pull request description: Seen while reviewing #20237. 1. Fix a deprecation warning in `contrib/seeds/makeseeds.py` ``` makeseeds.py:139: DeprecationWarning: please use dns.resolver.resolve() instead asn = int([x.to_text() for x in dns.resolver.query('.'.join( ``` - Per https://dnspython.readthedocs.io/en/latest/whatsnew.html, `dns.resolver.query()` was deprecated in `dnspython` version 2.0.0. - See https://dnspython.readthedocs.io/en/latest/resolver-class.html for more info on the resolver class. 2. Update the `dnspython` dependency installation instructions in `contrib/seeds/README` - The markdown rendering can be seen here: https://github.com/jonatack/bitcoin/tree/contrib-seeds-fixups/contrib/seeds ACKs for top commit: laanwj: code review ACK 961f148 Tree-SHA512: f9c4f318a1a0d35b8de147d24b72c534a1f58eece31e7cfa00b4149a63b6a618d8ca0312f52fd8056f3c645cf2ee68574ca02319fddffdad919a70cd33395d33
961f148 doc: update contrib/seeds/README dnspython installation info (Jon Atack) dd7b5f4 script: fix deprecation warning in makeseeds.py (Jon Atack) Pull request description: Seen while reviewing bitcoin#20237. 1. Fix a deprecation warning in `contrib/seeds/makeseeds.py` ``` makeseeds.py:139: DeprecationWarning: please use dns.resolver.resolve() instead asn = int([x.to_text() for x in dns.resolver.query('.'.join( ``` - Per https://dnspython.readthedocs.io/en/latest/whatsnew.html, `dns.resolver.query()` was deprecated in `dnspython` version 2.0.0. - See https://dnspython.readthedocs.io/en/latest/resolver-class.html for more info on the resolver class. 2. Update the `dnspython` dependency installation instructions in `contrib/seeds/README` - The markdown rendering can be seen here: https://github.com/jonatack/bitcoin/tree/contrib-seeds-fixups/contrib/seeds ACKs for top commit: laanwj: code review ACK 961f148 Tree-SHA512: f9c4f318a1a0d35b8de147d24b72c534a1f58eece31e7cfa00b4149a63b6a618d8ca0312f52fd8056f3c645cf2ee68574ca02319fddffdad919a70cd33395d33
Stats:
I've credited RandyMcMillan for the first commit because of #20190.
There are at least enough onions this time! Number of IPv6 nodes that pass all the requirements seems similar to last time in #18506.
For the next major release we'll want TORv3 hardcoded peers as well. This makes no sense now as there are hardly any. But it'd make sense to think about how to collect them because they cannot come from the DNS seeds.
Reviewing