eMule

from Wikipedia, the free encyclopedia
eMule

logo
Screenshot
Download overview at eMule 0.48a
Basic data

developer eMule team
Publishing year 2002
Current  version 0.50a
(April 7, 2010)
Current preliminary version 0.51d
(May 26, 2019)
operating system Microsoft Windows
programming language C ++
category peer to peer
License GPL ( Free Software )
German speaking Yes
www.emule-project.net

eMule ( English mule [ iːmjuːɫ ], German , mule ' ) is a widely used and free file sharing - client for the eDonkey2000 - and the Kad network . It was developed as an alternative to the original, now abandoned eDonkey client and expanded with numerous capabilities. eMule is now by far the most common client for the eDonkey2000 network.

properties

eMule is free and open source, and it contains no advertising or espionage programs . Several protocols ( eD2K , Source Exchange , Kad ) are used to find other clients. An internal credit system gives preferential treatment to clients who upload large amounts of data so that they can move faster in their own queue.

eMule has an integrated data compression between eMule and compatible clients. Peer Cache is supported, so it is possible internet service providers, their eMule caused data transfer rate by caching to reduce.

The "intelligent error correction" ( Intelligent Corruption Handling , "ICH" for short), which eMule also has ahead of the original eDonkey client, has now been replaced by the better " Advanced Intelligent Corruption Handling " ( AICH). This improved variant can now identify defective file segments in a size of 180 kB and save undamaged parts. With the original eDonkey client, the entire chunk (9.28 MB) had to be reloaded. Furthermore, the eDonkey download links can be supplemented with an additional AICH hash value, which can preventively protect against defective data.

With the preview function, videos and archives can be viewed before they have been fully downloaded.

It is possible to categorize the downloaded files and divide them into different folders . Files can be assigned different priorities in both upload and download. The use of complex boolean search queries is supported.

eMule has an integrated IRC client . It uses the free SMIRC implementation.

eMule on Linux (with Wine )

EMule can be remotely controlled via the web interface from any computer (or handheld ) with access to the network or an Internet connection.

By creating "collections" it is possible to find related files in the network. The folder with incomplete (temporary) files takes up a lot of space, usually more than e.g. E.g. earlier with eDonkey, and due to the way eMule works, a temporary file corresponding to the original size may be created, even if a few kilobytes have only been downloaded.

With version 0.47a the following functions have been added:

Files up to 256 GB (previously 4 GB) are supported. There are advanced search options, improved proxy support, and support for file ratings stored on the server. Clients that send spam messages are automatically banned. eMule 0.47a is already fundamentally capable of Kad 2.0, a full activation only took place in later versions; the "old" Kad 1.0 network is no longer supported from version 0.50a.

From version 0.47b "obfuscation" (protocol disguise) is possible in the eDonkey2000 network. An obfuscation in the Kademlia network was completely added from version 0.49a. This can make it more difficult for providers and / or network administrators to recognize eMule data traffic and thus possibly prevent countermeasures. Contrary to popular belief, this does not result in greater anonymity. Under certain circumstances, the protocol encryption even expresses itself in a slightly higher use of the transmission rate (" overhead ").

history

The roots of eMule can be traced back to May 13, 2002, when Hendrik Breitkreuz was dissatisfied with the original eDonkey2000 client and therefore decided to develop a better one. The first official version (0.02) was made available for download on July 6, 2002 as source text on SourceForge and is still available there today. Breitkreuz has since withdrawn from public development, but still supports the project today.

Since eMule was published with source code from the start, it didn't take long for the first modifications ( mods ) to appear. These extend eMule with many features, some of which have been adopted in the official eMule versions. Since the typical eDonkey download restriction could be overcome with rudimentary programming knowledge, eMule was often considered a leecher client in the early days . To counter this, a credit system was introduced with version 0.19a of September 14, 2002. The credit system means here that the more data you have already sent to another user, the faster you advance in the queue. Own credits cannot be manipulated because they are stored with other users.

function

eMule is based on the server-based eDonkey2000 platform, is programmed in Visual C ++ and uses the Microsoft Foundation Classes . The client has additional search algorithms for sources such as source exchange as well as the serverless Kad, which is based on the Kademlia algorithm.

The majority of eMule users are connected to a server and thus to the eD2K network (eD2K stands for eDonkey2000). The respective server usually indexes all files released by a connected client. If another client asks for a specific file, the server delivers known (connected) clients that offer this file. The contact and the download then take place directly from client to client without the server (exception: LowID ). In addition, eMule queries all servers in the server list for sources, not just the connected ones. Contrary to popular belief, it is therefore irrelevant which server the client is connected to; only a high load on the server can delay the delivery of the sources. The server method is the fastest and requires a low transfer rate, but it delivers the fewest sources. All clients are also subject to the rules of the server to which they are connected: predominantly ad-financed, server operators often limit the maximum number of files released, which means that the data transfer rate is used for more logged-in users instead of as many files as possible, which makes the sense of the exchange program ad absurd .

The servers are only used to find initial sources; eMule finds the majority by exchanging sources with other clients. For example, if clients "A" and "B" download the same files, "A" can ask "B" which other clients he knows that are also loading or offering this file. Although this method produces more overhead than receiving the sources from a server, it is now considered to be indispensable.

In addition to server and source exchange, there is a third method of obtaining sources. Since the exchange of sources would no longer function properly if many large servers were to fail (a few sources are needed to be able to exchange information at all), Kademlia was added as a serverless network. There are no longer any special servers; instead, each client is also a server and processes search queries from other clients. The advantage is that the network is no longer dependent on a few server operators, but the additional tasks on each client cost a bit of data transfer rate (usually approx. 1 kB / s for each upload and download). As a rule, Kademlia also finds sources that remain undiscovered via server and source exchange.

LowID

Usually eMule contacts a source directly and asks for a download location; however, this is not possible if the client has a LowID. The ID is usually determined by the server, which after connecting tries to contact the client directly (any client in the Kad network takes over this task). If that fails because the client is behind a firewall or a router, for example , which does not allow the data to pass through the port directly to eMule, it receives a LowID. In this case, contact must be made via an intermediary whose role is the server in the eD2K network and a client that can be contacted, the so-called buddy, in the Kad network. eMule informs the server / buddy that it would like to download from a LowID client, which transmits this information to the connected LowID client, and the latter in turn contacts eMule for the purpose of the actual data transfer.

Since a LowID client cannot be contacted from the outside, LowID clients cannot load from each other. In addition, the mediation via the server / buddy causes load on this, which is why eMule should be accessible from outside if possible. So LowID is not a programmer's invention to punish certain users, but a technical requirement so that these users can even participate in the network.

Some eMule modifications like NeoMule use techniques similar to Skype to get around the technical limitation that LowID clients cannot contact other LowID clients.

User numbers

According to slyck.com , the eDonkey2000 network had just over 3 million users in May 2006. Other sources even gave more than 4.5 million in May 2007.

Since the eMule client was published by SourceForge, the program has been downloaded more than 650 million times from there (as of January 2020) and has long occupied the top position among all open source programs listed on SourceForge.

Client software

The original client for Microsoft Windows is eMule . This has been updated at irregular intervals since 2002.

Modifications and alterations

A distinction must be made between eMule mods and eMule forks :
A mod differs comparatively little from the original, while a fork is a completely independent development that is developed independently of the main eMule code.

There are now an unmanageable number of such mods, also due to the widespread use of eMule. Some of them are optimized for certain sub-areas of the eD2K / KAD network; The ZZUL modification, for example, specializes in the efficient distribution of individual files.

Platform- independent modifications, some of which are based on the latest eMule code, include aMule and xMule. Both can run not only under Windows, but also under other operating systems such as Linux or macOS .

There are also some forks, the most famous of which is eMule Plus . This version is based on the outdated source code of eMule 0.30, but is updated regularly. However, it does not offer support for the serverless Kademlia network.

Malicious mods

The open development of eMule not only attracted programmers eager to make improvements, but also those who want to damage the network or accept that it will be damaged in order to speed up their own download. Starting with modifications that behave unfairly by refusing uploads to other network participants or distributing it unfairly, to commercial modifications that force the user to pay for its use, to modifications that specifically disrupt the network and, for example, defective data distribute, the palette is enough. It has now become a habit to refer to such variations as “ empty ”, regardless of how they damage the network. Many programmers of “benign” mods have made it their task to counteract this by recognizing and blocking users of such “leecher” mods. There are several different approaches to implement this, which are also controversially discussed among the fashion developers themselves.

Web links

Commons : EMule  - collection of images, videos and audio files

Individual evidence

  1. Testing Version 0.51 | New release 0.51d in the eMule forum
  2. eMule Help: FAQ
  3. Link in the offz. eMule forum
  4. Protocol obfuscation for the KAD network from April 23, 2008
  5. Slyck.com ( Memento from April 24, 2006 in the Internet Archive )
  6. Razorback 2 memorial ed2k stats ( Memento of May 8, 2007 in the Internet Archive )
  7. Over 650 million downloads on: sourceforge.net
  8. Explanation of IP filters