• Stars
    star
    408
  • Rank 105,946 (Top 3 %)
  • Language
    C
  • License
    MIT License
  • Created over 11 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

P2P DNS with content key, crypto key and PKI support. DynDNS alternative.

KadNode

KadNode finds the IP address of other instances on the Internet or local network. It is used like DNS, but is based on the decentralized BitTorrent network.

KadNode intercepts .p2p domain queries on the systems level and resolves them using a decentralized Kademlia DHT network. Additionally, TLS authentication can be used to make sure the correct IP address was found. If successful, the IP address is passed to the application making the request.

Features:

  • Support for two kinds of domains:
    1. public key domains as <public-key>.p2p
      • No need to exchange any further keys/certificates
      • Uses secp256r1 ECC key pairs
    2. 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
  • 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, AAAA, and SRV requests
  • Packages for ArchLinux, Debian, FreeBSD, MacOSX, OpenWrt, Windows
  • Peer file import/export on startup/shutdown and every 24h
  • Uses sha256 hash method

Documentation

Installation

You can download the latest package from releases page

OpenWrt

From official package repository: opkg install kadnode

Debian/Ubuntu

From PPA repository:

sudo add-apt-repository ppa:stokito/kadnode
sudo apt update
sudo apt install kadnode

Or install a downloaded package with dpkg -i kadnode_*.deb

FreeBSD

From repository: pkg install kadnode

Or install a downloaded package with pkg install kadnode-*.txz

ArchLinux

install a downloaded package with: pacman -U kadnode-*.pkg.tar.xz

License

MIT/X11

Authors

More Repositories

1

zerotier-openwrt

A OpenWrt package for ZeroTier One - Pull requests are welcome!
Shell
675
star
2

openwrt-examples

Examples for creating OpenWrt programs&packages.
Makefile
192
star
3

meshnet-lab

Emulate huge mobile ad-hoc mesh networks using Linux network namespaces.
Python
147
star
4

docker-openwrt-build-env

A Docker container to build OpenWrt images
Dockerfile
139
star
5

SimpleDNS

A very simple and small DNS Server to help understanding the protocol basics.
C
135
star
6

trigger

Android app to lock/unlock/ring doors. Supports generic HTTPS/SSH/Bluetooth/MQTT and Nuki Smartlock.
Kotlin
133
star
7

UDP-hole-punching-examples

A small collection of examples for UDP hole punching.
C
104
star
8

chaos-sticker-collection

A collection of chaos event / nerd culture related stickers.
HTML
96
star
9

MeshNetSimulator

A simulator for sketching and testing mesh network routing strategies
Rust
78
star
10

netlink-examples

Linux kernel Netlink examples inspired by "Why and How to Use Netlink Socket"
C
59
star
11

openwrt-firmware-selector

OpenWrt firmware selector. With custom image builder support.
JavaScript
39
star
12

device-observatory

Discover what your phone does on the Internet.
C
31
star
13

SimpleOctree

A simple and very fast Octree Implementation that supports Nearest Neigbour Search
C++
28
star
14

libsodium-example

A simple example on how to use the libsodium crypto library
C
20
star
15

testmesh

A collection of mesh routing protocols.
C
17
star
16

MeshGraphViewer

Visualize mesh graphs as forcegraph and on OpenStreetMap
JavaScript
16
star
17

dhtd

Utilize the BitTorrent network for hash identifier storage and lookup
C
15
star
18

p2p-gui

A remote web interface for MLdonkey, aMule, rTorrent, Transmission and giFT.
D
14
star
19

mtdRW

A small Linux kernel module that makes all MTD partitions writeable at runtime.
C
12
star
20

mbedtls_ecp_compression

Elliptic Curve Point compression/decompression for mbedtls
C
11
star
21

dat-c

A hobby implementation of the dat protocol in C
C
9
star
22

libsodium-openwrt

libsodium package for OpenWrt
Makefile
6
star
23

web-torrent

Experimental web browser with P2P capabilities
Python
4
star
24

guest-counter

A shell script to count active devices on the local network.
Shell
3
star
25

monty-hall-problem

Monty Hall Problem in Python
Python
2
star
26

mwarning.de

My Website :-)
JavaScript
1
star
27

plain-prpl

A simplistic protocol plugin for Pidgin / libpurple
C
1
star
28

titanion

Titanion is a classic 2.5D shooter game.
Rust
1
star
29

PyQt4-Examples

Some Qt4 examples translated to PyQt4/Python
Python
1
star
30

shell_copy_progress

A simple wrapper around the cp command to show the progress.
Shell
1
star
31

openwrt-autoconnect

A small openwrt script/package to connect to an SSID from a configured list
Shell
1
star
32

Hyperbolic-Graph-Generator

A Rust port of https://github.com/named-data/Hyperbolic-Graph-Generator
Rust
1
star