Repository navigation
chainparams: add the Dog of Bitcoin Foundation DNS seed for DOG Mode nodes - #7
dogofbitcoin wants to merge 1 commit into
Conversation
|
Checked what is checkable here rather than reasoning about it, since a What's changed since the PR was opened. The seed was empty ("returns 0 addresses") when this went up. It is not anymore: Worth naming what this does and doesn't establish. It confirms the mechanism works end to end: a node advertises the bit, the seed picks it up, a query gets it back. It does not yet test fair selection (expectation 1 of Core's What still verifies independently, unchanged from before:
The four asks stand, and the first node online makes them slightly more worth settling now rather than later:
On timing. No longer purely hypothetical — there's a real node and a real answer now, which is progress worth acknowledging. It's still one node, so I'd still call this pre-decision rather than urgent. And the earlier structural point stands regardless of node count: a single dog-specific seed means one operator sees the bootstrap query of very nearly every node that ever joins this subnetwork. Worth a release-note line either way, win or lose on timing — you made that case yourself on #3 about consequences an operator should not learn about as a footnote. |
|
Thank you for checking what is checkable; the numbers you read are the ones we read. Answers to the four, in order, and one measurement you may want.
On the structural point: agreed, and it will be in our own text rather than argued away. One dog-specific seed is one operator seeing the first query of nearly every node that joins the subnetwork. The mitigations are the published build above so a second operator can plant one in an afternoon, and Core's own policy on logging, which we hold to. A second seed run by someone who is not us is the fix, and we will say so wherever we say the first one exists. One measurement, because it bears on "does a listed seed do anything": as of 2026-09-14 11:18 UTC bitnodes sees four reachable nodes advertising bit 14, and this seed can answer with exactly one of them. The other three are pruned or on a non-default port (two run the Umbrel package on 8433), and the reference seeder marks both cases not good, by design, since an A record carries no port and Core's seeds only hand out full nodes. So the seed's answer is correct and small, and the count on the page will say both numbers from now on: nodes advertising the bit that the crawler can reach, and the subset it can hand out. Edited 2026-09-15. Three things above have changed since, each with its reason in the note below: the seed and its page are on the Foundation's domain now ( |
|
Appreciate the full answer, especially the seeder commit — checked it and it's exactly the one line described, on the exact base you named. No open asks left from me. The structural point about a second independent seed is the right place to leave it; good that you'll say so in your own text rather than waiting to be asked twice. |
|
Thank you for checking the commit. One commit on this branch today carries two changes to the line, and the seeder build you checked has changed too, so here are all three with the reason for each. The name. The seed moves to the Foundation's own domain: the line lists The comment. You had it right: the neighbours in this file name the party that answers for each seed, so the comment now reads The seeder build. The commit you checked is replaced by one that carries its line plus a second: the filter prefix is read as |
0c8a8c4 to
5a4d0ae
Compare
|
Independent validation on 2026-09-18:
One scoped behavior is worth recording for a follow-up, rather than treating it as a defect in this one-line seed addition: That matches the limitation described in this PR. Using the seed directly for reserved slots would need a deliberately scoped follow-up that distinguishes this DOG-specific seed from ordinary Core-compatible DNS seeds, rather than marking all DNS responses as DOG_MODE. |
|
Thank you, @J25dunn, and sorry for the three days without an answer. Your readings match ours: You have the scope right, and it is the limit this pull request states. A fresh node records the seed's answers with The follow-up you describe is the one we would propose: a separate list for DOG-specific seeds, asked with |
5a4d0ae to
8f7921e
Compare
|
Rebased onto |
|
A mainnet reading of this line, and of the follow-up @J25dunn scoped above. Each run is a new node from an empty datadir for one hour, pruned, no port open, on a home connection that is not the seed's node. This line as it is. Six nodes on 2026-09-22, three on this head and three with #10 on top.
With the follow-up (the DOG seed in its own list, asked as
The follow-up is one commit on this head, not pushed anywhere yet. Its unit test in Would you like the follow-up as its own pull request, before a release or after one? |
One line.
dnsseed.dogofbitcoin.orgis a DNS seed for this client, operated by Dog of Bitcoin Foundation Inc: sipa's reference seeder at a pinned commit, plus one published commit of two lines. Every answer, whatever filter is asked, carries only nodes advertisingNODE_DOG_MODE(bit 14), and the filter prefix is read in either letter case, since public resolvers such as Google's randomize it. Listed here, a fresh DOG Mode node gets dog nodes into its address book on its first start, alongside the answers of Core's seeds, with no other change to the client. The build is public at https://github.com/dogofbitcoin/bitcoin-seeder, one commit on the pinned base.Operated under Core's
doc/dnsseed-policy.md(fair selection, TTL 3600, minimal logging, published contact). The operating statement, the contact, and a live count of nodes advertising the bit are at https://seed.dogofbitcoin.org.One dog-specific seed is one operator seeing the first query of nearly every node that joins this network. The fix is a second seed run by someone who is not us: the seeder build is public so another operator can plant one in an afternoon, and the client should list several. If one appears, we will say so here and support listing it beside this line.
State on 2026-09-21:
dig +short x4009.dnsseed.dogofbitcoin.orgreturns185.100.87.52through Cloudflare's and Google's public resolvers alike, the one full DOG Mode node on port 8333 that the crawler can reach; the crawler sees 2 reachable nodes advertising the bit in all. @J25dunn checked the same answer independently through four public resolvers on 2026-09-18, below. The page shows both numbers, since an A record carries no port and the reference seeder hands out full nodes on the default port only.One thing worth knowing, offered and not asked:
ThreadDNSAddressSeedrecords seeded addresses withSeedsServiceFlags()only, so addresses from this seed become candidates for the reserved DOG connections after a first handshake rather than immediately, which @J25dunn also reads below. A small change that asks dog seeds withNODE_DOG_MODEin the required bits, and records the answers with it, would make the reserved slots fill straight from the seed. Happy to draft and measure it if useful; equally happy to leave it.