Changes between Initial Version and Version 1 of p6p


Ignore:
Timestamp:
03/15/09 03:26:10 (18 months ago)
Author:
https://launchpad.net/~ccx
Comment:

p6p wiki page

Legend:

Unmodified
Added
Removed
Modified
  • p6p

    v1 v1  
     1{{{ 
     2#!wiki-template 
     3ProjectTemplate 
     4name: p6p 
     5version: 0.0.1-!r1 
     6intro: Decentralized public virtual network designed for traversing NAT. 
     7downloads: [https://launchpad.net/p6p/+download launchpad] 
     8source: [https://code.launchpad.net/~ccx/p6p/main launchpad] 
     9list:  * Launchpad project: [https://launchpad.net/p6p] 
     10 * Freshmeat page: [http://freshmeat.net/projects/p6p] 
     11 * Readme: [http://wpr.cz/ccx/p6p/] 
     12}}} 
     13 
     14Please put all bugreports and questions into launchpad if possible. 
     15 
     16=== Description === 
     17P6P is decentralized public virtual network designed for traversing NAT. It's useful mainly for peer-to-peer applications that doesn't implement NAT-traversal themselves. It uses unrouted segment of IPv6 (Unique-local), so it doesn't collide with other networks. It does not implement any additional security. 
     18 
     19P6P is virtual public network. That means that it's supposed to provide publicly accessible addresses for computers that would be otherwise unreachable. It works transparently for any application that supports IPv6. 
     20 
     21Unlike IPv6 tunnel broker services you don't have to register to use it, it's completely anonymous. Also no data is transmitted via supernode, direct connection is always attempted using UDP hole punching. Supernodes are used solely to negotiate connection. 
     22 
     23=== Implementation === 
     24 
     25Currently there is state-of-art implementation for Unix/Linux using Python. There is planned portable (unix, mac, windows) implementation in C++ when the protocol stabilizes and features are decided on. 
     26 
     27Current server (supernode) implementation requires: 
     28 
     29 * python 2.5 or higher 
     30 * twisted 
     31 
     32and client: 
     33 
     34 * python 2.5 or higher 
     35 * twisted 
     36 * eunuchs 
     37 * iproute2 
     38 
     39=== Usage === 
     40 1. Install requirements 
     41 1. Download source archive and unpack 
     42 1. Change to created directory 
     43 1. Find supernode or run it yourself on publicly accessible server. One might be running on webprojekty.cz:9005 for testing purposes. Note that when creating your own supernode you should generate your own unique-local prefix as specified in RFC 4193. Shell script for this purpose is supplied in archive. 
     44 1. Run {{{python p6p_client.py -v <supernode> [<port>]}}} as root. Full list of command options may be obtained by running: {{{python p6p_client.py -h}}} 
     45 
     46You should obtain IPv6 address. You now may connect to other users of the supernode. To connect to other users you either need to know their assigned IP or use protocol that detects IPv6 addresses itself. One of such services is bittorrent tracker on http://thepiratebay.org which now supports IPv6. Also make sure your client supports IPv6. Some applications probably won't detect the new IPv6 address automatically, so you'll need to specify it by hand.