eMule è un software applicativo open source dedicato alla condivisione dei file basato sul peer-to-peer e scritto in linguaggio C++ per il sistema operativo Microsoft Windows; OSX e Linux.
Utilizza i network peer-to-peer, eDonkey e Kad, quest'ultimo basato su un'implementazione del protocollo di rete Kademlia. Ha tra i suoi punti di forza la semplicità e la pulizia dell'interfaccia grafica, la disponibilità in più di quaranta diverse lingue, una vasta ed attiva comunità di utenti che mantengono vivo il progetto. Al 21 marzo 2017 eMule risulta essere stato scaricato volte, posizionandosi come quinto applicativo più scaricato da SourceForge.
Nome Il nome venne scelto poiché sottolinea la somiglianza con il programma eDonkey. Infatti il termine inglese donkey significa asino, mentre il termine inglese mule significa mulo (la e iniziale di eDonkey ed eMule indica il termine inglese electronic, ovvero elettronico).
Storia La nascita
Il progetto eMule nasce il 13 maggio 2002 grazie al programmatore tedesco Hendrik Breitkreuz, conosciuto come Merkur, insoddisfatto del client eDonkey. Merkur radunò intorno a sé altri sviluppatori con lo scopo di creare un programma eDonkey-compatibile ma con molte più funzioni. Il programma si afferma rapidamente come client di punta sulla rete grazie alle sue caratteristiche innovative.
Il 7 luglio 2002 viene reso disponibile su SourceForge il solo sorgente della prima versione. Ma la versione effettivamente utilizzabile uscirà il 9 agosto.
eMule e sistemi Microsoft Windows eMule nasce come programma per sistemi Windows. Le versioni della serie 0.20 funzionavano solo su sistemi Windows 2000 e Windows XP, ma già dalla versione 0.21a3 il programma è funzionante su sistemi Windows 98 ed Windows Me.
La compatibilità con Windows Vista arriva a cinque anni dalla nascita di eMule con la versione 0.48a.
eMule su altri sistemi operativi eMule è sviluppato ufficialmente solo per i sistemi operativi Windows, ma può essere utilizzato anche su Linux e macOS sfruttando Wine, un software in grado di eseguire le applicazioni per Windows su altri sistemi operativi. La compatibilità, tuttavia, non è completa e pertanto eMule può subire rallentamenti o crash, specialmente durante un uso intensivo.
Il programma aMule, disponibile per Linux e Mac OS X, è nato per risolvere questi problemi di compatibilità.
Eventi di rilievo nella storia di eMule 7 luglio 2002: prima versione disponibile su SourceForge (solo sorgente) 9 agosto 2002: prima versione effettivamente utilizzabile sul network 14 settembre 2002: versione 0.19a (prima versione popolare che introduce il sistema dei crediti) 28 settembre 2002: vengono introdotte delle complete e dettagliate statistiche, una novità sul network eDonkey; le versioni della serie 0.20 funzionano solo su sistemi Windows 2000 ed XP 13 ottobre 2002: versione 0.21a (supporto a Windows 98 e Windows Me) 15 marzo 2003: viene ripreso lo sviluppo della versione serverless (Inizialmente si puntava a creare un client compatibile con la rete Overnet, successivamente il 30 agosto 2003 questa ipotesi viene abbandonata per poter essere liberi di decidere come sviluppare la nuova rete, senza doversi adeguare ad altri. Con questa decisione esce la versione 0.30a e parallelamente comincia la sviluppo della versione 0.40 che integra la rete Kademlia) 4 settembre 2004: versione 0.44a (introduzione del supporto Unicode e di un secondo sistema di Hash da incorporare nei link ed2k per migliorare il controllo della corruzione dati durante la trasmissione) 6 febbraio 2005: versione 0.45a 12 febbraio 2005: versione 0.45b 5 maggio 2005: versione 0.46a 5 luglio 2005: versione 0.46b (introdotto il supporto per le "collezioni", piccoli file contenenti le informazioni necessarie a scaricarne altri. L'implementazione è diversa e quindi non compatibile rispetto a quella del client eDonkey. È possibile inoltre, durante la ricerca su server, effettuare un'interrogazione per ottenere una lista di file correlati o pertinenti) 26 luglio 2005: versione 0.46c 26 gennaio 2006: versione 0.47a 22 febbraio 2006: i celebri server Razorback 2.0 e Razorback 2.1 (insieme ad altri meno noti) vengono chiusi dalla polizia belga e l'amministratore, residente in Svizzera, viene arrestato 8 settembre 2006: versione 0.47b (introdotto Protocollo Offuscato che permette di aggirare i filtri P2P di alcuni ISP) 14 settembre 2006: versione 0.47c 1º maggio 2007: versione 0.48a beta 1 10 maggio 2007: versione 0.48a beta 2 13 maggio 2007: versione 0.48a (risolta incompatibilità con Windows Vista) settembre-ottobre 2007: chiusura dei celebri server Donkey, Big Bang e Byte Devils a causa di una serie di azioni legali da parte delle major discografiche in Francia, Paesi Bassi e Germania 15 aprile 2008: versione 0.49a beta1 30 aprile 2008: versione 0.49a beta2 6 maggio 2008: versione 0.49a beta3 11 maggio 2008: versione 0.49a 2 agosto 2008: versione 0.49b 22 febbraio 2009: versione 0.49c 11 marzo 2010: versione 0.50a beta1 19 marzo 2010: versione 0.50a beta2 28 marzo 2010: versione 0.50a beta3 7 aprile 2010: versione 0.50a 20 marzo 2015: versione comunità 0.50b BETA1 19 luglio 2018: versione 0.51a "Community Release" 2 settembre 2018: versione 0.51b "Community Release" 26 febbraio 2019: versione 0.51c "Community Release" 26 maggio 2019: versione 0.51d "Community Release" 14 agosto 2020: versione 0.60a beta "Community Version" 10 ottobre 2020: versione 0.60a "Community Version" 13 dicembre 2020: versione 0.60b "Community Version" 13 maggio 2021: versione 0.60c "Community Version" 24 novembre 2021: versione 0.60d "Community Version" 26 agosto 2023: versione 0.70a "Community Version" 17 agosto 2024: versione 0.70b "Community Version"
I network Il network è un protocollo di comunicazione attraverso il quale un programma p2p una volta interfacciato riesce ad eseguire delle operazioni in rete come la ricerca o lo scaricamento di un file non solo su internet (altri computer connessi), ma anche sullo stesso computer e su computer della rete locale.
Il network eDonkey
La rete eDonkey detta anche ed2k è stato il primo network supportato da eMule. Ha struttura composta da client e server.
I file condivisi presenti nel network non risiedono nei vari server, ma sui client stessi e lo scambio avviene sempre tra client e client. I server sono deputati all'accesso alla rete peer to peer per la ricerca dei file e l'identificazione dei client in cui risiede la risorsa da scaricare. L'indice dei file condivisi da un client viene inviato al server di accesso alla rete durante la connessione tra i due.
I server I server sono dei database che indicizzano i file e gestiscono le connessioni tra gli utenti. In ed2k non è presente un unico repository, ma molti, che distribuiscono il carico tra loro e comunicano fra loro. Sono gestiti da volontari che li mantengono a proprie spese.
I client Con client si intende un qualsiasi programma in grado di interfacciarsi con la rete server di eDonkey. Non esiste solo eMule ma anche molti altri, tra i più famosi vi sono eDonkey e Shareaza. Da segnalare anche aMule, versione Linux di eMule. Da una costola di eMule è poi nato eMule Plus, a partire dalla distribuzione della versione 0.30, client compatibile con tutti i sistemi operativi Windows. Vi sono molteplici differenze tra i due client, la principale differenza tra i due client è l'assenza del network Kad (implementazione di Kademlia). Il team sviluppatore di eMule Plus ha distribuito la versione 1.2d, con supporto unicode, il 18 maggio 2008.
Un client si connette ad un solo server alla volta sufficiente per eseguire una ricerca su tutti i server presenti nella rete, in quanto comunicano fra di loro.
Il programma riprende gli scaricamenti/caricamenti che erano in corso, non appena è di nuovo disponibile una connessione Internet. Se il nodo ha una connessione always-on, è necessario prolungare (o eliminare) l'intervallo di tempo prima dell'entrata in stand-by, che interrompe la connessione.
Il FileHash Il FileHash serve ad identificare in modo univoco un file nel network e viene calcolato da eMule utilizzando l'algoritmo MD4. Per i file di dimensione minore di 4 Gigabyte il FileHash è di 32 cifre esadecimali mentre i file di dimensione maggiore hanno un FileHash esteso.
I link eD2K
Un «link eD2K» è un collegamento utilizzato dai client eDonkey per effettuare il download di un file. La sua struttura di base è la seguente:
ed2k://|file|nome_del_file|lunghezza_in_byte|hash_di_32_cifre_esadecimali|/
L'univocità di un file nella rete è garantita dall'accoppiamento di «Lunghezza in byte» con l'«Hash di 32 cifre esadecimali».
Il network Kad
Basato sulla rete Kademlia, il network Kad è una rete priva di server, presente dalla versione 0.42 di eMule, concepita per distribuire il carico di lavoro a tutti i client connessi invece che ad un unico server centrale. È in grado di svolgere le medesime funzioni di eDonkey.
La connessione alla rete, detta procedura di bootstrap, avviene contattando gli altri client che assegnano lo stato open nel caso siano contattati liberamente oppure lo stato di firewalled se la comunicazione risulta filtrata.
A partire da eMule 0.44a è presente la funzione buddy, grazie alla quale un client firewalled riesce a comunicare nella rete appoggiandosi ad uno di tipo open.
Nella versione 0.47a è stata introdotta la nuova rete Kad 2.0, resa definitiva nella versione 0.47c.
Caratteristiche ID
Calcolo dell'ID del server (formula valida solo per id alto). Dato un IP:
Si ha che:
Se l'id è basso, il server assegna un numero casuale inferiore a 16777216.
Per controllare più agevolmente lo stato dell'id, si controllano le frecce in diagonale poste sul piccolo globo azzurro posizionato nella barra di stato del proprio client, in basso a destra: La freccia inferiore sinistra indica il collegamento al server, quella superiore destra indica il collegamento alla rete kad. La freccia rossa indica: non connesso. La freccia verde indica: connesso con id alto. La freccia gialla indica: connesso con id basso (firewalled per la rete kad). NB: da non confondersi con le frecce poste in verticale, rosse o verdi, che indicano un'attività/inattività di scaricamento/caricamento.
Collezioni Presente in eMule dalla versione 0.46b le collezioni sono dei file con estensione .emulecollection normalmente condivisi come qualsiasi altro tipo di file. Una collezione è composta da un insieme di link eD2k ha quindi dimensioni molto contenute ed il suo scaricamento è quasi sempre immediato.
Commenti I commenti sono una funzione molto utile per mezzo della quale una persona può far sapere alle altre il proprio giudizio sulla qualità del file condiviso o scaricato.
I commenti si compongono di una valutazione compresa fra quelle elencate nella seguente tabella, il nome del file giudicato, l'autore del commento e il testo vero e proprio.
Spesso però i commenti non sono rivolti alla qualità del file, bensì a pareri personali sul contenuto di esso (ad esempio se un clip video piace o meno, non tenendo conto della qualità audio/video). Possono anche contenere messaggi che inducono allo scaricamento di altri file, spesso guide su come velocizzare eMule e comunque del tutto inutili (se non dannosi).
Tuttavia questo sistema può essere comodo per l'utente che può controllare se sta veramente scaricando ciò che vuole (alcuni buontemponi rinominano i file per prendersi gioco degli altri utenti) e se qualitativamente è valido. Icona Significato Non Votato Ottimo Buono Sufficiente Mediocre Non Valido / Corrotto / Fake
Crediti I crediti sono uno dei modificatori per il calcolo del punteggio nella coda di caricamento. In eMule un client accumula crediti verso un altro client in base alla quantità di dati scambiati reciprocamente e variano da 1 a 10 calcolati con le seguenti formule:
dove: rappresenta i crediti; indica i byte inviati;