See hyper-dns for similar functionality.
More info on active projects and modules at dat-ecosystem.org
dat-dns
Issue DNS lookups for Dat archives using HTTPS requests to the target host. Keeps an in-memory cache of recent lookups.
API
var datDns = require('dat-dns')()
var datDns = require('dat-dns')({
recordName:
protocolRegex: ,
hashRegex: ,
txtRegex: ,
})
var cabalDns = require('dat-dns')({
recordName: 'cabal',
hashRegex: /^[0-9a-f]{64}?$/i,
protocolRegex: /^cabal:\/\/([0-9a-f]{64})/i,
txtRegex: /^"?cabalkey=([0-9a-f]{64})"?$/i
})
datDns.resolveName('foo.com', function (err, key) { ... })
datDns.resolveName('foo.com').then(key => ...)
datDns.resolveName('foo.com', {ignoreCachedMiss: true})
datDns.resolveName('foo.com', {ignoreCache: true})
datDns.resolveName('foo.com', {noDnsOverHttps: true})
datDns.resolveName('foo.com', {noWellknownDat: true})
datDns.listCache()
datDns.flushCache()
var datDns = require('dat-dns')({
dnsHost: 'dns.google.com',
dnsPath: '/resolve'
})
var datDns = require('dat-dns')({
persistentCache: {
read: async (name, err) => {
throw err
},
write: async (name, key, ttl) => {
}
}
})
datDns.on('resolved', ({method, name, key}) => {...})
datDns.on('failed', ({method, name, err}) => {...})
datDns.on('cache-flushed', () => {...})
Spec
In detail.
Option 1 (DNS-over-HTTPS). Create a DNS TXT record witht he following schema:
datkey={key}
Option 2 (.well-known/dat). Place a file at /.well-known/dat
with the following schema:
{dat-url}
TTL={time in seconds}
TTL is optional and will default to 3600
(one hour). If set to 0
, the entry is not cached.