Filesharing and I2P

From I2P Wiki
Revision as of 13:08, 30 August 2021 by Ftp (talk | contribs) (New link.)
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 2019-01: 0.9.38-0 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 2019-02: 1.8.0.0 / 0.9.38.1.3 I2CP Yes Yes Optional Yes Vuze BiglyBT; Developer talks
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 Active 2019 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[2] 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.[3]

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.

FTP

The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client-server model architecture using separate control and data connections between the client and the server. FTP users may authenticate themselves with a clear-text sign-in protocol, normally in the form of a username and password, but can connect anonymously if the server is configured to allow it. For secure transmission that protects the username and password, and encrypts the content, FTP is often secured with SSL/TLS (FTPS) or replaced with SSH File Transfer Protocol (SFTP).

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 very high bandwidth, the data throughput depend on the bandwidth of your peers, and themselves depends on their peers. The project's homepage provides a detailed and understandable answer to the question of performance[4].

How to make BitTorrent faster

  • Set a reasonable tunnel length between safety and speed.[5] 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.
  • 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.[6] 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[7] DifTracker[8] iMule[9]
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[10]
BitTorrent < 100 < 1000?
(perhaps unlimited because based on trackers, DHT and Peer Exchange (PEX).)
Gnutella < 5000 > 90000[11]
eDonkey/Kademlia < 1000 < 20000[12]
Aktie unlimited[13] unlimited[14]

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

About PeerBlock

Some users use programs like PeerBlock[16] or Peer Guardian[17] 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[18] 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. CLI possible with 'imuled' (imule-daemon).
  3. zzz.i2p "There's not a lot of differences between eepget, wget, curl, ...", 31 Oct 2015
  4. i2p-projekt.i2p "How does I2P work, why is it slow, and why does it not use my full bandwidth?"
  5. 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"
  6. zzz.i2p zzz: How to make i2psnark download faster
  7. http://tracker2.postman.i2p/?view=Stats
  8. http://diftracker.i2p/index.php
  9. http://onepost.i2p/2015-03-01_172200
  10. Because of the distribution in the DHT of the trackers.
  11. Because the search of a file name is distributed to all the peers.
  12. Because of the DHT limited size
  13. According to developers
  14. According to developers
  15. However, computing a so-called hash payment for each file may take time for such an amount of files to share.
  16. https://en.wikipedia.org/wiki/Peerblock
  17. https://sourceforge.net/projects/peerguardian/
  18. http://i2p-projekt.i2p/en/docs/how/tunnel-routing


Happy filesharing!