EMule

In computing, eMule is a peer to peer file sharing application that works with both eDonkey and Kad Network and has more features than the eDonkey client. eMule is open source software released under the GNU General Public License. eMule runs on Microsoft Windows; however, its codebase forms the basis for a Linux client, xMule, and a multiplatform client, aMule.

The distinguishing features of eMule are the direct exchange of sources between client nodes, fast recovery of corrupted downloads, and the use of a credit system to reward frequent uploaders. Furthermore eMule transmits data in (Zlib-)compressed form to save bandwidth. Another feature of eMule is the ability to accept "ed2k" links from a web browser and begin downloading the file(s) these links refer to. These links ensure that the file being downloaded shares the same hash, and therefore is not a "fake". Recently, many of the sites which provide these links have been taken offline by authorities due to accusations of copyright infringement, as well as a questionable legality of the links they provide. Matching file sources is verified through the use of the MD4 algorithm.

eMule is coded in Visual C++ .NET using the Microsoft Foundation Classes and because it is a popular open-source program, hundreds of eMule mods (modifications of the original eMule) have appeared on the Internet.

History

The eMule project was started on May 13, 2002 by Hendrik Breitkreuz (a.k.a. Merkur) who was dissatisfied by the original eDonkey2000 client. Over time 7 more developers joined the effort. The source was first released at version 0.02 and it was published on SourceForge on July 6, 2002. It was first released as a binary on August 4, 2002 at version 0.05a. The "Credit System" was implemented for the first time on September 14, 2002 in version 0.19a. The eMule project website started up on December 8, 2003. Since its inception, eMule has been downloaded by over 85 million people.

Currently the project is staffed by 16 people: 2 developers, 2 project managers (including the founder Breitkreuz), 3 testers, 9 debug testers. The official web site is supported by 7 web developers and 4 moderators.

Recent events

Recent versions (v0.40+) of eMule have added support for the Kad Network. This network has an implementation of the Kademlia protocol, which does not rely on central servers as the eDonkey network does.

Also added in recent versions were "Unicode Search" (allowing for searches for files in non-Latin alphabets) and the ability (not supported in Kad Network) to search servers for files with complete sources of unfinished files.

In new versions, a "Bad source list" was added. The application adds an IP address to this list after one unsuccessful connection. After adding an IP to the "Bad source list", the application treats this IP as a "dead" IP. Unavailable IPs are banned for a time period from 15 to 45 minutes. Some users have complained that it leads to a loss of active sources and subsequently slows download speed.

Other recent additions include: the ability to run eMule from a user account with limited privileges (thus enhancing security), and intelligent corruption handling (so that a corrupted chunk, 9.28 MB in size, does not need to be re-downloaded entirely).

The 0.46b version added the creation and management of "collection" files, which contain a set of links to files intended to be downloaded as a set.

eMule is now considered a stable product, and new versions are not released as often as they used to be - 2 to 3 months is now a typical time interval between releases.

It is recommended to change the default ports of eMule to higher numbers (for example 20000 instead of 4662), because recently many ISPs are throttling default P2P ports resulting in slow performance.

Network and file sharing issues

Basic concepts

File identification

All files are given a hash value that depends on the file's contents, but not its filename. This allows each user to find all sources to a particular file no matter what file name each user has given the file.

Files are broken into "chunks" of 9.28 MB each (the last chunk may be smaller if the file size is not exactly divisible by the chunk size). A file's hash value is computed by first computing the MD4 checksum of each chunk, and then computing the MD4 checksum of the string of those chunks' checksums concatenated with each other.

Identifying other clients

Like the file hash, each user in the network gets a unique and permanent user hash. This user identification is highly secured by a public / private key handshake to prevent misuse.

Downloading data

After determining sources for a file (i.e. other clients who are sharing that file), a client contacts each of those sources to request the file. Each client maintains a "download queue" of other clients who are requesting files for download. Once a client reaches the top of such a queue, the clients contact each other and transfer begins. Clients usually request the chunk that fewest other sources have to aid distribution of the file through the network; otherwise rare chunks may generate a bottleneck. If a client already has most of a chunk, however, it may choose to request the rest of that chunk first because only complete chunks can be shared.

Compression

Before sending data eMule attempts to compress the data with [zlib] set at maximum compression. Then it chooses the smaller set of data to transmit. For already compressed files this is likely to be the raw file, while uncompressed files are likely to result in zlib compressed data to be transmitted.

Classic server based eD2k

(eD2k :EDonkey network)

Connecting to the network

The key to this network is the eD2k server. Each client must be connected to a server to enter the network. When connecting your client to a server, the server checks to see if other clients can freely connect to your client. If yes, the server assigns your client a so-called high ID. If communication is blocked, the server assigns your client a low ID. After the ID is assigned, eMule will send a list of all shared files to the server. The server adds the filenames and hash values you sent to its database.

Searching for files

Once connected to the network, the client can search for keywords in filenames. A search can either be local or global. If it’s a local search (searches only the server you are connected to), searches are quicker but will have fewer results. If the search is a global search (searches all the servers within the network), it will take longer but have more results. Each server looks up the keyword in its local database and returns any file names (with the hash value) that matches the keyword.

Note that there are fake servers in the network that do not return any results for certain type of searches (e.g. mp3 files)

Finding sources for files

Downloads can be added by eMule’s search function or a special eD2k link format offered on many websites. Once they are in the Download list, eMule first queries the local (connected) server then all other servers in the network for sources to that particular download. The server looks up the file’s hash value in its database and returns the clients it knows for having it. Sources are other clients who have at least downloaded one entire part (9.28 MB) of the file matching the hash.

Kad serverless network

(based on Kademlia protocol)

Connecting to the network

The only thing needed to connect to this network is the IP and port of any eMule client already connected. This is called a Boot Strap. Once a client is in the network, the client then requests for other clients to determine if it can be contacted freely. This process is very similar to the HighID/LowID check on the servers. If you can be freely contacted, you are assigned an ID (similar to a HighID) and given an open status. If you are not freely contacted, you are given a firewalled status. From version v.44a on, the Kad network supports a Buddy for firewalled users. Buddies are other Kad clients who have status open and work as a relay for connections, that the firewalled user cannot manage.

Searching in Kad

In this network it does not matter what you search for. Be it a search for filenames, for sources of a download or for other users, all work pretty much the same. There are no servers to keep track of clients and the files they share so it has to be done by each participating client in the network – in essence, every client is also a small server. Since every client is identified by a unique hash value, the idea of Kademlia is to associate a certain “responsibility” based on this hash. Each client in the Kad network works as a server for certain keywords or sources. The clients hash determines the specific keywords or sources. So the goal of any kind of search is to find those clients that have the responsibility for the current search topic. This is accomplished by a complex calculation of the possible distance to the target client by asking other clients for the shortest route to it.

Basic rules of communication behavior

eMule and other programs on eDonkey network support the network in two basic ways:

1) Users are forced to share files: Shared files larger than 9500 KB are divided and downloaded in parts, so that a recipient starts to share the parts of the file already downloaded even before the download of the whole file is complete. The recipient is forced to share in this way until the download is complete.

2) Users are forced to share their bandwidth, thus increasing network's data stream: The official version of eMule forces the users to set their maximum download speed to no more than four times their maximum upload speed. This limitation does not apply if the maximum upload speed is set to 10K per second or more.

Although there are many mods of eMule, it is hard to find one that doesn't enforce the second feature, which is a part of official eMule policy. Furthermore, attempting to circumvent the uploading feature can possibly slow a user's download, as he will get worse credits from uploaders. Also, many known "leecher" clients are often banned from the downloading through various means by eMule's mods (banning is not supported in official version).

eMule includes a feature that limits download and upload speeds, so that they do not exceed the limits set by the user.

eMule versions before 0.47a cannot share files larger than about 4 GB. This was an inherent limitation of the ed2k protocol. With the release of 0.47a, this limit was raised to 256GB, but only for clients supporting it (currently just eMule and aMule).

Summary

Both networks have totally different concepts for achieving the same: Searching for files and finding sources to a file. The main goal of the Kad network is to be independent of servers and improve scalability. Servers can only handle a certain amount of users and should a large server go down the network is severely handicapped. Kad network is self-organising and tunes itself for best possible performance depending on the number of users and their connection qualities. Therefore, it is more resistant to a large-scale network loss. Some servers also limit the number of files that can be shared by any particular user. This limitation doesn't exist in Kad network, therefore this network is more suitable for users that share big collections of files.

eMule mods

As a popular open source program, eMule has many variants, usually called mods. Some mods started as a fork of a eMule code, and then continued to develop independently of the official version. A popular mod of this type is eMule Plus. It does not have Kademlia protocol implemented, but proponents of this mod credit it for a better GUI and an ability to achieve better download speeds than the official version. Other mods follow official eMule releases, and make their own releases based on each new release of the official version. Often features first debuted in a mod later find their way into the official version.

Credit system

Introduction

The credit system is used to reward users contributing to the network, i.e. uploading to other clients.

The strict queue system in eMule is based on the waiting time a user has spent in the queue. The credit system provides a major modifier to this waiting time by taking the upload and download between the two clients into consideration. The more a user uploads to a client the faster he advances in this client's queue.

The modifiers are calculated from the amount of transferred data between the two clients. The values used can be seen in the client's details dialog. To view this information, right click on any user and choose View Details.

Credit calculation

A user's position in other clients' queues depends on various factors, including the time they have been waiting in the queue, the upload priority for the requested file, and the user's credit. These factors are all expressed in an integer value, and their total gives a "score" which is used to rank the users in the queue.

The credit is calculated in the following way:

  • If the client has ever uploaded less than 1 MB, the credit value is 1.
  • If the client has uploaded more than 1 MB, but never downloaded anything, the credit value is 10.
  • Otherwise:
    • Calculate the following value: total uploaded data × 2 / total downloaded data.
    • Calculate the following value: Square root of total uploaded data + 2.
    • Out of those two values, choose the one that is lower. Call it x.
    • If x is less than 1, the credit value is 1. If x is greater than 10, the credit value is 10. Otherwise, the credit value is x.

Notes

  • All Clients uploading to you are rewarded by the credit system. It does not matter if the client supports the credit system or not.
  • Not supporting clients will grant you no credits when you upload to them.
  • Credits are not global. They are exchanged between two specific clients
  • Credits are stored in the clients.met file. The unique user hash is used to identify the client.
  • Your own credits are saved by the client who owes you the credit. This prevents faking the credits.
  • Your own credits cannot be displayed

Colors of the Progress Bar

Each download in the Transfers tab has a coloured bar to show current file availability and progress.

Basic Styles

(flat style)

(shaded style)

Black shows the parts of the file you already have.

Red indicates a part missing in all known sources.

Different shades of blue represent the availability of this part in the sources. The darker the blue, the more sources have this part.

Yellow denotes a part being downloaded.

The green bar on top shows the total download progress of this file

(flat style)

(shaded style)

A green bar stands for a completed download.

(flat style)

(shaded style)

A dark red or blue progress bar denotes a stopped or paused download.

Download Bar

If you expand the download you see each of its sources with their corresponding bar. To see the sources just double-click a download (or single click, depends on the settings in Options -> Display ). Here the colours have a slightly different meaning:

(flat style)

(shaded style)

Black indicates parts you already have

Blue are parts you still need for this download

Silver stands for parts this source is also missing

Green parts are currently downloading

Yellow denotes a pending (already requested) part

Source Count

The four values xx/yy+aa (zz) displayed after the progress bar is the source count for this file and shows following information.

• xx - Number of useful sources

• yy - Total number of sources

• + aa - Number of Asked for another file sources (only shown when Advanced Controls is enabled)

• zz - Currently transferring sources excellent

Obtained Parts

This bar appears in the upload queue if supported by the other client. It shows the progress of the file this user is downloading.

Black are parts this user has already completed

Silver ones are parts still missing

Green parts are currently uploading

Yellow denotes a pending (already requested) part

Availability of shared files

Each shared file shows its availability in the form of a bar. The color coding is similar to the one used with the progress bar

Red indicates a part missing in all known sources

Different shades of blue give an idea how well-spread different parts are

Network status

(data for eDonkey network)

  • Number of concurrent users : 3 - 5 million (correct number is unknown since many new servers are faking their number of users. latest users statistics can be found at : Slyck.com).
  • Number of concurrent shared files: ~600 million.

This page about emule includes information from a Wikipedia article.
Additional articles about emule
News stories about emule
External links for emule
Videos for emule
Wikis about emule
Discussion Groups about emule
Blogs about emule
Images of emule

(data for eDonkey network). When the eggs hatch, the newborn nymphs drop to the ground, where they burrow and start another cycle. Different shades of blue give an idea how well-spread different parts are. She may do so repeatedly, until she has laid several hundred eggs. Red indicates a part missing in all known sources. After mating, the female cuts slits into the bark of a twig and deposits her eggs there. The color coding is similar to the one used with the progress bar. Only the males have tymbals and "sing" to attract females.

Each shared file shows its availability in the form of a bar. When they molt, they shed their skins, and the abandonded skins can often be found left on trees, still clinging to the bark. Yellow denotes a pending (already requested) part. On a nearby plant, they molt one last time and emerge as an adult. Green parts are currently uploading. In the final nymphal instar, they construct an exit tunnel to the surface and emerge. Silver ones are parts still missing. The nymphs feed on root juices and have strong front legs for digging.

Black are parts this user has already completed. Most of this time, the animals spend underground as nymphs at depths ranging from about 30 cm (1 ft) up to 2.5 m (about 8½ ft). It shows the progress of the file this user is downloading. the Magicicada goes through a 13- or even 17-year life cycle. This bar appears in the upload queue if supported by the other client. Some species have much longer life cycles, e.g. • zz - Currently transferring sources excellent. Most cicadas go through a life cycle that lasts between two to five years.

• + aa - Number of Asked for another file sources (only shown when Advanced Controls is enabled). The fact that only males produce the cicadas' distinctive sound prompted Xenophon to remark "Blessed are the cicadas, for they have voiceless wives.". • yy - Total number of sources. (This amazing sound has frequently inspired haiku poets in Japan to write about them.) They modulate their noise by wiggling their abdomens toward and away from the tree that they are on. • xx - Number of useful sources. Some cicadas produce sounds louder than 100 dB. The four values xx/yy+aa (zz) displayed after the progress bar is the source count for this file and shows following information. Their "singing" is actually a kind of stridulation: they vibrate these membranes with strong muscles; their body serves as a resonance body greatly amplifying the sound.

Yellow denotes a pending (already requested) part. Male cicadas have loud noisemakers called "tymbals" on their sides. Green parts are currently downloading. Cicadas are also one of the only insects known to cool themselves by sweating. Silver stands for parts this source is also missing. Cicadas have prominent eyes set wide apart on the sides of the head, short antennae protruding between or in front of the eyes, and membranous front wings. Blue are parts you still need for this download. the Pomponia imperatoria from Malaysia.

Black indicates parts you already have. Adult cicadas, sometimes called imagines, are usually between 2 and 5 cm (1 to 2 inches) long, although there are some tropical species that reach 15 cm (6 in), e.g. (shaded style). 38 species from 5 genera populate New Zealand, and all of the species are endemic to New Zealand and the surrounding islands (Norfolk Island, New Caledonia). (flat style). Another American species is the Apache Cicada (Diceroprocta apache). Here the colours have a slightly different meaning:. These periodical cicadas have an extremely long life cycle of 13 or 17 years and emerge in large numbers.

To see the sources just double-click a download (or single click, depends on the settings in Options -> Display ). The best-known North-American genus is Magicicada, however. If you expand the download you see each of its sources with their corresponding bar. Most of the North American species are in the genus Tibicen—the annual or dog-day cicadas (named after the "Dog Days" because they emerge in late July and August). A dark red or blue progress bar denotes a stopped or paused download. There are some 200 species in 38 genera in Australia, about 100 in the Palaearctic and exactly one species in England, the New Forest Cicada (Melampsalta montana), which is widely distributed throughout Europe, where about 2,000 species are known (some 600 in Germany alone). (shaded style). The largest cicadas are in the genera Pomponia and Tacua.

(flat style). There are many thousands of species of cicadas. A green bar stands for a completed download. . (shaded style). Cicadas live in temperate to tropical climates. (flat style). A cicada is any of several insects of the order Hemiptera, suborder Homoptera, with small eyes wide apart on the head and transparent well-veined wings.

The green bar on top shows the total download progress of this file. Yellow denotes a part being downloaded. The darker the blue, the more sources have this part. Different shades of blue represent the availability of this part in the sources.

Red indicates a part missing in all known sources. Black shows the parts of the file you already have. (shaded style). (flat style).

Each download in the Transfers tab has a coloured bar to show current file availability and progress. The credit is calculated in the following way:. These factors are all expressed in an integer value, and their total gives a "score" which is used to rank the users in the queue. A user's position in other clients' queues depends on various factors, including the time they have been waiting in the queue, the upload priority for the requested file, and the user's credit.

To view this information, right click on any user and choose View Details. The values used can be seen in the client's details dialog. The modifiers are calculated from the amount of transferred data between the two clients. The more a user uploads to a client the faster he advances in this client's queue.

The credit system provides a major modifier to this waiting time by taking the upload and download between the two clients into consideration. The strict queue system in eMule is based on the waiting time a user has spent in the queue. uploading to other clients. The credit system is used to reward users contributing to the network, i.e.

Often features first debuted in a mod later find their way into the official version. Other mods follow official eMule releases, and make their own releases based on each new release of the official version. It does not have Kademlia protocol implemented, but proponents of this mod credit it for a better GUI and an ability to achieve better download speeds than the official version. A popular mod of this type is eMule Plus.

Some mods started as a fork of a eMule code, and then continued to develop independently of the official version. As a popular open source program, eMule has many variants, usually called mods. This limitation doesn't exist in Kad network, therefore this network is more suitable for users that share big collections of files. Some servers also limit the number of files that can be shared by any particular user.

Therefore, it is more resistant to a large-scale network loss. Kad network is self-organising and tunes itself for best possible performance depending on the number of users and their connection qualities. Servers can only handle a certain amount of users and should a large server go down the network is severely handicapped. The main goal of the Kad network is to be independent of servers and improve scalability.

Both networks have totally different concepts for achieving the same: Searching for files and finding sources to a file. With the release of 0.47a, this limit was raised to 256GB, but only for clients supporting it (currently just eMule and aMule). This was an inherent limitation of the ed2k protocol. eMule versions before 0.47a cannot share files larger than about 4 GB.

eMule includes a feature that limits download and upload speeds, so that they do not exceed the limits set by the user. Also, many known "leecher" clients are often banned from the downloading through various means by eMule's mods (banning is not supported in official version). Furthermore, attempting to circumvent the uploading feature can possibly slow a user's download, as he will get worse credits from uploaders. Although there are many mods of eMule, it is hard to find one that doesn't enforce the second feature, which is a part of official eMule policy.

This limitation does not apply if the maximum upload speed is set to 10K per second or more. 2) Users are forced to share their bandwidth, thus increasing network's data stream: The official version of eMule forces the users to set their maximum download speed to no more than four times their maximum upload speed. The recipient is forced to share in this way until the download is complete. 1) Users are forced to share files: Shared files larger than 9500 KB are divided and downloaded in parts, so that a recipient starts to share the parts of the file already downloaded even before the download of the whole file is complete.

eMule and other programs on eDonkey network support the network in two basic ways:. This is accomplished by a complex calculation of the possible distance to the target client by asking other clients for the shortest route to it. So the goal of any kind of search is to find those clients that have the responsibility for the current search topic. The clients hash determines the specific keywords or sources.

Each client in the Kad network works as a server for certain keywords or sources. Since every client is identified by a unique hash value, the idea of Kademlia is to associate a certain “responsibility” based on this hash. There are no servers to keep track of clients and the files they share so it has to be done by each participating client in the network – in essence, every client is also a small server. Be it a search for filenames, for sources of a download or for other users, all work pretty much the same.

In this network it does not matter what you search for. Buddies are other Kad clients who have status open and work as a relay for connections, that the firewalled user cannot manage. From version v.44a on, the Kad network supports a Buddy for firewalled users. If you are not freely contacted, you are given a firewalled status.

If you can be freely contacted, you are assigned an ID (similar to a HighID) and given an open status. This process is very similar to the HighID/LowID check on the servers. Once a client is in the network, the client then requests for other clients to determine if it can be contacted freely. This is called a Boot Strap.

The only thing needed to connect to this network is the IP and port of any eMule client already connected. (based on Kademlia protocol). Sources are other clients who have at least downloaded one entire part (9.28 MB) of the file matching the hash. The server looks up the file’s hash value in its database and returns the clients it knows for having it.

Once they are in the Download list, eMule first queries the local (connected) server then all other servers in the network for sources to that particular download. Downloads can be added by eMule’s search function or a special eD2k link format offered on many websites. mp3 files). Note that there are fake servers in the network that do not return any results for certain type of searches (e.g.

Each server looks up the keyword in its local database and returns any file names (with the hash value) that matches the keyword. If the search is a global search (searches all the servers within the network), it will take longer but have more results. If it’s a local search (searches only the server you are connected to), searches are quicker but will have fewer results. A search can either be local or global.

Once connected to the network, the client can search for keywords in filenames. The server adds the filenames and hash values you sent to its database. After the ID is assigned, eMule will send a list of all shared files to the server. If communication is blocked, the server assigns your client a low ID.

If yes, the server assigns your client a so-called high ID. When connecting your client to a server, the server checks to see if other clients can freely connect to your client. Each client must be connected to a server to enter the network. The key to this network is the eD2k server.

(eD2k :EDonkey network). For already compressed files this is likely to be the raw file, while uncompressed files are likely to result in zlib compressed data to be transmitted. Then it chooses the smaller set of data to transmit. Before sending data eMule attempts to compress the data with [zlib] set at maximum compression.

If a client already has most of a chunk, however, it may choose to request the rest of that chunk first because only complete chunks can be shared. Clients usually request the chunk that fewest other sources have to aid distribution of the file through the network; otherwise rare chunks may generate a bottleneck. Once a client reaches the top of such a queue, the clients contact each other and transfer begins. Each client maintains a "download queue" of other clients who are requesting files for download.

other clients who are sharing that file), a client contacts each of those sources to request the file. After determining sources for a file (i.e. This user identification is highly secured by a public / private key handshake to prevent misuse. Like the file hash, each user in the network gets a unique and permanent user hash.

A file's hash value is computed by first computing the MD4 checksum of each chunk, and then computing the MD4 checksum of the string of those chunks' checksums concatenated with each other. Files are broken into "chunks" of 9.28 MB each (the last chunk may be smaller if the file size is not exactly divisible by the chunk size). This allows each user to find all sources to a particular file no matter what file name each user has given the file. All files are given a hash value that depends on the file's contents, but not its filename.

It is recommended to change the default ports of eMule to higher numbers (for example 20000 instead of 4662), because recently many ISPs are throttling default P2P ports resulting in slow performance. eMule is now considered a stable product, and new versions are not released as often as they used to be - 2 to 3 months is now a typical time interval between releases. The 0.46b version added the creation and management of "collection" files, which contain a set of links to files intended to be downloaded as a set. Other recent additions include: the ability to run eMule from a user account with limited privileges (thus enhancing security), and intelligent corruption handling (so that a corrupted chunk, 9.28 MB in size, does not need to be re-downloaded entirely).

Some users have complained that it leads to a loss of active sources and subsequently slows download speed. Unavailable IPs are banned for a time period from 15 to 45 minutes. After adding an IP to the "Bad source list", the application treats this IP as a "dead" IP. The application adds an IP address to this list after one unsuccessful connection.

In new versions, a "Bad source list" was added. Also added in recent versions were "Unicode Search" (allowing for searches for files in non-Latin alphabets) and the ability (not supported in Kad Network) to search servers for files with complete sources of unfinished files. This network has an implementation of the Kademlia protocol, which does not rely on central servers as the eDonkey network does. Recent versions (v0.40+) of eMule have added support for the Kad Network.

The official web site is supported by 7 web developers and 4 moderators. Currently the project is staffed by 16 people: 2 developers, 2 project managers (including the founder Breitkreuz), 3 testers, 9 debug testers. Since its inception, eMule has been downloaded by over 85 million people. The eMule project website started up on December 8, 2003.

The "Credit System" was implemented for the first time on September 14, 2002 in version 0.19a. It was first released as a binary on August 4, 2002 at version 0.05a. The source was first released at version 0.02 and it was published on SourceForge on July 6, 2002. Over time 7 more developers joined the effort.

Merkur) who was dissatisfied by the original eDonkey2000 client. The eMule project was started on May 13, 2002 by Hendrik Breitkreuz (a.k.a. . eMule is coded in Visual C++ .NET using the Microsoft Foundation Classes and because it is a popular open-source program, hundreds of eMule mods (modifications of the original eMule) have appeared on the Internet.

Matching file sources is verified through the use of the MD4 algorithm. Recently, many of the sites which provide these links have been taken offline by authorities due to accusations of copyright infringement, as well as a questionable legality of the links they provide. These links ensure that the file being downloaded shares the same hash, and therefore is not a "fake". Another feature of eMule is the ability to accept "ed2k" links from a web browser and begin downloading the file(s) these links refer to.

Furthermore eMule transmits data in (Zlib-)compressed form to save bandwidth. The distinguishing features of eMule are the direct exchange of sources between client nodes, fast recovery of corrupted downloads, and the use of a credit system to reward frequent uploaders. eMule runs on Microsoft Windows; however, its codebase forms the basis for a Linux client, xMule, and a multiplatform client, aMule. eMule is open source software released under the GNU General Public License.

In computing, eMule is a peer to peer file sharing application that works with both eDonkey and Kad Network and has more features than the eDonkey client. Number of concurrent shared files: ~600 million. latest users statistics can be found at : Slyck.com). Number of concurrent users : 3 - 5 million (correct number is unknown since many new servers are faking their number of users.

Your own credits cannot be displayed. This prevents faking the credits. Your own credits are saved by the client who owes you the credit. The unique user hash is used to identify the client.

Credits are stored in the clients.met file. They are exchanged between two specific clients. Credits are not global. Not supporting clients will grant you no credits when you upload to them.

It does not matter if the client supports the credit system or not. All Clients uploading to you are rewarded by the credit system. Otherwise, the credit value is x. If x is greater than 10, the credit value is 10.

If x is less than 1, the credit value is 1. Call it x. Out of those two values, choose the one that is lower. Calculate the following value: Square root of total uploaded data + 2.

Calculate the following value: total uploaded data × 2 / total downloaded data. Otherwise:

    . If the client has uploaded more than 1 MB, but never downloaded anything, the credit value is 10. If the client has ever uploaded less than 1 MB, the credit value is 1.