<p>This is 'service bit filtering.'</p>

<p>You can run <code>nslookup seed.bitcoin.sipa.be</code>, and get a list of bitcoin nodes.</p>

<p>You can also run <code>nslookup x1.seed.bitcoin.sipa.be</code>, and get a list of nodes with NODE_NETWORK set.</p>

<p>(<a href="https://bitcointalk.org/index.php?topic=1888573.msg18791989#msg18791989" rel="noreferrer">source 1</a>. <a href="https://github.com/bitcoin/bitcoin/blob/9d31ed2e69fd5cde5fbc5208bd04276a58afd132/src/net.cpp#L1578" rel="noreferrer">source 2</a>.)</p>

CC BY-SA 3.0
2017-10-07T06:50:10.067Z
So the number following the X is like a bitmask for the service bits? Makes sense, thanks :)
meshcollider
CC BY-SA 3.0
2017-10-07T09:57:51.610Z
Exactly, it sets what bits are required in the result.
Pieter Wuille
CC BY-SA 3.0
2017-10-07T03:55:48.150Z
2017-10-07T03:55:48.150Z
Nick ODell
<p>I've seen various 'options' that the different DNS seeders support, for example x1, x5, x9, and xd:</p>

<pre><code>vSeeds.emplace_back("seed.bitcoin.sipa.be", true); // Pieter Wuille, only supports x1, x5, x9, and xd
vSeeds.emplace_back("dnsseed.bluematt.me", true); // Matt Corallo, only supports x9
vSeeds.emplace_back("dnsseed.bitcoin.dashjr.org", false); // Luke Dashjr
vSeeds.emplace_back("seed.bitcoinstats.com", true); // Christian Decker, supports x1 - xf
vSeeds.emplace_back("seed.bitcoin.jonasschnelli.ch", true); // Jonas Schnelli, only supports x1, x5, x9, and xd
vSeeds.emplace_back("seed.btc.petertodd.org", true); // Peter Todd, only supports x1, x5, x9, and xd
</code></pre>

<p>(from <a href="https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp" rel="noreferrer">chainparams.cpp</a>)</p>

<p>But I can't find anything which actually explains what these options are. What do these options do and why do only some seeders offer some of the options?</p>

<dns>
DNS seeder 'options'
meshcollider
# DNS seeder 'options'

(Asked by: username_0 on 2017-10-07)

I've seen various 'options' that the different DNS seeders support, for example x1, x5, x9, and xd:

```
vSeeds.emplace_back("seed.bitcoin.sipa.be", true); // username_2 username_2, only supports x1, x5, x9, and xd
vSeeds.emplace_back("dnsseed.bluematt.me", true); // Matt Corallo, only supports x9
vSeeds.emplace_back("dnsseed.bitcoin.dashjr.org", false); // Luke Dashjr
vSeeds.emplace_back("seed.bitcoinstats.com", true); // Christian Decker, supports x1 - xf
vSeeds.emplace_back("seed.bitcoin.jonasschnelli.ch", true); // Jonas Schnelli, only supports x1, x5, x9, and xd
vSeeds.emplace_back("seed.btc.petertodd.org", true); // Peter Todd, only supports x1, x5, x9, and xd

```

(from [chainparams.cpp](https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp))

But I can't find anything which actually explains what these options are. What do these options do and why do only some seeders offer some of the options?

**Tags:** dns


---

## 1 answers

### Answer by username_1 on 2017-10-07. Score: 6 | Accepted answer

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](https://bitcointalk.org/index.php?topic=1888573.msg18791989#msg18791989). [source 2](https://github.com/bitcoin/bitcoin/blob/9d31ed2e69fd5cde5fbc5208bd04276a58afd132/src/net.cpp#L1578).)

> **Comments:**
> **username_0**: So the number following the X is like a bitmask for the service bits? Makes sense, thanks :)  
> **username_2**: Exactly, it sets what bits are required in the result.  

---

