modelled on TCP Reno (RFCs 5681 and 6298) - Use a single timer per connection - Resend up to half the un-acked messages per timer event instead of a single message - Only send either old or new messages, do not mix - Cache/avoid several timer calls - Instead of 3 return values, allocating bandwidth is now a boolean function - Avoid one of the iterations over all un-acked messages every packet pusher loop - Remove 100 ms failsafe - Fix OMF debug log NPE With the same cpu usage the bandwidth is much higher Significant speed improvement for lossy connections (e.g. wifi) Patch by zlatinb
I2P
This is the source code for the reference Java implementation of I2P.
Latest release: https://geti2p.net/download
Installing
See INSTALL.txt or https://geti2p.net/download for installation instructions.
Documentation
API: http://docs.i2p-projekt.de/javadoc/ or run 'ant javadoc' then start at build/javadoc/index.html
How to contribute / Hack on I2P
Please check out HACKING.md and other documents in the docs directory.
Building packages from source
To get development branch from source control: https://geti2p.net/newdevelopers
Prerequisites
- Java SDK (preferably Oracle or OpenJDK) 8 or higher
- Non-linux operating systems and JVMs: See https://trac.i2p2.de/wiki/java
- Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel) require only Java 6
- Apache Ant 1.9.8 or higher
- The xgettext, msgfmt, and msgmerge tools installed from the GNU gettext package http://www.gnu.org/software/gettext/
- Build environment must use a UTF-8 locale.
Ant build process
On x86 systems do:
ant pkg
On non-x86, use one of the following instead:
ant installer-linux
ant installer-freebsd
ant installer-osx
Run 'ant' with no arguments to see other build options.
Gradle build process
Full builds of installers or updates are not yet possible, but the code can be compiled with:
./gradlew assemble
This will download dependencies over the clearnet by default, including Gradle
itself. To download through a SOCKS proxy (e.g. Tor), add the following lines to
your ~/.gradle/gradle.properties
:
systemProp.socksProxyHost=localhost
systemProp.socksProxyPort=9150
Contact info
Need help? See the IRC channel #i2p on irc.freenode.net
Bug reports: https://trac.i2p2.de/report/1
Contact information, security issues, press inquiries: https://geti2p.net/en/contact
Licenses
See LICENSE.txt