I2PHelper HowTo

From VuzeWiki
Jump to: navigation, search

Introduction

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.

Requirements

  • Java 1.6+
  • Windows, OSX or Linux
  • Reasonable network connection - dialup not recommended!

Installation

Vuze 5500 and above

From this version the plugin is available to install via the plugin installation wizard, see below.

Beta Versions

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

Testing

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

Expectations

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.

Controlling Bandwidth

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.

Browsing 'eepsites'

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:

I2PHelper Socks.png

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:
I2pHelper FireFox Socks.png

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
I2pHelper FireFox Net.png

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.

I2pHelper FireFox Links.png

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.

Network Mixing

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:
TorrentOptionsNetworkI2P.png
  • check the availability within I2P by hitting the 'availability' button:
TorrentOptionsAvail.png

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.

Message Encryption

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.

Vuze Updates

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.

Vuze Related eepsites

Vuze Wiki