Difference between revisions of "I2P"
(→Addressing: base 32) |
(→Addressing: Discussion on I2P naming) |
||
Line 29: | Line 29: | ||
Entries can be imported with a direct URL to the local ''SusiDNS'' interface. The address in in the format of <tt><nowiki>http://127.0.0.1:7657/susidns/addressbook.jsp?book=private&hostname=NAME&destination=DEST</nowiki></tt> where ''NAME'' is the ''.i2p'' hostname and ''DEST'' is the 516 character network destination. | Entries can be imported with a direct URL to the local ''SusiDNS'' interface. The address in in the format of <tt><nowiki>http://127.0.0.1:7657/susidns/addressbook.jsp?book=private&hostname=NAME&destination=DEST</nowiki></tt> where ''NAME'' is the ''.i2p'' hostname and ''DEST'' is the 516 character network destination. | ||
+ | *[http://www.i2p2.de/naming_discussion.html Discussion on I2P naming] | ||
== See also == | == See also == |
Revision as of 14:32, 20 June 2012
i2p is a self-organizing distributed routing layer. It is organic in such a way that it commoditises and anonymises connectivity, storage, and transport.
- dot-p2p.org - A good starting reference for what, why, and how
- I2P DNS Web of Trust
- i2p2.de Technical Introduction - Apparently, the I2P official site
- I2P plugin for Vuze (Azureus) Bittorent client
- Apparently also supports Gnutella and Bittorent
- Twitter messaging over I2P
Installing on Debian/Ubuntu
There are packages available for Debian and Ubuntu in their site here. I decided to download the source and which also required me to install the java-6-openjdk and ant packages before running ant pkg in the unzipped source directory. This ran through the compilation process which took a couple of minutes, and then I downloaded and ran the graphical installer with java -jar i2pinstall_0.9.jar. After installation a browser window opens with a great deal of information about the running service with many statistics and configuration options.
To be able to visit .i2p "eepsites", the browser proxy needs to be configured to use port 4444 (4445 for HTTPS).
Addressing
All destinations in I2P are 516-byte (or longer) keys. (To be more precise, it is a 256-byte public key plus a 128-byte signing key plus a null certificate, which in Base64 representation is 516 bytes. Certificates are not used now, if they are, the keys will be longer. One possible use of certificates is for proof of work.)
If an application (i2ptunnel or the HTTP proxy) wishes to access a destination by name, the router does a very simple local lookup to resolve that name. The client application (technically, the client side of I2CP in the I2P API) does a linear search through three local files, in order, to look up host names and convert them to a 516-byte destination key:
- privatehosts.txt
- userhosts.txt
- hosts.txt
The lookup is case-insensitive. The first match is used, and conflicts are not detected. There is no enforcement of naming rules in lookups.
I2P also supports Base32 hostnames similar to Tor's .onion addresses. Base32 addresses are much shorter and easier to handle than the full 516-character Base64 Destinations or addresshelpers. Example: ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p. I2P uses 52 characters (256 bits) to represent the full SHA-256 hash. The form is {52 chars}.b32.i2p. Base32 is implemented in the naming service, which queries the router over I2CP to lookup the LeaseSet to get the full Destination. Base32 lookups will only be successful when the Destination is up and publishing a LeaseSet. Because resolution may require a network database lookup, it may take significantly longer than a local address book lookup.
Base32 addresses can be used in most places where hostnames or full destinations are used, however there are some exceptions where they may fail if the name does not immediately resolve. I2PTunnel will fail, for example, if the name does not resolve to a destination.
There is an application bundled with the install called addressbook which periodically retrieves other users' hosts.txt files and merges them with the local hosts.txt, after several checks. Naming conflicts are resolved on a first-come first-served basis. Another bundled application called SusiDNS is a web interface for configuring addressbook subscriptions and accessing the four files.
Entries can be imported with a direct URL to the local SusiDNS interface. The address in in the format of http://127.0.0.1:7657/susidns/addressbook.jsp?book=private&hostname=NAME&destination=DEST where NAME is the .i2p hostname and DEST is the 516 character network destination.