KadNode intercepts .p2p DNS queries on the system level (e.g from the browser) and resolves them via the mainline BitTorrent DHT network to IP addresses.
For IP address authentication,TLS is supported as well as public key domain names.
- Support for two kinds of domains:
- public key domains as
<public-key>.p2p- No need to exchange any further keys/certificates
- Uses
secp256r1ECC key pairs
- named domains like
yourdomain.com.p2p- Needs pre-shared certificates (self-signed root certificates or e.g.
Let's Encrypt) - Uses TLS session handshake for authentication
- Needs pre-shared certificates (self-signed root certificates or e.g.
- public key domains as
- IPv4/IPv6 support
- UPnP/NAT-PMP support
- Local peer discovery
- Small size / ~100KB depending on features / ~50KB compressed
- Command line control program
- NSS support through
/etc/nsswitch.conf - DNS server interface and DNS proxy
- Handles
A(IPv4),AAAA(IPv6), andSRVrequests
- Handles
- Packages for ArchLinux, Debian, FreeBSD, MacOSX, OpenWrt, Windows
- Peer file import/export on startup/shutdown and every 24h
- Uses
sha256hash method
- Manual Page
- Implementation Details
- Usage examples
- FAQ
- Wiki
- Video: KadNode decentralized DNS system - 34. Chaos Communication Congress
You can download the latest package from releases page.
From official package repository:
apk install kadnode
From PPA repository:
sudo add-apt-repository ppa:stokito/kadnode
sudo apt update
sudo apt install kadnodeOr install a downloaded package with dpkg -i kadnode_*.deb
From repository: pkg install kadnode
Or install a downloaded package with pkg install kadnode-*.txz
From repository: yay -S kadnode
Or install a downloaded package with pacman -U kadnode-*.pkg.tar.xz
Install libraries and their headers. On Debian/Ubuntu use:
sudo apt install libmbedtls-dev, libnatpmp-dev, libminiupnpc-devCheckout code and compile KadNode:
git clone https://github.com/mwarning/KadNode.git
cd KadNode
# basic features and debug mode
FEATURES="bob tls cmd dns debug" make
# all features
FEATURES="bob tls cmd lpd dns nss natpmp upnp debug" makeFinally, start KadNode:
./build/kadnode --peer bttracker.debian.org:6881 --peer router.bittorrent.com:6881 --peer router.utorrent.com:6881 --peerfile peers.txtThis also add some popular static peers to bootstrap into the global DHT network. Good peers will written to peers.txt.
KadNode will also look for local peers, but those are often absent.
To install use:
sudo make install install_nssTo uninstall:
sudo make uninstall uninstall_nss- pkdns and Pkarr ed25519 pubkey domains on Mainline DHT.
- btlink an HTTP addressing scheme for BitTorrent.
- opendht a DHT daemon used by Ring softphone.
- DNSLink Standard a format used by IPFS for DNS TXT records to associate content and identifiers with a domain.
- Tor Onion Services
- GNUnet Name System secure and decentralized naming system
- NameCoin blockchain for DNS
MIT/X11
- KadNode: Moritz Warning (http://github.com/mwarning/KadNode)
- Kademlia DHT: Juliusz Chroboczek (https://github.com/jech/dht)