I2P

Invisible Internet Project


Changeset 151b852a187f502443b237071e2426fb5dbbc585

Show
Ignore:
Timestamp:
05/29/11 01:55:35 (2 years ago)
Author:
zzz@…
Branches:
i2p.www
Children:
13ed6f5860610a604acc837a0467c523656a1157
Parents:
276a86b0a158ef2327761388404e7b1c92bbc46f
Message:

update

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • /www.i2p2/pages/bittorrent.html

    r4016.. r151b..  
    22{% block title %}Bittorrent over I2P{% endblock %} 
    33{% block content %} 
    4 Updated February 2011, current as of router version 0.8.4 
     4Updated May 2011, current as of router version 0.8.6 
    55 
    66 
     
    1212</p> 
    1313<p> 
    14 This page covers protocol details common to all clients and trackers. 
     14This page specifies protocol details common to all clients and trackers. 
    1515Specific clients and trackers may implement other unique features or protocols. 
    1616</p> 
     
    3939</p> 
    4040<p> 
     41While all current Destinations for clients are exactly 387 bytes, a tracker should not 
     42presume that will always be so. A reasonable maximum to assume, for now, is 475 bytes. 
     43As the tracker must decode the Base64 to deliver compact responses (see below), 
     44the tracker should probably decode and reject bad Base64 when announced. 
     45</p> 
     46<p> 
    4147The default response type is non-compact. Clients may request a compact response with 
    4248the parameter compact=1. A tracker may, but is not required to, return 
    4349a compact response when requested. 
    4450</p> 
     51<p> 
     52Developers of new I2P clients 
     53are strongly encouraged to implemenent announces over their own tunnel rather than 
     54the HTTP client proxy at port 4444. Doing so is both more efficient and it allows 
     55destination enforcement by the tracker (see below). 
     56</p> 
    4557 
    4658 
     
    5769<a href="common_structures_spec.html#struct_Destination">Destination</a>, as described above. 
    5870Trackers generally append ".i2p" to the Base 64 Destination if it wasn't in the announce ip, for compatibility with older clients. 
    59 Trackers should not require an appended ".i2p". 
     71Clients should not require an appended ".i2p" in the responses. 
    6072</p> 
    6173<p> 
     
    7486<a href="common_structures_spec.html#struct_Destination">Destinations</a> 
    7587of the peers. 
     88This hash must be computed by the tracker, unless destination enforcement 
     89(see below) is used, in which case the hash delivered in the X-I2P-DestHash 
     90or X-I2P-DestB32 HTTP headers may be converted to binary and stored. 
    7691The peers key may be absent, or the peers value may be zero-length. 
    7792</p> 
     
    93108<p> 
    94109As several clients use the HTTP proxy instead of their own tunnel for announces, 
    95 destination enforcement will prevent usage by those clients. 
     110destination enforcement will prevent usage by those clients unless or until 
     111those clients are converted to announcing over their own tunnel. 
     112</p> 
     113<p> 
     114Unfortunately, as the network grows, so will the amount of maliciousness, 
     115so we expect that all trackers will eventually enforce destinations. 
     116Both tracker and client developers should anticipate it. 
    96117</p> 
    97118 
     
    113134 
    114135 
    115 <h2>Cross-Network Operation</h2> 
     136<h2>Outbound Connections</h2> 
     137<p> 
     138I2P uses 387+ byte 
     139<a href="common_structures_spec.html#struct_Destination">Destinations</a> for addresses, as explained above. 
     140</p> 
     141<p> 
     142If the client has only the hash of the destination (such as from a compact response or PEX), it must perform a lookup 
     143by encoding it with Base 32, appending ".b32.i2p", and querying the Naming Service, 
     144which will return the full Destination if available. 
     145</p> 
     146<p> 
     147If the client has a peer's full Destination it received in a non-compact response, it should use it 
     148directly in the connection setup. 
     149Do not convert a Destination back to a Base 32 hash for lookup, this is quite inefficient. 
     150</p> 
     151 
     152 
     153 
     154<h2>Cross-Network Prevention</h2> 
    116155<p> 
    117156To preserve anonymity, 
     
    123162To prevent usage by non-I2P clients via an HTTP inproxy, I2P trackers often 
    124163block accesses or announces that contain an X-Forwarded-For HTTP header. 
     164Trackers should reject standard network announcesw with IPv4 or IPv6 IPs, and not deliver them in responses. 
    125165</p> 
    126166 
     
    150190Preliminary differences from 
    151191<a href="http://www.bittorrent.org/beps/bep_0005.html">BEP 5</a> 
    152 are described below, subject to change. 
     192are described below, and are subject to change. 
     193Contact the I2P developers if you wish to develop a client supporting DHT. 
    153194</p> 
    154195<p>