Prima di proseguire è meglio che leggiate la pagina sull' utilizzo di Kad.
Le versioni di eMule a partire dalla 0.40 hanno aggiunto la possibilità di collegarsi anche alla rete "Kademlia" oltre che ai classici servers.
Regna molta confusione sull’argomento, perciò facciamo un passo indietro.
Il funzionamento di eMule può essere diviso in due parti: ricerca delle fonti e scambio effettivo dei files tra i clients.
La ricerca della fonti avviene cercando sui servers presenti nella lista servers del vostro client e attraverso lo scambio fonti (source exchange) con il quale in pratica si saltano i servers e si ottiene una maggiore velocità di ricerca: basta che un server vi dia almeno un client valido ed ecco che chiedendo a lui la lista delle fonti conosciute le trovate tutte in un colpo solo o quasi.
In seguito quando avete ottenuto dal server l’elenco dei clients che vi interessano, la richiesta di entrare nella loro coda di upload viene fatta dal vostro eMule direttamente, così come il trasferimento dei files avviene direttamente dal vostro PC al loro senza più disturbare i servers, che vengono usati solo come un elenco telefonico, in cui non si cerca per nome e cognome ma per hash del file che dovete scaricare.
Kademlia a cosa serve?
Kademlia cerca le fonti senza passare attraverso i servers, ma utilizzando solo una rete costituita dagli stessi clients eMule di altri utenti.
Ecco perciò che si parla di rete serverless, cioè senza servers: gli hash dei files non devono più essere depositati sui servers ogni volta che fate partire eMule, ma circolano tra i vari clients secondo certi criteri matematico/statistici che ne ottimizzano il funzionamento.
Il nome Kademlia è quello dato a questo insieme di algoritmi dai suoi inventori Petar Maymounkov e David Maziéres dell'università di New York.
Detto questo si capisce come mai Kademlia NON fa scaricare più velocemente e di solito NON trova più fonti rispetto al collegamento ai
soli
servers (anche se potrebbero esserci clients che utilizzano
esclusivamente la rete Kademlia), questo perchè le code restano le
stesse di sempre (e di
conseguenza anche i tempi di attesa), e lo scambio fonti rende
quasi invisibile
la differenza fra le due reti una volta che avete ottenuto
almeno qualche
clients valido, perchè lo scambio diretto salta sia i servers che
Kademlia. Al massimo Kademlia vi fa trovare un po’ prima tutte le fonti per quel file, ma lo scopo di questo sistema non è
accelerare la rete, bensì irrobustire la rete contro il suo unico punto debole: i servers.
Già in passato più volte il network è andato in crisi
per l’eccessivo numero di utenti o qualche difetto software e si
sono trovate soluzioni sempre nuove per alleggerire il carico
dei servers.
Oggi ancor più rischiosa diventa la posizione dei servers con la
spada di Damocle di eventuali procedimenti legali dovuti alle
nuove leggi
sui copyright in circolazione in vari Paesi del mondo.
I 30 servers più grossi contengono oltre il 90% degli utenti,
senza
di essi si ferma tutto.
Kademlia vuole essere una via alternativa ai servers, svolgendone le stesse funzioni ma distribuendo lo “sforzo” su tutta la rete.
Perchè attivare Kademlia?
Il nuovo Network per funzionare ha bisogno di clients che facciano da “ponte” fra la rete con i servers e la nuova rete, in modo che coloro che si collegano anche solo a Kademlia possano trovare almeno una fonte per ogni file esistente per iniziare a scaricarlo (e trovare tutte le altre grazie allo scambio fonti). Ogni client collegato ad entrambe le reti infatti tiene conto di quanti sono in coda per i vari files che si stanno condividendo e contribuisce al numero di risposte per le ricerche effettuate su Kademlia, popolando di risultati la neonata rete.
Sembra proprio che almeno per questa volta non dobbiate domandarvi cosa può fare la rete per voi, ma cosa potete fare voi per la rete.
Quali sono gli svantaggi di collegarsi anche a Kademlia?
In pratica nessuno. Una piccola quantità di banda viene usata per comunicare con gli altri clients ma non c’è nessun incremento visibile rispetto al vecchio eMule (la banda persa è misurata nel margine inferiore della finestra, tra parentesi tonde, dove c’è scritto up e down; se non vedete le parentesi dovete attivare Opzioni --> Connessione --> Mostra OverHead).
Procedura di configurazione e prima connessione a Kademlia (da farsi una volta sola)
Prima di tutto controllate che in Opzioni --> Connessione --> Rete ci sia il segno di spunta sia su Kad che eD2K.
Sempre in Opzioni --> Connessione c’è la possibilità di cambiare la porta UDP che dovete aprire sul router o sul firewall insieme all'altra (la TCP serve per i server) per non essere Firewalled (equivalente ad ID basso con i servers).
Come prima volta dovete procurarvi gli indirizzi di clients già collegati. A questo proposito, potete seguire questa guida, che vi farà scaricare una lista di contatti validi.
Procedura di bootstrap, secondo metodo:
deve essere eseguita mentre state già scaricando e siete collegati ad un server quindi cercate un file a caso molto diffuso e iniziate a scaricarlo, aspettando 5 minuti perchè tutte le fonti vengano contattate.
Il metodo più semplice consiste nel premere su Bootstrap nella finestra Kademlia, lasciando evidenziata la seconda opzione ("from known clients" o "dai client conosciuti"). In questo modo eMule cercherà in automatico un client valido fra tutti i clients a cui si è collegati da cui iniziare il collegamento.
Non meravigliatevi se il primo collegamento con la rete sarà alquanto lento. Ciò le prime volte è perfettamente normale.
Come faccio a sapere che Kademlia
funziona veramente?
Per verificare che tutto funzioni correttamente
controllare
le seguenti cose:
1) nella barra di stato all’estremo inferiore
di
eMule vedrete il mondino con tutte e due le frecce verdi,
se
così non è riprovate a fare il bootstrap da un altro client.
2) Nella finestra Kademlia vedete un
certo numero di contatti con il pallino verde a
fianco,
se non vedete alcun contatto riprovate la procedura di
bootstrap.
3) Nella finestra server --> Le mie
informazioni alla voce KAD Rete dovete vedere scritto Connesso e NON Firewalled, se così non è
tornate alla finestra Kademlia e premete Ricontrolla
Firewall.
Se il Firewalled permane potrebbe essere necessario
riconfigurare il vostro router o firewall aprendo la porta UDP . Sempre in "Le mie informazioni" controllate alla voce ED2K
Rete di avere ID alto (altrimenti
eMule scaricherà
male, vedi ID basso).
4) Se fin qui è tutto ok testate la ricerca
su Kademlia andando nella pagina “Cerca” e selezionando
in “metodoo di ricerca” (method in inglese), Kad Rete invece
di Server o Globale (Server). Mettete una parola chiave
qualsiasi, per esempio di uno dei files che state scaricando e avviate la ricerca: in al massimo
15-20 secondi
dovreste avere almeno 1 risultato (se il file non è troppo raro,
ecco perchè bisogna collegarsi a tutte e 2 le reti, migliorando
di fatto anche Kademlia).
Se la ricerca non funziona cambiate parola chiave oppure
ricontrollate
i punti dall’uno al tre. Dovete avere "Connesso" per non incorrere in problemi.
Ricordate che i contatti memorizzati da eMule sono altri clients connessi a Kademlia in giro per la rete, quindi se non usate la rete Kademlia per diverso tempo è possibile che nessuno di quei clients quando fate ripartire il mulo sia ancora attivo: dovete ripetere la procedura di bootstrap.
Procedura di connessione abituale
Per collegarvi simultaneamente sia alla rete
servers che a
quella Kademlia all’avvio di eMule premete il solito pulsante
colorato
“Connetti” in alto a sinistra.
In Opzioni -- > Connessione potete anche settare l’opzione
“Connessione automatica all’avvio” così ogni
volta che parte il mulo si collega da solo. (Se dovesse faticare
ad entrare
sui servers potete sempre fare doppio click a mano nella lista
server)
Se siete collegati ad entrambe le reti eMule userà sia i servers che Kademlia per ottenere sempre le massime prestazioni, non dovrete preoccuparvi di altro.
Per usare correttamente Kademlia potete
fermarvi a leggere qui.
Ciò che segue entra nel dettaglio tecnico e risponde a qualche curiosità che spesso viene chiesta sul canale
#eMule-italian (vedi Esperti Online)
Quali altre differenze ci
sono nelle nuove versioni con Kademlia?
Oltre alle differenze già viste se andate alla estrema destra
della finestra files condivisi (trascinando la
barra di
scorrimento orizzontale verso destra) noterete una nuova colonna
File eD2K|Kad che contiene di solito due
icone: un computer e un mondino
La spiegazione è semplice: il primo (il computer) dice che avete
dato
al server la lista dei vostri files condivisi quando vi siete
collegati
(può essere assente solo se non usate i server ma solo
Kademlia), il
secondo (il mondino) dice che il file che state condividendo
viene visto anche dagli
utenti Kademlia.
La condivisione dei files sulla nuova rete
infatti adesso
si chiama Publishing (pubblicazione) e non è
istantanea
come con i servers (per evitare di sovraccaricare gli altri
clients e la
vostra linea), e deve essere ripetuta ogni 5 ore per tutti i
vostri files.
I files vengono pubblicati progressivamente comunicando il loro
hash ad
altri clients presenti nella vostra lista contatti. La scelta non
è
casuale, voi pubblicate un file presso quegli eMule che hanno
hash “vicino”
a quello del file, così chi cerca quel file manderà la richiesta
solo a quella precisa categoria di client il cui hash è “vicino”
a quello del file.
L’hash di un file o del vostro client (generato in modo casuale
alla prima apertura di eMule) viene infatti utilizzato per
calcolare delle “distanze” virtuali.
Queste distanze sono calcolate con lo XOR (OR
esclusivo) dei bit degli hash che dovete confrontare es:
101101
XOR 110111 = 011010 cioè il risultato è 1 solo se uno dei
due bit è 1, non entrambi; per questo l’algoritmo Kademlia
è stato definito dagli autori “A peer-to-peer
Information
System Based on The Xor Metric”. Questa distanza tra
voi
e gli altri è quella che vedete nella finestra Kademlia con una
sfilza di 0 e 1 a fianco di ogni riga.
Se ordinate questa colonna “Distanza” vedrete che gli 0 a
sinistra generano una scaletta man mano che scorrete la lista
verso il
basso: la cosa non è casuale.
Il vostro eMule cerca di collegarsi a clients (circa 800) che
abbiano
hash distribuiti in modo da coprire le distanze che gli servono
in modo
uniforme, così da consentire una più rapida ricerca dei
risultati e una maggiore efficienza (il vostro client deve avere
almeno
un contatto per ogni gruppo di sottoalberi diversi dal proprio
se pensate
ai client come allocati in un virtuale albero binario di
ricerca…
ma non spacchiamo il capello in 4, per i curiosi Kademlia Description pagina 3) .
Dalla versione 0.44 di eMule è stato introdotto il supporto id basso per la rete Kad. Ciò significa che un client con Kad in stato firewalled sarà in grado di usufruire del network Kad come se tale stato non fosse, ma a certe condizioni. In pratica, se Kad risulta firewalled, eMule cercherà un altro client con Kad non firewalled da utilizzare come compagno (buddy) per la ricerca delle fonti. Ad un client con Kad firewalled è permesso appoggiarsi ad un client con userhash simile a quello opposto al nostro (esempio se 1010 siamo noi, cerchiamo qualcuno vicino a 0101), e tramite questo effettuare le ricerche di Kad, come se firewalled non fosse. Ciò non vuol dire che non è più un problema avere Kad in stato firewalled, ma semplicemente che nel caso lo fosse ci sarebbe la possibilità (non la certezza) di sfruttare un altro client. Chiaramente ci deve essere la disponibilità di un client non firewalled, con userhash opposto (o simile) e che non abbia già un altro client da supportare. Infatti, per ogni client con Kad NON firewalled, può esserci un solo client con Kad firewalled in supporto.
Nella finestra Kademlia la colonna “Tipo” sta ad indicare il numero di mancate risposte di quel client ai nostri collegamenti (analogo a “fallimenti” della finestra Server), dopo 5 fallimenti il contatto viene cancellato, Tipo 0 significa che quel client ci ha risposto sempre.
Un’altra differenza che potete apprezzare
nella finestra
trasferimenti è la presenza nella colonna
“Dimensione” dell’origine delle varie fonti ricevute (dovete
espandere la lista fonti cliccando due volte sul file). Può
comparire Ed2k Server (la fonte vi è arrivata in
seguito
ad una richiesta ai server), Source Exchange (Scambio
Fonte) (la fonte
vi è arrivata tramite richiesta diretta di scambio fonti con
altri
client), Passive (Passivo) (la fonte aveva
chiesto di entrare in
coda da voi per scaricare, voi non la conoscevate ed eMule l’ha
aggiunta automaticamente alla lista come fonte per quel file), Kad (la fonte vi è arrivata tramite la ricerca di Kademlia sulla nuova
rete).
E’ un modo per analizzare l’efficienza del sistema.
Dalla versione 0.50a nella finestra Kad cliccando su questo pulsantino
è possibile visualizzare un grafico che vi permetterà di
seguire in tempo reale come eMule cerca i nodi e li contatta
(curiosità più che altro per gli sviluppatori).
L' obiettivo del Kad è trovare i nodi "vicini alla parola" cercata
perchè questi nodi possono conoscerne altri più utili alla vostra
ricerca, se ci sono il nodo interrogato vi collega al successivo.
Nel grafico ogni pallino rappresenta un nodo, più sono posizionati in basso e più sono vicini (come chiave/parola non come distanza "fisica")
alla ricerca che state facendo; le frecce indicano le ricerche
indirizzate ai vari nodi (molti nodi vi segnaleranno nodi che già
conoscete, questo è il motivo per cui potete vedere nodi con molte
frecce puntate verso di loro), i pallini senza frecce indicano nodi che
sono esclusi dalla ricerca (normalmente i primi tre).
Il nodo ha risposto alla vostra ricerca ed ha trovato altri nodi più vicini di se stesso alla "parola";
Il nodo è stato interrogato ma non ha ancora risposto;Il nodo non ha risposto, probabilmente non è connesso;
Il nodo ha risposto ma non ha trovato altri nodi più vicini di se stesso alla "parola"
Questa icona posta vicino ad un nodo indica che il nodo ha il file e vi ha mandato la risposta che apparirà tra i risultati della ricerca;
questa invece indica che il nodo non ha il file o non ha risposto - andando col mouse su ogni nodo si ottengono i dettagli della ricerca.
Nella parte destra della finestra Kad è presente un istogramma.
L'
asse X (orizzontale) rappresenta tutti i nodi che il vostro eMule memorizza e che sono "vicini" come "distanza matematica" all'ID del vostro eMule.
L'asse Y (verticale) rappresenta il numero di contatti per ogni nodo memorizzato.
I nodi più contattati sono candidati ad essere memorizzati in quanto "vicini".
I nodi più "vicini" sono in grigio, quelli più "lontani" sono in rosso.
Per maggiori informazioni su come è definita la distanza tra nodi in KAD, leggete Kademlia Description
Buon download.