Filesharing and I2P

From I2P Wiki
Jump to navigation Jump to search

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 2022-10: 2.0.8[3] SAM [4] [4] [4] Yes Nothing(?) home page - GitHub
qBittorrent Active 2022-11: 4.5.0 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[5] 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.[6]

You can put a file on your eepsite, then use the command "eepget <filename>" from your I2P directory to download.

Examples:

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.

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.

SFTP

SFTP File Transfer Protocol.

SFTP (SSH File Transfer Protocol) is a secure file transfer protocol. It runs over the SSH protocol. It supports the full security and authentication functionality of SSH.

SFTP has pretty much replaced legacy FTP as a file transfer protocol, and is quickly replacing FTP/S. It provides all the functionality offered by these protocols, but more securely and more reliably, with easier configuration.

SFTP also protects against password sniffing and man-in-the-middle attacks. It protects the integrity of the data using encryption and cryptographic hash functions, and autenticates both the server and the user.

SFTP port number is the SSH port 22. It is basically just an SSH server. Only once the user has logged in to the server using SSH can the SFTP protocol be initiated.

Relevant article: SFTP servers

FAQ

Why the file transfer is 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.

How to make BitTorrent faster

  • Set a reasonable tunnel length between safety and speed.[7] 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.
File:BiglyBT-AllPeers.png
Leased lines to overloaded clients.
  • 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.[8] 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 ?

The top 100 torrents are usually available in I2P through BiglyBT and Vuze. Just fetch the magnet link or the checksum (hash) from any tracker in your I2P torrent client, if some of the other I2P torrent user shares that torrent, you get it via I2P. If you use only I2P torrent, e.g. in Vuze I2P plugin, you need to enable "I2P only" for that torrent.

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.

File:BiglyBTv1.2.0.0.png
An underutilized BitTorrent-Cliend (BiglyBT)

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.

By amount of shared files

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[9] DifTracker[10] iMule[11]
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[12]
BitTorrent < 100 < 1000?
(perhaps unlimited because based on trackers, DHT and Peer Exchange (PEX).)
Gnutella < 5000 > 90000[13]
eDonkey/Kademlia < 1000 < 20000[14]
Aktie unlimited[15] unlimited[16]

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[17] Aktie

About PeerBlock

Some users use programs like PeerBlock[18] or Peer Guardian[19] 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[20] 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

  1. i2p-projekt.i2p: Supported file sharing applications
  2. libtorrent's I2P support mostly fixed, see here (zzz.i2p)
  3. This version does not have the I2P fix. Compiling from source is recommended (for now).
  4. 4.0 4.1 4.2 Depends on the client
  5. CLI possible with 'imuled' (imule-daemon).
  6. zzz.i2p "There's not a lot of differences between eepget, wget, curl, ...", 31 Oct 2015
  7. 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"
  8. zzz.i2p zzz: How to make i2psnark download faster
  9. http://tracker2.postman.i2p/?view=Stats
  10. http://diftracker.i2p/index.php
  11. http://onepost.i2p/2015-03-01_172200
  12. Because of the distribution in the DHT of the trackers.
  13. Because the search of a file name is distributed to all the peers.
  14. Because of the DHT limited size
  15. According to developers
  16. According to developers
  17. However, computing a so-called hash payment for each file may take time for such an amount of files to share.
  18. https://en.wikipedia.org/wiki/Peerblock
  19. https://sourceforge.net/projects/peerguardian/
  20. http://i2p-projekt.i2p/en/docs/how/tunnel-routing


Happy filesharing!