Skip to content


Subversion checkout URL

You can clone with
Download ZIP
P2P dns resolution service based on a DHT and ECC
C Python
Branch: master
Failed to load latest commit information.
cmake/modules Added smarter library searching modules.
dht Small cleanups
libbenc Work in progress
seccure Revert "Merge branch 'master' of"
test Added regular makefile support to tests
.gitignore Work in progress
CMakeLists.txt Added test bench, woot.
LICENSE Revitalized readme file
Makefile Added regular makefile support to tests Revert "Merge branch 'master' of"
ROADMAP More stuff for the todolist/roadmap
admin.c Revert "Merge branch 'master' of"
admin.h Revert "Merge branch 'master' of"
common.mak Added regular makefile support to tests
crypto.c Now build with -std=c99 -pedantic, woo!
crypto.h Moved crypto stuff out into separate file - hopefully this means we c…
dns.c Work in progress
dns.h Added documentation comments to dns.h and dns.c, Maybe committed agai…
ffff.c More documentation comments.
ffff.h More documentation comments.
op_get.c Revert "Merge branch 'master' of"
op_get.h DNS request kicks off dht search
ops.c Fixed warnings.
ops.h More documentation comments.
properties.c DHT now bootstraps
properties.h Fixed missing gcrypt initalization in stub.c.
rbtree.c Imported my usual rbtree library
rbtree.h More stuff for the todolist/roadmap
stub.c Revert "Merge branch 'master' of"


Here is a timeline of events which got the project started

Hello all #isp of the world. We're going to add a new competing root-server since we're tired of #ICANN. Please contact me to help.

Peter Sunde via Twitter @brokep on November 27th, 23:08

Alternative DNS now has a temporary blog.

Peter Sunde via Twitter @brokep on 30 November 2010 08:00

Build instructions

For now you need the following libraries installed:

  • tokyocabinet, lightweight and fast embedded database
  • libevent >= 2.0, event based network, http & dns library
  • libgcrypt >= 1.4.1, general purpose crypto library based on the code used in GnuPG

You can also use cmake to build the project:

make [CMAKE_OPTS=<cmake options>]

Here are some of the variables you might want to tweak:

  • CMAKE_BUILD_TYPE - Debug or Release
  • CMAKE_C_FLAGS - Additional compiler flags
  • GCRYPT_PREFIX - Installation prefix of dependencies, if non-standard

This can be passed to CMake as follows:

cmake .. -DCMAKE_BUILD_TYPE=Debug -DLIBEVENT2_PREFIX=/opt/libevent2/


Usage: dnsp2p <options ...>

 -D <addr:port>    Listen address & port for DNS resolver (UDP)
 -A <addr:port>    Listen address & port for admin HTTP port (TCP)
 -P <addr:port>    Listen address & port for P2P connectivity (TCP+UDP)
 -s <file>         DB file for node state storage
 -p <file>         DB file for persistent publish storage
 -b <file>         Peer file containing bootstrap nodes 
 -h                Show this help

Give me more

More information at the wiki

Something went wrong with that request. Please try again.