Filesharing and I2P
This is about the direct sharing of files between I2P users (usually) using a file-sharing network.
Available file sharing clients
These tables gives some basic details about the networks and clients available. For specific information on how to install and use them, scroll down, or consult the homepage/package of the client, or or a corresponding forum.
Note: If the URL for a client isn't up, or is not provided, you can generally find the software on Echelon's archive, see I2P software.
Note: The official documentation page[1] should match with this wiki page.
BitTorrent network
BitTorrent clients
The following table gives an overview of fully functional and usable programs. For security reasons, only programs with the status "active" should be used.
Name | Dev. Status | Last release (year) / version | I2P Bridge | GUI | CLI | Web Interface | MTS | Based on | Homepage |
---|---|---|---|---|---|---|---|---|---|
I2PSnark (bundled*) / I2PSnark (standalone) | Active | 1.9.0 / 2.1.0-4-beta | I2CP | No | No | Yes | Yes | Snark | *This application is bundled in I2P package. zzz resp. I2PSnark standalone |
BiglyBT with I2P Helper (internal a. external I2P support) | Active | 3.2.0.0 | I2CP | Yes | Yes | Optional | Yes | Vuze | BiglyBT; Developer talks |
libtorrent-rasterbar library and the clients using it[2] | Active | 2025-01: 2.0.11 | SAM | [3] | [3] | [3] | Yes | C++, Boost | home page - GitHub |
qBittorrent | Active | 2024-12: 5.0.3 | SAM | Yes | No | Yes | Yes | libtorrent | home page - GitHub |
XD | Active | 2021-06: 0.4.1 | SAM | No | Yes | Yes | ??? | ??? | xd-torrent.github.io. |
Vuze (dev) by I2P Helper plugin* | Active* | 2017-03: 5.7.5.0 / 0.9.29.1.1 | I2CP | Yes | No | Yes | Yes | Azureus | plugins.vuze.com. *The change to BiglyBT is recommended by zzz. |
qBittorrent (Comix's fork) (QT4, Rasterbar C++ bittorrent library) |
reposes | 2015 / 3.1.12 | SAM V3 | Yes | Yes | Yes | Yes | qBittorrent | The Bug Genie for I2P |
Flush (Comix's fork) (libtorrent) |
reposes | 2015 / 0.9.12 | SAM V3 | Yes | No | No | Yes | Flush | The Bug Genie for I2P |
Deluge (Comix's fork) (Deluge I2P Plugin, libtorrent) |
reposes | 2015 / 1.3.11 | SAM V3 | Yes | Yes | Yes | Yes | Deluge | The Bug Genie for I2P
|
I2P Transmission (Comix's fork) | reposes | 2013 / 2.8.2 | BOB | Yes | Yes | Yes | Yes | Transmission | The Bug Genie for I2P
|
MTS: Multi-tracker torrent support
Obsoletes
The following programs were abandoned by the developers and should only be taken up by experienced users or developers.
Name | Dev. Status | Last release (year) / version | I2P Bridge | GUI | CLI | Web Interface | MTS | Based on | Homepage |
---|---|---|---|---|---|---|---|---|---|
Robert | Inactive | 2013 / 0.0.40 | BOB | Yes | No | Yes | Yes | I2PRufus | sponge.i2p offline |
I2p Transmission (dinamic's fork) | Inactive | 2009 / 0.1.0-4 | BOB | Yes | Yes | Yes | Yes | Transmission | Echelon |
I2PSnarkXL | Inactive | 20100517a | No | No | No | Yes | Yes | I2PSnark | Echelon |
PyBit | Inactive | 2011 (0.3.1) | SAM | Yes | No | No | Yes | Written from scratch | |
I2P-BT | Inactive | 2005 / 0.1.8 | ? | Yes | No | No | ? | Original BitTorrent | i2p-bt.postman.i2p
|
I2P-BOB-BT | Inactive | 2009 | BOB | Yes | No | No | ? | I2P-BT | bob.i2p offline
|
I2PRufus | Inactive | 2009 (0.1.2) | ? | Yes | No | No | ? | Rufus | Echelon
|
KTorrent | Inactive | 2011-07-25 | BOB | Yes | Yes | Yes | Yes | KTorrent | No homepage, torrent file: "I2P Alternative BitTorrent Software Collection" (2012) |
MTS: Multi-tracker torrent support
MuWire
Inspired by LimeWire, created to work only via I2P.
Name | Development Status | Last release (year) | I2P Bridge | GUI | CLI | Web Interface | Based on | Homepage |
---|---|---|---|---|---|---|---|---|
MuWire | Inactive | 2022 | I2CP | Yes | Yes | No | ? | muwire.i2p |
Gnutella network
Name | Development Status | Last release (year) | I2P Bridge | GUI | CLI | Web Interface | Based on | Homepage |
---|---|---|---|---|---|---|---|---|
I2Phex | Inactive | 2016 | SAM | Yes | No | No | Phex | None |
Jwebcache (a Gnutella webcache used by I2Phex clients on I2P) | Inactive | 2016 | SAM | No | No | Yes | None | |
PebCache (a Gnutella webcache) | Inactive | 2009 | SAM | No | No | Yes | pebcache.i2p copy, File: echelon.i2p/pebcache |
eDonkey/Kademlia network
Kademlia is a distributed hash table for decentralized peer-to-peer computer networks.
Name | Development Status | Last release (year) | I2P Bridge | GUI | CLI | Web Interface | Based on | Homepage |
---|---|---|---|---|---|---|---|---|
iMule | Inactive | 2016 | SAM | Yes | No | Yes[4] | aMule | http://www.imule.i2p |
Nachtblitz | Inactive | 2016 | SAM | Yes | No | No | Written from scratch (in C#) | http://echelon.i2p/nachtblitz/ |
Proprietary network
Note: the following software are not focused mainly on file sharing but on distributed forums.
Name | Development Status | Last release (year) | I2P Bridge | GUI | CLI | Web UI | Based on | Homepage |
---|---|---|---|---|---|---|---|---|
OFS | Inactive | 2014 | SAM | Yes | No? | No | Written from scratch (Java) | ofs.i2p offline |
Aktie | Active | 2017 | SAM | Yes | No (v0.5.21) | No (v0.5.21) | Written from scratch (Java). Concept similar to OFS. | Aktie links |
See also WOT forums, to compare this kind of software with common filesharing software.
So you have installed I2P, you can browse some sites, but now you want to up- or download some music and movies anonymously? All the geeky language can be confusing, but it is quite simple and you have a few options. I2P comes with an integrated BitTorrent program called I2PSnark. I2PSnark it's easy to use and can be accessed from the I2P Router Console page in your browser. If that's not your thing, there are a number of other torrent programs available to use with I2P, some of which are detailed below.
eDonkey/Kademlia
iMule is an aMule port designed specifically for I2P. It runs only the distributed Kademlia protocol and, as such, doesn't require any central servers like eDonkey required. This is a separate program that needs to be downloaded and run alongside I2P.
Main article: iMule
Gnutella
Main article: I2Phex (this a Gnutella client modified to work into I2P)
Sharing via eepsites
The following statement is obsolete. The boss himself (zzz) says that every normal download manager is just as suitable.[5]
You can put a file on your eepsite, then use the command "eepget <filename>" from your I2P directory to download.
Examples:
- if you have a I2P domain name: "eepget http://example.i2p/filename.zip"
- else by using your B32 address: "eepget http://cn6t5izb84928fjizjfIJ5GFcjzcbytFTzad3.b32.i2p/filename.zip"
There are various sites on I2P which host files for download this way, but it is generally better to use one of the above P2P methods for serious filesharing.
It is also possible to host any protocol (other than HTTP, which is used for eepget) usable for file sharing, such as SFTP.
Note: on Linux, in some I2P's installation cases, eepget command does not be run from any folder, you must go to the eepget folder: "cd $HOME/i2p", then type "sh eepget [http:// http://]..."
Main article: EepGet.
FAQ
Why is file transfer slow?
The short answer is, it works, but everything has its price. Even if your have a lot of bandwidth, the data throughput depends on the available bandwidth of the peers that participate in your tunnels. The project's homepage provides a detailed and understandable answer to the question of performance.
One connection uses a pair of tunnels from your side, and a pair from your peer's side. Each tunnel has limited bandwidth. If there are multiple connections, the bandwidth is combined. This can be observed, for example, in downloading/seeding torrents that have many seeds/downloaders - the more there are, the faster it goes.
How to make BitTorrent faster
- Set a reasonable tunnel length between safety and speed.[6] For the dedicated file sharing with I2PSnark, 3 tunnels with 2 hops each have proven their worth. If you need more tunnels, you should use a more efficient client instead of I2PSnark, who can also handle the management of the tunnels, such as BiglyBT, or use several clients (the chapter How to make I2PSnark faster offers a corresponding help).
- Make sure you select the correct sources. If distributed with 15 KiB/s then it is not possible to download with 30 KiB/s. The source with the most participants is preferable if the quality is not so important.
- Loading torrents and files in general one after the other. It doesn't get faster if e. g. four or even more torrents have to be squeezed through the tunnels at the same time. In addition, you run the risk of being temporarily kicked or even permanently banned by the peer who distributes the four torrents.
- Several large files or seasons in the torrent should also be loaded one after the other. Time passes much faster when the first season is seen, while the second one loads in the background. However, there is a reason why torrent clients default to downloading randomly - if there are many downloaders but few seeders, randomly downloading helps when all seeders leave - the piece sets held by each downloader will be different, and they will be able to share pieces to get to 100%. So, if you are on a torrent with other downloaders and very few seeders, consider not forcing sequential download unless really necessary.
- Give full attention to the preferred upload or download. Depending on the own power, the other uploads and downloads will be temporarily postponed.
- I2PSnark downloads either well up or well down, but has a rather bad swarm behavior. BitTorrent works according to the procedure, those who upload a lot get a lot back. If you upload only a little, there will be very little download.[7] This can build up to the point where everyone involved ends up at the lower limit. In the swarm, therefore, take care to distribute accordingly.
- Clients such as BiglyBT may have to limit the upload in the swarm, which consists mainly of I2PSnarks. I2PSnark will otherwise lie down on its back and simply won't spread if it gets too much for free. Limiting to the average swarm speed has proven effective, but selective limiting is better.
- Wait until there are enough distributors and your own client doesn't have to compete in the swarm. (Be careful with pure DHT sources from the internet, which are distributed via BiglyBT or Vuze as proxy. With average download rates beyond good and evil, they are gone as fast as they came.)
- Use modern codecs. Don't take the technically backward scene as your model, but use only modern codecs like HEVC (preferred for technical reasons) or VP9. XviD, MPEG and AVC have their place, but not in file sharing. For us, these old codecs cause a considerable loss of quality at the same bit rate. (Of course, this only applies to the future file conversion, not to already converted material. Converting an existing 2000 kb/s XviD to a HEVC would be nonsensical.)
- Consider switching to BiglyBT. When properly configured, BiglyBT establishes more than 1 connection per peer, increasing transfer rate.
Can I download clearnet torrent using I2P?
Very popular clearnet torrents are usually available in I2P. Just fetch the magnet link in your I2P torrent client, if some of the other I2P torrent user shares that torrent, you get it via I2P.
BitTorrent vs others file sharing protocols
Contra BitTorrent
For the user "KuViz418" (editing this Wiki, 2014-06) BitTorrent is not relevant into a anonymous P2P network like I2P.
BitTorrent is relevant for sharing easily some hot new files, but does not fit to share lots of older files (ie: entire folders) for a long time (months, years). The little number of users of I2P users has for consequence that the file will lack of seed peers even faster than on the Internet (clearnet).
Trackerless file sharing protocols (like iMule, Nachtblitz, i2Phex, Aktie) are harder to learn but allow to share lots of files (new or olds), and their P2P search engine is not dependent on a tracker eepsite. New files can be announced for example on eepsites, forums, or Syndie. In Aktie, new files are automatically announced to all peers.
Pro BitTorrent
Simultaneous distribution requires the necessary capacity. With a bandwidth of 100 kbps and 5000 files, it will quickly become tight. But many BitTorrent users agree on one thing: nothing is older than yesterday's download. On the other hand, there are things that are appreciated here as well, be it a documentary, an excellent film or a good book. They all have something in common, they are worth it. Thus, the contents are sometimes stored for years or simply reissued on request.
BitTorrent is not slow, the average download speed is at 18 KiB/s (2017). A snapshot shows an example with 24 Seeds and 18 Peers: swarm speed 4.42 MiB/s or 251.4 KiB/s average (include protocol overhead), see also the screenshot. Of course, these values are not always achieved. The reasons for this are manifold, often due to the lack of experience of the users. However, it is no problem for professionals to download a current 45-minute TV series within 45 minutes.
Modern clients are designed to be fail-safe (DHT, built-in tracker). There are also features such as decentralized and private distribution, selective protection from rip-offs and a host of more sophisticated features that make life easier.
Some freedoms simply go too far for some people and they don't want to be confronted with it. Tracker are a social place where people meet and communicate. On I2P, they are a pillar of society.
Ranking of file sharing networks (inside I2P)
This section is outdated and needs revision based on facts and the technical limitations of the underlying network.
This table is write in order to save time to newcomers. This a quite subjective ranking, the opinion of Hummingbird.
Date | #1 | #2 | #3 | #4 | #5 |
---|---|---|---|---|---|
2016-01 | Kademlia network (iMule-Nachtblitz) | BitTorrent network | ('?' because it is private by design) | Gnutella network (I2Phex) | Aktie |
By number of seeders / peers
Postman[8] | DifTracker[9] | iMule[10] |
---|---|---|
30,000+ | 3778 | < 200 |
Comparison of the number of files sharable in a network
Some file sharing networks are design to make possible to share a certain number of files maximum, otherwise some peers might fail to find some files if too much files are shared.
This table is opinion based (by Hummingbird 2015-12), improvements are welcome.
Network (running into I2P) |
Number of simultaneous files that a peer may share with success | Number of simultaneous files that a network may let access to with success[11] |
---|---|---|
BitTorrent | < 100 | < 1000? (perhaps unlimited because based on trackers, DHT and Peer Exchange (PEX).) |
Gnutella | < 5000 | > 90000[12] |
eDonkey/Kademlia | < 1000 | < 20000[13] |
Aktie | unlimited[14] | unlimited[15] |
In BitTorrent "files" means "torrent"; I2PSnark e.g. provided max 2000 files per torrent.
A other way to explain my mind:
The total number of files that you plane to share | The network (running into I2P) that fit with this use |
---|---|
< 50 | BitTorrent, eDonkey/Kademlia, Gnutella |
< 1000 | eDonkey/Kademlia, Gnutella |
< 100000 | Gnutella |
> 100000[16] | Aktie |
About PeerBlock
Some users use programs like PeerBlock[17] or Peer Guardian[18] to block IP addresses of unwanted peers. Programs like PeerBlock are not very useful in I2P. The reason why is because PeerBlock works by blocking connections to directly-connected peers, but I2P uses tunnels[19] to connect to the peers it wants to find. PeerBlock may cut you off from some needed resources by chance. I2P is built to work with all Internet clients and full connectivity, do not selectively block clients for best performance.
Misc
- Syndie is able to attach to messages some little files (512 KB by default, can be increased up to 4 MB if the archive does support this size). Syndie is is not designed for file sharing (but for communication), however it may be relevant for some (very) particular situations (ie: torrents files).
- Links of BitTorrent trackers inside I2P: EepsiteIndex
Communication and information
- IRC (inside I2P): in IRC2P the channel about file sharing is #torrents or derived from it, the language-specific channels (for example #torrents-de).
- RSS feeds inform you about news.
- BitTorrent-Clients like BiglyBT and Vuze have a built-in anon chat.
References
- ↑ i2p-projekt.i2p: Supported file sharing applications
- ↑ libtorrent's I2P support mostly fixed, see here (zzz.i2p)
- ↑ 3.0 3.1 3.2 Depends on the client
- ↑ CLI possible with 'imuled' (imule-daemon).
- ↑ zzz.i2p "There's not a lot of differences between eepget, wget, curl, ...", 31 Oct 2015
- ↑ i2p-projekt.i2p Tunnel length: "The decision as to how many routers to have in one's outbound and inbound tunnels has an important effect upon the latency, throughput, reliability, and anonymity provided by I2P"
- ↑ zzz.i2p zzz: How to make i2psnark download faster
- ↑ http://tracker2.postman.i2p/?view=Stats
- ↑ http://diftracker.i2p/index.php
- ↑ http://onepost.i2p/2015-03-01_172200
- ↑ Because of the distribution in the DHT of the trackers.
- ↑ Because the search of a file name is distributed to all the peers.
- ↑ Because of the DHT limited size
- ↑ According to developers
- ↑ According to developers
- ↑ However, computing a so-called hash payment for each file may take time for such an amount of files to share.
- ↑ https://en.wikipedia.org/wiki/Peerblock
- ↑ https://sourceforge.net/projects/peerguardian/
- ↑ http://i2p-projekt.i2p/en/docs/how/tunnel-routing
Happy filesharing!