# EDonkey2000

eDonkey2000 (abgekürzt auch eD2K) ist zum einen der Name eines Filesharing-Netzes im Internet, zum anderen der Name des ersten Clients für dieses Netz.
Bei eD2K kommen sowohl das Peer-to-Peer-Prinzip als auch das Client-Server-Prinzip zum Einsatz. Die Software, die vom Benutzer zur Teilnahme am Netz installiert wird, nennt man dennoch Client.

## Geschichte

Ursprünglich konnten Internet-Nutzer das Filesharing-Netz nur mit der Software eDonkey2000 des US-Unternehmens MetaMachine nutzen. MetaMachine wurde gegründet von dem Internet-Unternehmer Sam Yagan und dem Programmierer Jed McCaleb. Die zunächst bestehende Trennung zwischen Overnet und eDonkey wurde aufgehoben. 2002 entstand aus Unzufriedenheit mit dem ursprünglichen eDonkey2000-Client das eMule-Projekt, um einen alternativen Client auf Open-Source-Basis zu schaffen. eMule ist jedoch stark an Windows gebunden, weshalb 2003 mit aMule ein leichter zu portierender Client geschaffen wurde. Etwa zu dieser Zeit ging der Trend von vielen Servern mit wenigen Nutzern zu wenigen Servern mit vielen Nutzern. Bedienten im Mai 2002 noch 300 bis 350 Server 200.000 Clients, waren im November 2003 60 Server für 1,5 Millionen Clients zuständig.
Im Oktober 2004 überholte das eDonkey-Netzwerk das von Kazaa genutzte FastTrack-Netzwerk in Hinblick auf die Nutzerzahlen: 70 Server bedienten 2,5 Millionen Clients. Am 14. Mai 2005 wurde die 4-Millionen-Nutzer-Grenze überschritten. Nachdem den Entwicklern der ursprünglichen eDonkey-Software von Seiten der RIAA mit juristischen Mitteln gedroht worden war, stellten diese die Weiterentwicklung wegen fehlenden Geldes für juristische Gegenmaßnahmen zeitweise ein. Im März 2006 verkündete der Erfinder und Entwickler des Netzwerkes Jed McCaleb die Wiederaufnahme der Weiterentwicklung. Zu diesem Zeitpunkt zählte das Netzwerk etwa 3,5 Millionen Nutzer.
Juristische Schritte gab es auch gegen Server-Betreiber. So wurde am 21. Februar 2006 der zu diesem Zeitpunkt größte Server „Razorback 2“ von der belgischen Polizei vom Netz getrennt. Aufgrund der enormen Datenmenge wurden keine Verbindungsdaten auf den Festplatten gespeichert, weshalb jegliche Information des 16 GB großen Arbeitsspeichers beim Abschalten verloren ging. Bereits vor der Abschaltung des Razorback-Servers waren unter gleichem Namen mehrere Fake-Server in Betrieb.
Im Mai 2006 zählte das eDonkey2000-Netzwerk etwa 3,4 Millionen Nutzer.
Am 12. September 2006 wurde der Vertrieb des eDonkey-Clienten eingestellt und die Webseiten von MetaMachine (u. a. www.edonkey2000.com und www.overnet.com) abgeschaltet. Das eDonkey-Netzwerk selbst wurde damit jedoch nicht abgeschaltet. Es ist nach wie vor möglich, mit anderer Clientsoftware das eDonkey-P2P-Netz zu benutzen. So ist der Open-Source-Client eMule bereits seit einigen Jahren mit einem Anteil von über 90 % im eD2K-Netzwerk vertreten und bildet de facto den Standard-Client in diesem Netzwerk.

## eD2K-Links

Mit Hilfe dieser Links kann ein Server in die Server-Liste oder eine Datei in die Download-Liste des Clients aufgenommen werden. Folgende Links zeigen beispielhaft deren Aufbau:
* Datei: ed2k://|file|datei.txt|123|1234567890abcdef1234567890abcdef|
* Server: ed2k://|server|195.245.244.243|4661|

### Linkbestandteile

* ed2k://|file Identifiziert den Link als Protokoll ed2k und als Datei file.
* datei.txt Gibt dem Client den Namen der Datei an. Austauschbar.
* 123 Gibt die Größe der Datei in Byte an.
* 1234567890abcdef1234567890abcdef Gibt den Hash-Wert an, um die Datei zu identifizieren. Bei Dateien, die größer/gleich als ein sogenanntes „Chunk“ sind, ist es der übergreifende MD4-Hash aus allen aneinandergehängten MD4-Einzelhashes, welche aus je einem Chunk zu ungefähr 9,28 MiB (exakt 9500 KiB bzw. 9728000 Bytes) Daten errechnet werden (dabei wird ein leeres Chunk in dem Falle angehängt, in dem die Datei genau eine Chunk-Größe hat). Bei Dateien, die kleiner als eine Chunk-Größe sind, wird einfach der MD4-Hash der Datei verwendet.
eD2K-Nutzer können solche eD2K-Links an andere Nutzer weitergeben; der Link verweist immer auf die gleiche Datei (wobei der Dateiname keine Rolle spielt, lediglich Größe und Hash-Wert sind entscheidend). Daher sind zu ein und derselben Datei auch oftmals mehrere Dateinamen im Umlauf, manche Clients können dem Benutzer eine Liste der im Netz gefundenen Dateinamen anzeigen, so dass der Benutzer einen dieser Dateinamen auswählen kann.

## Verbindungsvarianten
### Client-Server

Der Client versucht, eine Verbindung zu einem Server aufzubauen. Die Server-Software ist ein eigens für diesen Zweck geschriebenes Programm. Grundsätzlich kann jeder Internet-Benutzer einen eD2K-Server zur Verfügung stellen, dies ist allerdings für Benutzer mit Internetanbindungen unter 2 MBit/Sek wegen der hohen Netzwerkbelastung nicht sinnvoll.
Die Betreiber von eD2K-Servern sind davon abgewichen, die originale Server-Software zu benutzen. Stattdessen kommt andere Software, der Lugdunum-eserver oder der satan-edonkey-server zum Einsatz. Dadurch konnten beispielsweise die Nutzerzahlen pro Server bei gleich gebliebenen Bandbreiten- sowie Hardwareanforderungen erheblich gesteigert werden.
Im Wesentlichen findet folgende Kommunikation zwischen Client und Server statt:
* Der Client übermittelt die Informationen über seine freigegebenen Dateien (Shares) an einen Server, der diese indiziert.
* Der Client möchte eine Datei suchen und übermittelt einen Teil eines Dateinamens (einige andere Eigenschaften wie Dateigröße sind ebenfalls möglich) an einen oder mehrere Server. Die angefragten Server durchsuchen ihre Indizes und schicken die entsprechenden eD2K-Links zurück.
* Der Client fragt regelmäßig alle bekannten Server ab, welche Clients die Dateien freigeben, die er herunterladen möchte. Die Server schauen in ihren Indizes nach und senden IP-Adressen und Ports dieser Clients zurück.
Die Server verwalten also nur einen Index der freigegebenen Dateien und der dazugehörigen Client-Adressen. Ein Server speichert und verschickt keine Dateien, sondern lediglich deren Metadaten.

### Serverlos

Da die Netzlast der Server mit zunehmender Beliebtheit des eD2K-Netzwerks immer weiter steigt, wurden verschiedene Konzepte entwickelt, die Server zu entlasten. Inzwischen sind die meisten Clients in der Lage, ihren Datenverkehr mit dem Server mit Hilfe der zlib-Bibliothek zu komprimieren und so Datenübertragungsrate auf Kosten von CPU-Zeit einzusparen. Der wohl radikalste Ansatz war aber derjenige, das eDonkey-Netz zu einem serverlosen Netz umzubauen. Der ursprüngliche eD2K-Entwickler baute dazu zunächst einen neuen Client (Overnet), der völlig ohne Server mit Hilfe des Kademlia-Algorithmus operierte. Sobald man einmal mit einem anderen Overnet-Client verbunden ist, erhält man eine Liste mit Clients, die man auf der Suche nach einer bestimmten Datei fragen kann. Wenn ein Client die Datei nicht hat (übrigens der Regelfall), „weiß“ er zumindest, welcher andere Client der Datei topologisch näher ist und „weiterhelfen“ kann. Overnet funktionierte gut, litt aber daran, dass die Suche nach Dateien sehr langsam vonstattenging und ein signifikanter Teil der Bandbreite des Clients als Overhead für die Suche verloren ging. Man kam daher vom Ansatz, eDonkey komplett serverlos zu machen, wieder ab. Ziel war nun nicht mehr, die Server komplett abzuschaffen, sondern parallel zur servergestützten Suche auch serverlos zu suchen und so die Server zu entlasten. Diese Funktionalität wurde zuerst in den originalen eDonkey-Client integriert, der dadurch zum eDonkey-Hybridclient wurde.
Auch das Entwicklerteam des beliebtesten Clients eMule hat inzwischen einen Hybridclient entwickelt, der mit dem Versionssprung auf 0.40 den alten, ausschließlich serverbasierten Client ersetzte; die eMule-Implementation des Kademlia-Algorithmus unterscheidet sich allerdings etwas von der des eDonkey-Clients.

### Peer-to-Peer

Sobald ein Client vom Server über andere Clients informiert wurde, versucht er sich mit diesen zu verbinden. Im Folgenden werden die Clients Peers genannt, da sie gleichgestellt sind und der eD2K-Server in diesem Teil der Datenübertragung keine Rolle mehr spielt.
Ein Peer hat eine begrenzte Anzahl von Upload-Plätzen (Slots). Jeder Peer, der bei einem anderen Peer eine Datei anfordert, belegt einen Slot bei diesem. Sind alle Slots belegt, kommen die Peers in eine Warteliste (Queue) und müssen warten, bis sie dran sind.
Die Peers können eine Datei von mehreren Quellen gleichzeitig herunterladen und somit die Download-Zeit verkürzen. Gleichzeitig können sie die fertigen Teile (Chunks) ihrer noch laufenden Downloads bereits an andere Peers verschicken.

## Kleine Auswahl an eD2K-Clients

* eMule ist der aktuell meistgenutzte eD2K-Client. Er wurde ursprünglich nur für Windows entwickelt und bringt einige Erweiterungen zum eD2K-Netzwerkprotokoll mit sich (z. B. Kreditsystem, Webinterface, Quellenaustausch), welche in andere ed2k-Clients einflossen. Für eMule existieren viele EMule-Mod genannte Forks. Mittlerweile existieren mit aMule und xMule auch Portierungen für Unix-basierende Systeme. eMule kann seit der Version 0.40 außerdem zusätzlich oder ausschließlich serverlos über den Kademlia-Algorithmus mit dem eD2K-Netzwerk verbunden werden.
* MLDonkey wird in erster Linie für Linux entwickelt, es existieren aber auch Versionen für Darwin, FreeBSD, MorphOS, Solaris und Windows. Es nutzt neben dem eD2K-Protokoll auch die FastTrack-, OpenNap-, Direct-Connect-, BitTorrent- und viele andere Protokolle.
* Shareaza ist ebenfalls ein Hybrid-Client, der sich neben dem eD2K-Protokoll auch dem Gnutella-, Gnutella2- und dem BitTorrent-Protokoll gegenüber verständlich zeigt.
* Lphant wird primär für Windows entwickelt, es gibt allerdings auch eine Kommandozeilenversion, die neben Windows auch noch Linux und MacOS unterstützt. Lphant unterstützt außerdem Webcache.

## Addons

Folgende Addons gibt es für Firefox:
* Copy ed2k Links
* eMule Web One-click
* Torrent Server Handler
* FireMule

## Rechtliches

Spiegel Online meldete am 23. Mai 2006, dass tags zuvor „völlig überraschend […] Fahnder gegen Tausende deutsche eDonkey-Nutzer losgeschlagen“ hätten. Zu dieser Meldung war nie wieder etwas zu vernehmen, keine Verfahren wurden bekannt.
Am 12. September 2006 wurde der Vertrieb des eDonkey-Clients eingestellt und die Webseiten von MetaMachine (u. a. www.edonkey2000.com und www.overnet.com) abgeschaltet. Des Weiteren erklärte sich Metamachine bereit, 30 Millionen Dollar an die RIAA zu zahlen, um einen Rechtsstreit zu vermeiden.

### Rechtliche Lage bei eDonkey-Links

Mit Beschluss vom 15. Juli 2005 hatte das Landgericht Hamburg über die Zulässigkeit von eDonkey-Links auf urheberrechtlich geschütztes Material auf einer Website im Rahmen eines Verfahrens im einstweiligen Rechtsschutz zu befinden. Das Gericht war hier der Auffassung, dass sowohl der Seitenbetreiber als auch der Serverinhaber als Störer im Rahmen eines urheberrechtlichen Unterlassungsanspruchs herangezogen werden könnten.
Unproblematisch ist das Setzen von eDonkey-Links natürlich dann, wenn der Urheber damit einverstanden ist. Es kann für Urheber durchaus sinnvoll sein, Werke über Tauschbörsen anzubieten, statt dafür Speicherplatz auf einem Webserver anzumieten. Dabei ist für den Nutzer zu beachten: Dass ein Werk mit Zustimmung des Urhebers unter einem eDonkey-Link erreichbar ist, bedeutet nicht zwingend, dass das Werk gemeinfrei geworden ist. Es bedeutet lediglich, dass der Urheber mit der Verbreitung im eDonkey2000-Netz einverstanden ist. Für die Verbreitung in anderen Netzen braucht man weiterhin die explizite Zustimmung des Urhebers.

## Manipulierende Server

Im eD2K-Netz sind auch Server aktiv, die den Nutzer zu täuschen versuchen. Ein simpler Ansatz ist die Imitation eines bekannten eD2K-Servers, indem dessen Name angenommen wird. Zwar unterscheidet sich die IP-Adresse, diese wird jedoch von den meisten Nutzern nicht beachtet. Gibt der Server eine gefälschte Anzahl von aktiven Nutzern und indizierten Dateien aus, lockt er durch die höhere Attraktivität Nutzer an.
Der Betreiber des Servers hat nun die Möglichkeit, Dateianfragen mitzuschreiben, zu filtern und zu fälschen. Dies kann über Dateitypen, Schlüsselwörter oder über Hash-Wert und Dateigröße geschehen. So versuchen etwa einige Server, Nutzer zum Download von Malware zu verleiten, indem sie jede Suchanfrage beantworten und der Malware einen zum gesuchten Begriff passenden Namen geben.
Einige Nutzer vermuten, dass Manipulationen teils im Auftrag einer Interessengemeinschaft der Film- oder Musikindustrie geschehen, zum Beispiel der RIAA, die auf diesem Weg dem Netzwerk schaden und Informationen über urheberrechtsverletzende Aktivitäten bekommen kann.