]> git.bitcoin.ninja Git - headersdns/commitdiff
Describe new v2 format master
authorMatt Corallo <git@bluematt.me>
Sat, 25 Nov 2023 19:02:47 +0000 (19:02 +0000)
committerMatt Corallo <git@bluematt.me>
Sat, 25 Nov 2023 19:02:47 +0000 (19:02 +0000)
index.html

index dfebe82e61c46bd0754a02780559fa9e2a355c5d..9e23822e1a47f18d2236ada380536d475bff6750 100644 (file)
                        bitcoinheaders.net currently supports fetching of either full Bitcoin headers or neutrino filter headers, both with a similar format. To ensure reliable access in the face of strict DNS filters, the data is encoded in IPv6 addresses in AAAA records and DNSSec signed to prevent some basic attacks.
                </p>
                <p>
                        bitcoinheaders.net currently supports fetching of either full Bitcoin headers or neutrino filter headers, both with a similar format. To ensure reliable access in the face of strict DNS filters, the data is encoded in IPv6 addresses in AAAA records and DNSSec signed to prevent some basic attacks.
                </p>
                <p>
-                       Headers names are broken into sub-zones of 10,000 records, so queries should take the form of height.(height / 10000).bitcoinheaders.net (or, for basic neutrino filter headers, height.(height / 10000).basic.filter.bitcoinheaders.net).
+                       Headers names are broken into sub-zones of 10,000 records, so queries should take the form of v2.height.(height / 10000).bitcoinheaders.net (or, for basic neutrino filter headers, v2.height.(height / 10000).basic.filter.bitcoinheaders.net).
                </p>
                <p>
                </p>
                <p>
-                       All headers and filter headers are encoded with an arbitrary two byte prefix (currently "2001:"), followed by a 0-indexed order nibble (as nameservers often reorder responses). Bitcoin headers are then prefixed by a single version byte (currently version 0 - two 0 nibbles) and placed into the remaining 80 bytes of six IPv6 addresses. Filter headers are simply placed into three IPv6 addresses with a 17-nibble (8.5 byte) 0 suffix.
+                       All headers and filter headers are encoded with an arbitrary one byte prefix (which you must ignore, as it may change in the future), followed by a 0-indexed order byte (as nameservers often reorder responses). Entries are then prefixed by a single version byte (currently version 1) and placed into the remaining bytes of the IPv6 addresses.
                </p>
                <p>
                        The genesis block header is, thus, encoded as (note that the responses are usually not sorted):
                </p>
                <pre>
                </p>
                <p>
                        The genesis block header is, thus, encoded as (note that the responses are usually not sorted):
                </p>
                <pre>
-0.0.bitcoinheaders.net.        604800  IN      AAAA    2001:0:1000::
-0.0.bitcoinheaders.net.        604800  IN      AAAA    2001:1000::
-0.0.bitcoinheaders.net.        604800  IN      AAAA    2001:2000::3ba:3edf
-0.0.bitcoinheaders.net.        604800  IN      AAAA    2001:3d7a:7b12:b27a:c72c:3e67:768f:617f
-0.0.bitcoinheaders.net.        604800  IN      AAAA    2001:4c81:bc38:88a5:1323:a9fb:8aa4:b1e5
-0.0.bitcoinheaders.net.        604800  IN      AAAA    2001:5e4a:29ab:5f49:ffff:1d:1dac:2b7c</pre>
+v2.0.0.bitcoinheaders.net. 604800 IN   AAAA    2603:7b12:b27a:c72c:3e67:768f:617f:c81b
+v2.0.0.bitcoinheaders.net. 604800 IN   AAAA    2600:101::
+v2.0.0.bitcoinheaders.net. 604800 IN   AAAA    2601::
+v2.0.0.bitcoinheaders.net. 604800 IN   AAAA    2602::3b:a3ed:fd7a
+v2.0.0.bitcoinheaders.net. 604800 IN   AAAA    2605:ab5f:49ff:ff00:1d1d:ac2b:7c00:0
+v2.0.0.bitcoinheaders.net. 604800 IN   AAAA    2604:c388:8a51:323a:9fb8:aa4b:1e5e:4a29</pre>
                <p>which decodes to</p>
                <p class="hex">
                        0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c
                </p>
                <p>and the 10,000th filter header encoded as:</p>
                <pre>
                <p>which decodes to</p>
                <p class="hex">
                        0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c
                </p>
                <p>and the 10,000th filter header encoded as:</p>
                <pre>
-10000.1.basic.filter.bitcoinheaders.net. 604800 IN AAAA 2001:65e:9154:fba5:5883:1fa0:4738:3262
-10000.1.basic.filter.bitcoinheaders.net. 604800 IN AAAA 2001:1dee:3a70:76df:a4aa:5ee9:5285:5cdf
-10000.1.basic.filter.bitcoinheaders.net. 604800 IN AAAA 2001:225c:f460:3730::</pre>
+v2.10000.1.basic.filter.bitcoinheaders.net. 604800 IN AAAA 2601:2dee:3a70:76df:a4aa:5ee9:5285:5cdf
+v2.10000.1.basic.filter.bitcoinheaders.net. 604800 IN AAAA 2600:165:e915:4fba:5588:31fa:473:8326
+v2.10000.1.basic.filter.bitcoinheaders.net. 604800 IN AAAA 2602:25cf:4603:7300::</pre>
                <p>which decodes to</p>
                <p class="hex">
                        65e9154fba558831fa047383262dee3a7076dfa4aa5ee952855cdf25cf460373
                <p>which decodes to</p>
                <p class="hex">
                        65e9154fba558831fa047383262dee3a7076dfa4aa5ee952855cdf25cf460373