- 1 Introduction
- 2 Requirements
- 3 Installation
- 4 Testing
- 5 Expectations
- 6 Controlling Bandwidth
- 7 Browsing 'eepsites'
- 8 Network Mixing
- 9 Message Encryption
- 10 Using a full I2P installation
- 11 Vuze Updates
Since Vuze 5301 a new plugin, the 'I2P Helper plugin', has been available to both reduce the complexity of configuration and to more fully support decentralised torrenting over I2P.
More information on the I2P network is available here
If you are looking for the old, deprecated plugin, go here.
- Java 1.6+
- Windows, OSX or Linux
- Reasonable network connection - dialup not recommended!
Vuze 5500 and above
From this version the plugin is available to install via the plugin installation wizard, see below.
Prior to version 5400 of Vuze you need to be running the latest Beta version of Vuze for the plugin to work - this is due to core changes that were required to support the plugin.
First join the Beta_Program and wait for Vuze to update itself with the latest software.
The plugin is available from the plugin installation wizard within Vuze - look for 'I2P Helper'. Note that the older plugin for I2P integration is still available and named 'I2P Network Plugin'
Note for Linux Users
Many packaged distributions of Vuze for linux variants have the auto-update functionality disabled (the package maintainer wanted explicit control over updates due to the way that the distribution pulls dependent libraries out of the Vuze application, e.g. the SWT graphics library). If you are running such a version then you will most likely have problems joining the beta program. If this is the case you will either need to
- Stop using the packaged install and instead grab the Vuze linux distribution from http://sourceforge.net/projects/azureus/files/vuze/Vuze_5300/Vuze_5400_linux.tar.bz2/download and then join the Beta Program
- Manually update the Azureus2.jar from http://dev.vuze.com/ - grab the latest development build
Once you have installed the plugin, and the I2P network has booted (this can take some time on initial installation) you can test the functionality with this test torrent:
Or if you would rather use the I2P network to download the torrent
Downloading over I2P will be slower than over the public internet for fairly obvious reasons - connections are routed through various peers to provide anonymity/privacy - these other peers forward the network traffic to other peers. If you have, say, 2 intermediate peers between the start and end of the overall connection, every byte sent will require the network to transport three bytes overall (initial peer->first intermediate; first intermediate->second intermediate; second intermediate->final peer). Also connection establishment is more complex and obviously connection latencies are much higher than direct connections over the internet.
There are also overheads associated with running the I2P network itself so you will see some of your bandwidth being used for this.
The default bandwidth available for I2P to use is limited - you will probably want to consider updating the limits in the plugin configuration options. There is also the option to link the I2P limits to the overall Vuze limits.
The bandwidth controls configurable via the plugin configuration page affect the overall I2P bandwidth usage, not that for uploading and downloading torrents (I2P has network overheads as discussed above and also to participate in the I2P network you must donate some of your bandwidth to other peer's tunnels.)
If you want to control torrent downloading/uploading limits then you can use the Speed Limit Scheduler to define 'Peer Sets' specific to I2P Peers (and non-I2P peers), and then rate limit them as required. For example, the following schedule will define two Peer Sets, one for I2P peers and one for the rest:
enabled=yes peer_set I2P=I2P peer_set NotI2P=I2P, inverse=yes
Once set up these Peer Sets will appear in the side bar and you can right-click on them to set rate limits as required.
Peer Sets support a rate limit of 'Disabled' which when set prevents all transfer of data in the specified direction (up or down). This can be used, for example, to only download data from non-I2P peers while uploading and downloading to I2P ones.
An 'eepsite' is a website that is only available through I2P and has a URL ending in '.i2p'. For example, there is a statistics website at http://stats.i2p/. If you try to browse to this using your normal internet browser it won't work - you need to tell your browser to use the I2P network to find the website, not the public internet.
Vuze has a SOCKS proxy that you can configure your browser to use for this purpose. Normally the SOCKS proxy is used internally and selects a random available port to listen on. If you want to use it for browsing then you should select a fixed port so you don't need to keep configuring your browser:
In this example port 61851 has been selected. Note also that 'Always start SOCKS server' has been enabled - if this is not selected then Vuze will only start the server when required for internal use and when it isn't running you won't be able to browse .i2p addresses.
Next you need to configure your browser. Firefox is a good choice here as you need to be able to configure it to defer DNS resolution to the SOCKS proxy - let's assume you have gone along with this. If you are already using Firefox you could install a second 'portable' version for I2P purposes, see http://portableapps.com/apps/internet/firefox_portable
Two configuration actions are required:
- Configure remote DNS:
Enter 'about:config' in the address bar, enter 'dns' in the search box to find config entries related to DNS, then change the setting for 'remote-dns' to 'true' by double clicking it.
- Configure the SOCKS Proxy
Open the Firefox option panel, select 'Network' and then 'Settings'. Then enable 'manual proxy configuration' and enter '127.0.0.1' (i.e. localhost) into the SOCKS host along with whatever port you configured within Vuze as the SOCKS proxy (61851 in this case). Ensure that SOCKS V5 is enabled, NOT SOCKS V4.
Save the settings and restart to ensure they take effect. Then browse to http://stats.i2p/. Vuze will of course need to be running (and I2P started up within Vuze) for this to work.
Opening eepsite Links in Vuze
If you have a subscription or search template that uses an eepsite then you can configure Vuze to open FireFox (as configured above) to view links (e.g. subscription result 'details' links) via Tools->Options->Interface->Display: External Browser
Select 'manual' for the browser selection and then enter/browse to the FireFox application.
Using FireFox for Subscription/Search Results
You can also configure Vuze to use Firefox (as configured above) to display subscription/result pages externally instead of inside Vuze. Check the required boxes at the bottom of the External Browser configuration section. Be sure to read the accompanying text detailing the restrictions when using this feature.
Allowing FireFox to access the internet
By default the SOCKS server will refuse connections to non-I2P addresses - if you are concerned about anonymity then this is the desired behavior. The reason is that a malicious I2P website could return specially crafted web page that linked to a public IP address also controlled by the I2P website - if FireFox automatically loaded the link then this would allow the malicious site to correlate your I2P identity and your public IP address.
However, if all you want is a browser that allows access to .i2p websites, along with public websites, and you don't care about your identity, you can configure the SOCKS server to allow connections to non-I2P addresses via the 'Allow SOCKS server to delegate...' option shown above.
In order to increase the availability of torrents for download via I2P the plugin supports 'network mixing'. This will take well seeded torrents from the internet and make them available as decentralized torrents over I2P. The number of torrents treated in the way can be configured via the plugin's configuration options.
When adding a new torrent to Vuze its availability within I2P can be checked. To do this you need to
- enable the I2P network for the torrent in the torrent options:
- check the availability within I2P by hitting the 'availability' button:
If the torrent is reasonably well seeded within I2P DHT you can select to only download it over I2P by deselecting the 'public internet' before adding the torrent. Alternatively download via both networks by leaving it selected.
NOTE: mixed torrents and I2P only torrents are handled separately within Vuze to prevent the correlation of mixed activity and pure I2P activity. If you add a torrent and subsequently amend its network availability (e.g. change it from pure I2P to mixed) then this will potentially reduce your privacy.
Vuze doesn't use Message Stream Encryption when connecting over non-public networks such as I2P although your settings will of course be respected for public network connections on a mixed network download. The reason is that the streams are already encrypted/obfuscated so another layer of encryption on top of this wastes resources to no benefit. This behavior was introduced in 5301_B43.
Using a full I2P installation
Rather than using the minimal I2P runtime bundled with this plugin you can configure the plugin to use a full I2P installation that you have setup yourself - see the plugin configuration to enable this. You should ensure that your I2P installation is running before starting Vuze as the plugin currently requires this.
The default port used by your I2P installation is 7654 so, unless you have changed this, no further configuration within Vuze is required.
If you are running I2P on a different host to Vuze then you can also configure the host address (since version 0.2.5)
You will need to configure I2P bandwidth limits directly via the I2P configuration web pages.
Even if you configure Vuze to only use the I2P network by default (under Tools->Options->Connection: Networks) Vuze will automatically enable the public network on all update downloads (this includes Vuze core updates and plugin installations/updates). It is possible that in the future I2P based updates will be supported but until that time don't be surprised if you see this. Updates can be disabled if required via
- Tools->Options->Interface->Start: options towards the top used to disable core update checks
- Tools->Options->Plugins->Plugin Update: disable this to disable plugin updates
although this isn't recommended as maintaining an up-to-date Vuze is good for your overall privacy and general Vuze wellness.