User:Elifarley/pds
Jump to navigation
Jump to search
Main > Software > Wireless mesh networking
Peer Domain System is a decentralized name resolution system which provides strong authentication and prevents name conflicts.
Introduction
One of the design goals is to make it easy to share name resolution data.
Design Goals
- Be secure, decentralized and human-meaningful to the maximum extent possible
- Be an wikipedia: Application Layer protocol able to work under IPv4 and IPv6 wikipedia: Network Layer protocols.
- prevent name conflicts
- hard to take down
- easy to use
- scalable
- integration with existing internet infrastructure (dns, browsers, bit torrent, twitter, dot p2p)
Implementation Ideas
- Create a DNS server in Python.
- See if http://www.dnspython.org/ can help.
- Looks like this question on Python DNS Server will help.
- PowerDNS using a python app as a Pipe backend
- Search Google
- PDS client home folder:
- pdz folder
- pdr folder
- PDS client searches for peer domain data on the pdz and pdr folders. If no file matching the name being looked up is found, the pds client initiates multiple searches (on bittorrent, kademlia, twitter, google, etc) and creates a pdz file for each result found.
Standard Syntax
name#scope@signer
Examples:
- 3 levels (name#scope@signer)
- openfarmtech#20110310@elifarley
- 2 levels (name#scope):
- openfarmtech#20110310
- 1 level (name):
- openfarmtech
==DNS-style syntax
Examples:
- openfarmtech.p2p
Use Cases
single record
PDR - Peer domain record - can be pasted on twitter, discussion forums, web pages, emails and so on
#pdr domain scope record-type value expiry-date signer digest
- #pdr magic string
- domain is the name to be resolved
- scope helps prevent name conflicts
- record-type can be a, aaaa, cname
- value can be an ip, standard dns name, other pds name
examples:
#pdr openfarmtech 20110311 c openfarmtech.org 0 elifarley 2afqgwk6
- expiry is optional
- signer is optional
pdz file
a .pdz file has all records of a given domain. A pds client retrieves the file using a dht like kademlia, bittorrent or other p2p apps. Users can also save such files in a specific folder called pdz, which should be shared with everyone.
name#scope@signer.pdz