User:Elifarley/pds: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
{{Category=Wireless mesh networking}}
{{Category=Wireless mesh networking}}


'''Peer Domain System''' is '''a decentralized name resolution system which provides strong authentication and prevents name conflicts.'''
'''Peer Domain System''' is a '''decentralized name resolution system which provides strong authentication and prevents name conflicts.'''


==Introduction==
==Introduction==
Line 8: Line 8:


==Design Goals==
==Design Goals==
*strong auth
* Be [[wikipedia: Zooko's triangle|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
*prevent name conflicts
*hard to take down
*easy to use
*easy to use
*scalable
*scalable
*no single point of failure
*integration with existing internet infrastructure (dns, browsers, bit torrent, twitter, dot p2p)
*integration with existing internet infrastructure (dns, browsers)
*hard to take down


==Implementation Ideas==
==Implementation Ideas==
Line 27: Line 27:
** pdr 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.
* 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==
==Use Cases==
Line 55: Line 71:
name#scope@signer.pdz
name#scope@signer.pdz
</code>
</code>
==See Also==
* [[wikipedia: Zooko's triangle]]
*

Revision as of 02:56, 14 March 2011

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

Implementation Ideas

  • Create a DNS server in Python.
  • 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

See Also