I2P is an anonymizing network, exposing a simple layer that applications can use to anonymously and securely send messages to each other.
The network itself is strictly message based (ala IP), but there is a library available to allow reliable streaming communication on top of it (ala TCP). I2P is able to offer users the possibility to communicate via IP address.
All communication is end to end encrypted (in total there are four layers of encryption used when sending a message), and even the end points ("destinations") are cryptographic identifiers (essentially a pair of public keys).
To anonymize the messages sent, each client application has their I2P "router" build a few inbound and outbound "tunnels" - a sequence of peers that pass messages in one direction (to and from the client, respectively).
In turn, when a client wants to send a message to another client, the client passes that message out one of their outbound tunnels targeting one of the other client's inbound tunnels, eventually reaching the destination.
Every participant in the network chooses the length of these tunnels, and in doing so, makes a tradeoff between anonymity, latency, and throughput according to their own needs.
The result is that the number of peers relaying each end to end message is the absolute minimum necessary to meet both the sender's and the receiver's threat model.
· Java 1.5 or later
What's New in This Release: [ read full changelog ]
· Big rework of the update system; Preliminary support for updates via i2psnark
· Add per-destination outbound priorities
· Fix major bug that reduced SSU connection limits which reduced tunnel build success rates
· Fix bug with external I2CP that prevented some external apps from working
· Fixed several bugs in i2psnark DHT
· Fixed bug in i2psnark PEX that inflated peer counts
· Handle dropped I2CP messages better
· Reduce overhead of I2CP messages
· Enforce max size in transport outbound message queues
· Fixes for Windows eepget.bat (new installs and PPA only)
· Fix a bug that would drop messages of exactly 512 bytes in SSU
· More performance improvements, memory reduction, and object churn reduction
· Better detection of network disconnections
· Further improvements in the SSU transport
· Add console password form
· Convert http proxy and console from basic to digest authentication for added security
· Improved verification of console form submissions, using jsp sessions. Cookies...