E' per noi un vero piacere presentarvi l'intervista che David Xanatos e Ekliptor, gli sviluppatori del nuovo client chiamato NeoLoader, hanno gentilmente rilasciato ad Emule-Mods.it
Li ringraziamo per la loro gentilezza e gli auguriamo di proseguire il loro eccellente lavoro con NeoLoader.Versione italiana (parte 1)1)
Ciao David, puoi presentarti brevemente per i nostri utenti che ancora non ti conoscono?David Xanatos:
Sono uno dei membri fondatori del Partito Pirata Austriaco, lavoro come Fisico all'università di giorno e sviluppo applicazioni per il filesharing di notte.
2)
Puoi illustrare il client NeoLoader e cosa ti ha spinto a crearlo?David Xanatos:
Il concetto iniziale di NeoLoader era di unire insieme i vantaggi di un programma di file-sharing p2p con quelli di un file-sharing basato su
Hoster, usando la rete Kademlia.
Volevamo creare il primo client che potesse fornire la ricerca globale di parole chiave per il download di file da siti Hoster. In questo modo, un utente non dovrebbe cercare tra i vari siti i link riconducibili ai file richiesti, ma potrebbe inserire una parola di ricerca in Neo ed iniziare a scaricare subito i file. Inoltre, volevamo risolvere il problema dei link a file "interessanti" che spesso spariscono piuttosto velocemente portando i siti che pubblicizzano link ad avere molti dei loro servizi down, fino a quando qualcuno si lamenta ed i file vengono ricaricati manualmente.
Avere un client per l'upload dei file consentirebbe ai releaser di monitorare con semplicità lo stato dei loro file online e, quasi senza sforzi, ricaricare gli stessi ogni volta che qualche file viene perso.
Questa feature potrebbe essere estesa per far sì che i file scaricati possano essere ricaricati automaticamente se richiesto ma, per motivi di sicurezza, questa funzione non è attiva di default.
Per rendere il sistema ancora più robusto decidemmo, fin dall'inizio, di aggiungere una funzionalità di p2p anonimo in modo che, se un particolare file non fosse più disponibile su nessun Hoster, un client potesse comunque scaricare quel file da altri utenti che l'avevano scaricato in passato e che ancora lo avevano a disposizione. Visto che il file sharing p2p di base è completamente anonimo, questo non dovrebbe portare nessuna nuova minaccia imprevista alla media di utenti ben protetti da un Hoster.
E mentre c'eravamo, decidemmo di aggiungere il supporto ad altre reti di file-sharing come bt e ed2k, che però sono disattivate di default in modo che, se un file non fosse disponibile su un Hoster o nella rete anonima NeoShare, il nostro client potrebbe mettere in condizione l'utente di scaricarlo da bt o da ed2k ed informarlo che questo porterà a condividere il file in una rete non sicura; in questo modo, egli potrà prendere una decisione ponderata sulla scelta da fare. Inoltre, viene offerta un'opzione per creare un account VPN al fine di mitigare i rischi connessi all'utilizzo di una rete p2p aperta e non anonima.
Per riassumere, l'obiettivo era quello di offrire un nuovo programma di condivisione che desse alla media dei normali utilizzatori la migliore esperienza possibile di download e, allo stesso tempo, la protezione della loro privacy nel modo migliore possibile.
3)
Puoi presentare le funzioni principali del client e qualche anticipazione su eventuali novità?David Xanatos &
Ekliptor:
NeoLoader è capace di combinare insieme qualsiasi sistema di file-sharing. Questo risultato viene raggiunto usando un network Kad di nuova generazione che indicizza tutti i file incontrati dal client grazie al calcolo del loro hash ed all'associazione dei link. Non importa da quale network viene scaricato il file. Quest'ultimo riceve un hash attraverso l'utilizzo di sistemi appropriati ed in seguito i dati vengono pubblicati nel network Kad.
Questo nucleo elaborativo (core) rende possibili un sacco di nuove funzionalità (feature). Offre la capacità di condurre ricerche tramite una parola-chiave globale per tutte le tipologie di download, cioè una ricerca “eMule style” per i download tramite Torrent e Hoster. Questa feature non ha precedenti per questi 2 popolari sistemi di file sharing. In passato gli utenti dovevano affidarsi a link o motori di ricerca Torrent i quali spesso fornivano informazioni datate.
L'associazione di hash permette di scaricare un file da più di un network allo stesso tempo. Per esempio, se avviamo il download tramite un link ed2k, NeoLoader può recuperare le corrispondenti "Informazioni di Hash Torrent" e scaricare il file ad una velocità superiore tramite il protocollo Torrent.
NeoLoader rivoluziona anche il modo in cui i siti di File-Host possono operare. Piuttosto che fornire stupide liste di link o collegamenti statici criptati, essi possono usare i NeoLink, i quali identificano i file tramite il loro hash univoco come avviene nei sistemi P2P; inoltre, i Neo utenti possono recuperare link aggiornati dal network Kad. Usare la divisione dei file in parti come nei sistemi P2P permette di intercambiare le parti in upload tra differenti releaser così da migliorare notevolmente la disponibilità dei file. Oltre a ciò, gli utenti senza account premium a pagamento possono scaricare i file a velocità accettabili dato che sono in grado di recuperare un numero di fonti tale che potrebbero scaricare ogni parte gratuitamente da differenti hoster e senza dover aspettare.
I file caricati sui siti di hosting tramite il nuovo schema Neo possono interscambiare parti con i download tramite P2P, così si può scaricare allo stesso momento da ed2k, torrent e da siti di Hosting.
Una caratteristica basata su questa capacità è rappresentata da un meccanismo di cache automatico delle parti basato sui File Hoster, così che le parti che sono necessarie a qualche client P2P potranno essere caricate automaticamente su un File Hoster ed in seguito scaricate da lì. Tutto ciò effettivamente può moltiplicare l'ampiezza di banda disponibile nel network ad un più alto ordine di grandezza.
NeoLoader supporta anche un sistema di file sharing P2P completamente anonimo cosicché gli utenti possono scaricare in sicurezza i file non piu disponibili sui File Hoster. Il sistema si chiama NeoShare e, attraverso la combinazione di vari parametri, regola il livello di anonimato esattamente al livello di controllo richiesto dall'utente; questo assicura migliori performance rispetto agli altri network di file sharing anonimi.
Il supporto di NeoLoader a tutti gli schemi e network per il file sharing è di ultima generazione.
Supporta tutte le estensioni di rilievo al protocollo Bittorrent ed è completamente compatibile ad eMule, inoltre ci sono nuove pioneristiche estensioni di protocollo per ed2k come il NaT-T, IPv6 e altri.
Il nostro motore di download hoster minimizza le competenze richieste allo sviluppo di script gestionali per Hoster e siti di link grazie ad un browser senza interfaccia grafica scritto in Java Script e totalmente funzionante. Molte parti possono essere semplicemente gestite avviando eventi su elementi DOM-tree (Document Object Model n.d.r.) e non è più necessario emulare il codice AJAX a mano.
In futuro lavoreremo ulteriormente a NeoKad migliorandone le performance e l'affidabilità per i tunnel anonimi. Inoltre, intendiamo riscrivere il sistema globale di ricerca per includere qualche schema di valutazione in modo che i risultati di ricerca generati da NeoKad abbiano una qualità al pari dei buoni siti di link e torrent.
4)
Perchè un utente dovrebbe trovare NeoLoader migliore di altri client?David Xanatos &
Ekliptor:
Capacità di ricerca globale tramite parole chiave per download da reti Bittorrent
Capacità di ricerca globale tramite parole chiave per link su siti Host
Scambio parti tramite i sistemi di condivisione convenzionali
Un nuovo stile di collegamento tra P2P ed il download da siti Host
Sistema di condivisione completamente anonimo e veloce (NeoShare)
Contributo avanzato a tutti i tipi e progetti per la condivisione dei file
5a)
Hai intenzione di inserire il supporto ai server ed2k in futuro?David Xanatos &
Ekliptor:
Quando ho iniziato l'implementazione del supporto ed2k nella NeoLoader, sembrava chiaro che non ci sarebbe mai stato nessun supporto server, in quanto non erano disponibili dei software server aggiornati e per la presenza di alcune buone motivazioni contro l'utilizzo di punti centralizzati nel File-sharing. Ma nel febbraio di questo anno petermrg ha annunciato su EP (
http://forum.emule-project.net/index.php?showtopic=156155) la sua intenzione di sviluppare un software server aggiornato che, col mio aiuto, ha prodotto nei mesi successivi.
Le vecchie argomentazioni contro l'utilizzo dei server sono ancora valide, ma si può sempre discutere sulla rilevanza di alcuni loro difetti.
Uno dei problemi dei server è che sono dei bersagli centrali per gli attacchi da parte di persone che non amano la libera condivisione dei file priva di restrizioni. Ma questo punto può essere trascurato e la conseguenza peggiore è rappresentata dalla chiusura del server.
Un problema più urgente sono i server "trappola" (honey-pot), in quanto per un utente medio non è sempre facile capire di quali server fidarsi e di quali no.
Qualsiasi autorità qui sarebbe incline alla corruzione, come negli Stati Uniti dove sappiamo che stanno forzando l'autorità di certificazione SSL affinché fornisca loro i propri certificati falsificati, quindi non è poi così esagerato pensare che un gestore di server di spicco possa essere costretto, attraverso un provvedimento inibitorio ed un ordine privato, a "donare" alcuni server trappola in favore delle autorità e senza dirlo a nessuno.
Il problema con i server honey-pot è che non ottengono solo alcuni dei tuoi file, bensì tutti. In molte giurisdizioni questo può effettivamente fare la differenza tra rimanere anonimi o essere costretti a dare i dati dell'account al proprio ISP.
Quindi, se il supporto server fosse da aggiungere, questo difetto dovrebbe essere mitigato in modo tale da garantire che il rischio per gli utenti tipici non sia di molto superiore all'utilizzo della sola rete Kad.
La soluzione per questo problema è evidente e di fatto impiegato dai client Torrent.
Non connetti un client ad un server (nella terminologia torrent viene chiamato Tracker), ma hai un server differente per ogni file, o perlomeno per ogni piccolo gruppo di file che condividi.
Nel sistema torrent questo funziona veramente bene in quanto un tipico client torrent non condivide centinaia di file per volta, e solitamente neanche decine.
Per eMule sarebbe necessario un approccio simile, in modo che l'utente imposti un server personalizzato per ogni file oppure configuri il proprio client in modo che diffonda automaticamente tutti i file in più server ma in modo da non superare mai i 20 files su un singolo server. Questa sarebbe una soluzione pulita ed elegante, anche se ciò creerebbe un conflitto con le regole di eMule che non permettono la connessione a più di un server. Per NeoLoader questo non sarebbe rilevante in quanto è un client indipendente che non deve in nessun modo conformarsi alle regole di eMule, ma ho paura che una tale funzione potrebbe causare un sacco di polemiche da parte di molti fra i più vecchi Devs Mod di eMule, nonostante il fatto che tale soluzione riguardante lo sviluppo dei nuovi server fu suggerita proprio da me:
http://forum.emule-project.net/index.php?showtopic=156413 Quindi, per farla breve, se aggiungo il supporto ai server, sarà nel modo sopra descritto, ma forse, per ragioni politiche, proibirei la connessione ai vecchi eserver lugdunum, cosa che renderebbe la caratteristica momentaneamente poco utile finché il nuovo software server creato da petermrg non sostituirà i vecchi eServers in una porzione sostanziale della rete.
5b)
Inoltre, quali sono i cambiamenti che hai effettuato sulla rete KAD e in cosa consiste il network NeoShare?David Xanatos &
Ekliptor:
NeoLoader attualmente supporta 3 singole reti Kademlia: Mainline DHT per Torrent, eMule Kad 2 e una propria rete Kademlia di nuova generazione.
Non ci sono modifiche sostanziali al TorrentDHT, né alla eMuleKad.
NeoKad è una rete Kademlia sviluppata completamente da zero, il suo obiettivo di progettazione è stata la flessibilità e l'anonimato. Mentre la classica Kad può gestire soltanto alcuni tipi di PayLoads (flusso di dati rappresentante un contenuto informativo n.d.r) che sono "HardCoded" (insiti nel codice sorgente n.d.r.), NeoKad è in grado di gestire PayLoads arbitrari; questo si ottiene eseguendo un motore di script su ogni nodo e lasciando allo script la gestione del processo di PayLoad. Gli script sono inviati, se necessario, assieme alla richiesta di ricerca. Questa architettura permette ad ogni sviluppatore di usare la nostra rete Kademlia universale per i propri scopi. Alcune semplici cose che mi vengono in mente sono un messenger anonimo non rintracciabile o un sistema alternativo di dns resistente alla censura.
Il routing (instradamento n.d.r.) di NeoKad è implementato per fornire ai propri utenti anonimato e
negazione plausibile mediante ricerche ricorsive, questo significa che invece di cercare autonomamente i nodi globali più vicini a cui inviare le richieste verso il sistema, inoltra quest'ultime al nodo locale attiguo che a sua volta continuerà finchè verrà raggiunto il nodo che cerchiamo. Questo progetto non solo assicura alla rete anonimato e plausibile negabilità per ogni singolo nodo, ma rende la rete incredibilmente robusta contro la frammentazione. Come si verificherà con IPv4 e IPv6, la rete è divisa in 3 gruppi di nodi, uno con IPv4, uno con IPv4 e IPv6 ed uno con IPv6 soltanto. In questo caso la ricerca ricorsiva permette a qualsiasi nodo di raggiungere l'altro anche se non è possibile una connessione diretta.
Un'estensione ovvia era quella di aggiungere funzionalità di routing dei pacchetti, quindi usando NeoKad non puoi soltanto pubblicare dati nella rete e poi riceverli, ma anche stabilire tunnel di streaming affidabili tra 2 entità anonime, come avviene in I2P e TOR.
Fondamentalmente funziona così: il nodo di avvio imposta un percorso che viene identificato da un EC (curva ellittica) riconducibile ad una chiave pubblica crittografata chiamata entità ID che è stata generata per la sessione, ed estende l'instradamento nell'area di destinazione intorno a qualche Target ID (id di destinazione n.d.r.) cifrato a 128bit scelto a caso; questa coppia di informazioni (entità ID e Target ID) è tutto il necessario per contattare il client. La reale posizione (indirizzo IP) del client è nascosta e non è conosciuta da nessuno, eccetto l'iniziatore. Un nodo intermedio non può distinguere se il nodo precedente ha iniziato il tunnel o è un altro intermediario. Questo scenario apre un'opportunità al client che vuole ottenere migliori velocità, infatti quest'ultimo sceglierà un TargetID vicino al nodo ID della propria NeoKad e sarà raggiungibile senza bisogno di intermediari. In questo caso non è anonimo, ma solo lui sa di essere il nodo iniziale del tunnel, quindi può sempre negare qualsiasi coinvolgimento e nessuno è in grado di provare il contrario. Et voilà, ecco la negazione plausibile; lo stesso trucco funziona per ogni ricerca nella NeoKad. Questo ci permette di combinare in una certa misura i vantaggi nella sicurezza di un tipico network anonimo con i vantaggi di performance della connessione diretta. Quindi tutti i dati sono criptati da un capo all'altro, e in più c'è anche uno strato di offuscamento per prevenire il filtraggio da parte dell'
ISP.
NeoShare è una rete di condivisione anonima costruita sulla capacità di instradamento dei pacchetti di NeoKad. Fondamentalmente utilizza un semplice protocollo di condivisione P2P che invece degli indirizzi IP funziona con entità ID e scambia tutti i dati utilizzando NeoKad. Come già detto, l'uso di tunnel a lunghezza variabile dà al sistema un distinto vantaggio sulle altre implementazioni di reti P2P anonime. In aggiunta al sistema di gestione flessibile dei PayLoads, NeoKad permette non solo la memorizzazione delle informazioni di file e fonti nella rete, ma funge anche da
cache per vari MB su nodi casuali, migliorando la velocità. Questo permette all'utente di condividere i propri file anche quando il suo client è offline, deve soltanto ordinare a quest'ultimo di spingere l'intero file nel network, come in una
free net.
Per riassumere la combinazione di varie tecniche di anonimizzazione e di depistaggio, NeoLoader dovrebbe garantire un livello di qualità/velocità senza precedenti, mentre allo stesso tempo dovrebbe fornire a qualsiasi utente anonimato o negazione come meglio crede.
6)
Non pensi che, vista la giovane età del client, sarebbe necessaria una maggiore documentazione (in più lingue) e, visti i numerosi bug, un bugtracker?David Xanatos &
Ekliptor:
Si che la faccio, ci stiamo lavorando su. Purtroppo ancora non siamo in molti per sostenere una Wiki e per scrivere la documentazione in modo dettagliato, quindi l'arrivo di volontari sarebbe molto gradito.
Stiamo cercando tra diversi bug traker al fine di sceglierne uno da installare prossimamente sul nostro sito.
7)
Molti utenti (ed anche alcuni sviluppatori) hanno espresso perplessità sul fatto che NeoLoader sia un client a codice sorgente chiuso (o semi-chiuso). Puoi spiegarne le ragioni e se in futuro aprirai il codice sorgente?David Xanatos &
Ekliptor:
Bene, i dubbi nascono dalle differenze culturali tra la comunità P2P e quella legata ai file Hoster.
La causa di queste differenze riguarda le diverse esigenze che ciascuna di queste realtà di condivisione utilizza per funzionare.
I sistemi P2P sono molto robusti a qualsiasi forma di repressione, infatti si possono prendere in considerazione solo alcune vittime per fare un esempio, ma non li si può mai fermare con la forza.
In confronto, i sistemi basati su Hoster sono molto vulnerabili; tutti i file caricati impegnando giorni di lavoro o dopo aver quasi saturato la propria banda di upload per settimane, possono scomparire in pochi minuti se le persone sbagliate mettono le mani sui link.
Così, già dai tempi di RS-Downloader, la comunità dei File Hoster sviluppò diversi mezzi per offuscare i link in modo tale che gli utenti che intendevano denunciarli alle autorità non potessero mettere le mani sui link effettivi, pur essendo in grado di scaricare i file.
Questi metodi richiedono che il codice sorgente sia chiuso, come da un lato si devono offrire tutti i servizi necessari al fine di rendere decodificabili i link utili all'utente, ma allo stesso tempo garantire che egli non vedrà mai l'URL in un testo normale.
Quindi, per essere onesti, il concetto di pensare allo stesso obiettivo che i BD-ROM (Blue-Ray Disc n.d.r.) stanno tentando di raggiungere, permette sì all'utente di vedere il film, mentre rende effettivamente più difficile ottenere i dati in formato testo per copiarlo.
Devo dire che è chiaro e semplice il fatto che il suo DRM (Digital Rights Management n.d.r) sia un male, in teoria, ma è una guerra e quando c'è la guerra brutte cose devono essere fatte per un bene più grande.
Fino ad ora non esiste un vero e proprio File Hoster veramente open source. I clienti più conosciuti sono RSDownloader, Cryptload, Mipony, JDownloader e qualcun altro.
Tranne che per JDownloader, tutti gli altri sono completamente closed source. JDownloader fornisce la maggior parte dei propri sorgenti con licenza GPL, ma i binari compilati che forniscono non sono sotto licenza GPL e contengono componenti proprietari per la protezione dei link. Anche se qualche sviluppatore vuole contribuire al loro progetto, deve essere avanzata una richiesta per iscritto, così che gli sviluppatori ufficiali possano mettere sotto licenza il suo codice come meglio credono.
La loro componente di protezione proprietaria dei link del server è a disposizione di altri sviluppatori su richiesta sotto una rigida serie di regole che devono seguire; la mancanza di queste provoca la chiusura dell'account e la componente viene resa inutilizzabile. Le restrizioni che fondamentalmente lo sviluppatore deve seguire riguardano il divieto di condividere i suoi dati account con qualsiasi terza parte ed il divieto di conservare su disco rigido i link ottenuti sotto forma non protetta dall'accesso degli utenti o mostrarli loro in testo normale.
Quindi, l'obbligo di essere autorizzati ad utilizzare il componente di protezione dei link è incompatibile con i requisiti della GPL. Lì per lì non ci sarà mai una Mod ben descritta di JDownloader.
Inoltre, dovrebbe essere ovvio che se noi indicizzassimo milioni di link hoster in una rete distribuita nella quale è facile trovarli, tutti i link "interessanti" verrebbero quasi subito rimossi, così come se li presentassimo ai nostri nemici, per così dire, su un piatto d'argento. Semplicemente questi lasceranno che i loro bot chiedano alla nostra kad per i file che intendono disfarsi e quindi invieranno automaticamente i link agli hoster per la rimozione.
Quando si pensa che i maggiori problemi per il P2P sorgano per le stesse cause attribuibili alle comunità di file Hoster, anche se non sono altrettanto gravi su scala globale, le persone sbagliate guadagnando l'accesso alle reti o a dati riservati. Se nessuna società di sorveglianza Internet potesse connettersi a un client ed2k o ad un client torrent, la maggior parte dei problemi che gli utenti P2P devono affrontare al giorno d'oggi in ampie porzioni di Europa non esisterebbe.
In poche parole, mantenere il codice chiuso è utile al fine di proteggere gli utenti dalla Sorveglianza, estorsione e Censura di Internet, con ogni mezzo necessario, e questo include una buona parte della sicurezza attraverso l'oscuramento per tenere le persone sbagliate fuori dalle reti.
Quindi, dal momento che per ed2k e bt è già troppo tardi visto che questi protocolli sono già trapelati alla censura di Internet, Sorveglianza ed Aziende d'estorsione, dall'altra parte NeoShare usa NeoKad, che è una rete anonima, per cui si potrebbe pensare nulla di male a rilasciare i suoi componenti open source. Per ed2k e BT questo è certamente vero, e per qualche tempo abbiamo pensato che valesse anche per NeoKad visto che è pesantemente anonima. Ma purtroppo siamo stati costretti a cambiare questa opinione nel Marzo 2012:
https://torrentfreak.com/anonymous-file-sharing-ruled-illegal-by-german-court-121123/ visto che un tribunale tedesco ha stabilito che un utente che stava tramettendo i dati per qualcun altro, nonostante il fatto che non avesse consapevolmente o volontariamente partecipato alla trasmissione dei dati crittografati e che a causa della crittografia non fosse stato in grado di impedirne il trasferimento o la violazione in qualsiasi modo, è ancora responsabile per l'infrazione che è stata commessa usando il suo client come trasmettitore. E' la legislazione folle, ma purtroppo non senza precedenti in Germania, in fondo per loro l'ultima persona privata che può essere identificata e che ha qualcosa a che fare con i dati violati viene perseguita.
Quindi, in quale altro modo possono essere protetti gli indirizzi IP degli utenti tedeschi dagli specialisti dell'estorsione?
Beh potrebbero utilizzare una VPN che non si trova in una repubblica delle banane come la Germania, quindi non c'è tanto bisogno di una rete di FileSharing anonima in questo caso, però anche una buona VPN in termini di anonimato non conferisce un completo indirizzo IP, ma al massimo dà la possibilità di eseguire il NAT di alcune porte selezionate. Quindi, la maggior parte degli utenti soffrirà del fatto di essere non raggiungibile dall'esterno se non attraverso il NAT-Traversal, in altre parole avranno un ID basso. Anche utilizzare una rete VPN non può essere considerata una soluzione reale, piuttosto è una soluzione grezza.
E in aggiunta a questo, a meno che la VPN funzioni gratis, si possono avere dei problemi ad ottenere un account:
http://torrentfreak.com/paypal-cuts-off-pirate-bay-vpn-ipredator-freezes-assets-130724/ visto che l'Agenzia di Sorveglianza di Internet in questo momento intende reprimere i pagamenti effettuati ai provider VPN al fine di fermare il flusso di soldi verso quest'ultimi.
Allora quale potrebbe essere una soluzione reale?
Bene, deve avere un suo depistaggio crittografico e un sacco di offuscamento, dobbiamo rendere impossibile il riconoscimento di tutto il traffico IP sulla scheda di rete effettuato da qualsiasi utente di un nodo NeoKad connesso, in modo da non distinguere il traffico di transito dal traffico che termina sul suo nodo e che viene indirizzato al componente NeoShare.
I giudici tedeschi possono sì incolpare qualcuno basandosi sull'inconsapevolezza e l'indisposizione nel partecipare al trasferimento di dati dovuto alla sua negligenza, ma essi non possono punire qualcuno solo per aver avviato un nodo di trasmissione di dati sconosciuti verso una terza parte altrettanto sconosciuta. Essi devono almeno dimostrare a un particolare nodo operatore che il loro nodo ha trasmesso dati contraffatti. Ora, grazie al depistaggio, la sorveglianza di Internet e le Società di estorsione non possono individuare un flusso di dati che vedono uscire dal binario NeoKad in merito ad un particolare nodo con il quale NeoKad sta scambiando dati. Usando un esempio semplificato: se ci sono 3 flussi senza restrizioni e 2 flussi in uscita oltre ad una terminazione a livello locale, essi dall'esterno non possono affermare che uno dei 3 tunnel stia fornendo dati contraffatti, quindi non possono fare causa a nessuno. Questo depistaggio funziona solo a patto che si tratti il binario NeoKad come una scatola nera sul cui funzionamento interno non si ha alcuna conoscenza. Ciò non significa, in questo caso particolare, che non è permesso sapere in linea di principio ciò che sta facendo, in teoria, solo che non è permesso sapere ciò che sta esplicitamente facendo in quel momento. Ciò significa che i sorgenti potrebbero essere aperti, a condizione che nessuno sia in grado di partecipare con un binario modificato (con l'aggiunta di funzionalità di registrazione) nella rete globale NeoKad ufficiale.
Questo suona un po' complicato, non è vero? Come si fa a tenere il sorgente aperto e funzionale e allo stesso tempo mantenere il controllo sui binari con i quali è possibile collegarsi alla rete?
Siamo in grado di risolvere questo enigma utilizzando 2 tipologie di traporto: uno aperto e disponibile per la versione open source ed una esclusivo disponibile solo per la versione closed source compilata da noi. Gli utenti del nostro binario potranno scegliere (di default dovrebbe essere impostata sulla base della geolocalizzazione IP) se vogliono utilizzare entrambi i protocolli di trasporto o solo quello proprietario protetto; quest'ultimo garantisce, in misura ragionevole, che se una connessione può essere stabilita e mantenuta, significa che il binario non è modificato e quindi legittimo.
In questo modo la versione open source di per sé è completamente funzionale nonostante la mancanza di un protocollo di trasporto. Come già descritto in precedenza, la rete è progettata in modo tale che ogni frammentazione non la suddividerà né ostacolerà il suo funzionamento.
E questo è il piano, il rilascio di NeoKad sotto una appropriata licenza Open Source che non è compatibile con la GPL:
http://piratepad.net/x43RU73nQN, in pratica si può pensare alla licenza del tipo BSD / MIT con una clausola che vieta di mettere il codice sotto una forte licenza copyleft come la GPL. Visto che dobbiamo garantire i miglioramenti apportati da terze parti al codice NeoKad, rimarrà indietro il rilascio del nostro (o di qualcun altro) sorgente chiuso resistente alla sorveglianza.
In pratica, questo è tutto ciò che si intende per l'apertura dei sorgenti di NeoLoader o delle sue parti in futuro.
Beh, è ovvio che alcune importanti caratteristiche di sicurezza non possono funzionare quando sono a sorgente aperto e quelle, per il momento, saranno sempre a codice chiuso.
Solo se i Partiti Pirata in tutto il mondo vanno negli uffici e riescono a cambiare la politica globale renderanno i componenti closed source obsoleti.
Fino ad allora, in un futuro terremo in considerazione il rilascio di un client Neoloader con funzionalità ridotte, quindi Open Source e che non offrirà le caratteristiche di protezione aggiuntive. Dal momento che in fondo non si ha la protezione dei link, renderebbe il supporto Hoster inutile, il client molto probabilmente mancherebbe di tutto il sistema di sub Hoster e quindi sfrutterebbe solo la funzionalità di condivisione P2P, così lo chiameremo NeoShare.
Visto che le caratteristiche Hoster sono integrate in molte parti di NeoLoader, non è così semplice separare tutto in maniera pulita. Questo vorrebbe dire che dovremmo mantenere 2 progetti e non abbiamo la forza lavoro per questo.
Attualmente stiamo pensando di spostare le parti di codice relative al P2P (ed2k e bt) inserendole in librerie in modo che possano essere utilizzate da altri progetti come
http://quazaa.sourceforge.net/ con i quali stiamo collaborando un po'. Usare le librerie non dovrebbe richiedere il mantenimento di due distinti progetti e lo stesso vale per il codice della libreria che dovrebbe essere lo stesso utilizzato da NeoLoader.
Ma anche questo non è così semplice e ci vorrà molto tempo, abbiamo bisogno di modificare il codice per utilizzare un adeguato modello di fabbrica e di facciata oltre ad avere una API (Application Programming Interface n.d.r.) che ci permetta di agganciare dinamicamente le nostre estensioni proprietarie.
Potete trovare alcuni componenti Open Source su gitorius:
https://gitorious.org/ ~ davidxanatos
8)
Cosa ne pensi del calo di utenza di eMule e della fine (apparente) del suo sviluppo?David Xanatos:
Credo che gli sviluppatori di eMule abbiano fatto/adottato decisioni progettuali sbagliate oltre una decade fa; allora non sembrarono così dannose, ma col passare del tempo si sono rivelate un grande ostacolo al successo di eMule. E come per ogni decisione politica, a un certo punto non si può tornare sui propri passi senza perdere la faccia.
Ciò di cui sto parlando è il sistema di crediti di eMule e lo stile
FiFo (First In First Out) della coda. La coda erà già parte dell'originale protocollo eDonkey ma, se non ricordo male, (iirc*) Meta-machine [/color] (inventori dell'ed2k originale) capirono l'errore progettuale ed aggiunsero il sistema di horde[/color] che grossomodo somiglia al
BitTorrent Swarm e fornisce un'esperienza di download soggettivamente[?] migliore di quella possibile con qualsiasi sistema FiFo.
L'aspettativa principale di qualunque utente "non estremo" è che quando si fa partire un download, questo parta sul serio. Con BitTorrent essenzialmente si inserisce un
magnet link ad un file video che si vuol vedere, e se è popolare a sufficienza si può iniziare a guardarlo in tempo reale, mentre è ancora in download. Con i sistemi a lunghe code di tipo FiFo, questo non accadrà mai.
Un'esperienza di utilizzo accettabile richiederebbe che la velocità di download non sia una funzione – crescente in modo monotono – della durata del download stesso, ma piuttosto che si mantenga grossomodo costante per l'intera durata del download. Anche se la velocità di download media per tutto il download fosse costante in entrambi i casi, un download che parte lentamente è sostanzialmente un'esperienza di download peggiore di un download che mantiene una mediocre ma costante velocità nel tempo.
Per ottenere una velocità approssimativamente costante occorre un sistema di upload che distribuisca la larghezza di banda a tutti gli utenti indipendentemente dai loro tempi d'attesa, ad esempio in modo casuale.
La maggior parte dei client BitTorrent oggi ha due modi di operare: uno per i file incompleti in download ed uno per i file completi in upload. L'upload dei file completi è distribuito in modo completamente casuale a tutti i richiedenti.
Per i file incompleti viene impiegato un sistema di scambio: gli slot vengono aperti casualmente ma se non iniziano a restituire qualcosa in upload entro un intervallo di tempo ragionevole, vengono terminati e si inizia una nuova sessione. Gli slot che invece mantengono un rapporto upload/download accettabile per tutta la durata della connessione vengono tenuti aperti indefinitamente (come in un sistema horde tipo eDonkeyHybrid).
Questa fondamentale differenza nella gestione dell'upload è, secondo me, la ragione principale del successo di BitTorrent.
Se eMule non vuole lentamente svanire nell'oscurità, è necessario che si inizi ad utilizzare una coda di upload egualitaria e casuale, oltre a sbarazzarsi dei sistemi di crediti e dei relativi SUI.
Un altro grande problema è che le persone dietro ad eMule pensano di poter imporre agli utenti di utilizzare il loro client nel modo che loro ritengono più opportuno ossia, come già affermato: lasciarlo in esecuzione 24 ore al giorno 7 giorni su 7, lasciandoli risolvere manualmente i loro problemi di ID basso (nel caso, anche cambiando l'ISP), eccetera...
Questo atteggiamento paternalistico è semplicemente ridicolo: gli utenti non sono costretti da nessuno ad usare eMule e ci sono abbastanza alternative che non cercano di "adattare" l'utente la programma ma che piuttosto adattano volentieri il programma ai vari bisogni che gli utenti possono avere.
L'esempio più emblematico di quest'attitudine è l'ostinato rifiuto di aggiungere il NAT-Traversal al client ufficiale: Gli sviluppatori di eMule ufficiale, sostengono che il NAT-T farebbe sì che gli utenti non siano più così insoddisfatti dei loro ID bassi, così che molti meno utenti cercherebbero di risolvere i loro problemi di ID basso. Gli sviluppatori ufficiali ignorano completamente tutti gli utenti che non possono avere un ID alto per motivi tecnici. E, siamo onesti, l'utente d'oggi: od ottiene un ID alto grazie all'UPnP, o si tiene l'ID basso e si accontenta, o risolve i suoi problemi di ID basso disinstallando eMule ed installando uTorrent, che del resto è fornito di NAT-T proprio come quasi tutti i client BitTorrent aggiornati.
9)
Qual è il motivo per cui hai abbandonato l'emule-project (come sviluppatore attivo) e da cosa nasce l'astio che esiste nei tuoi confronti?David Xanatos:
Ho lasciato lo sviluppo di eMule poiché non mi sentivo più mestesso nell'utilizzare il mio NeoMule come principale strumento per il download, al contrario usavo per lo più Torrent e siti di Hosting.
Inoltre, non ha aiutato a tenermi interessato al progetto il fatto che nessuno ( tra gli sviluppatori ufficiali di mod ) abbia mai implementato una qualsiasi delle mie protocol extensions nelle loro mod;
per il NAT-T ho persino creato una implementazione di riferimento ( una mod di eMule con solo il NAT-T ), ma nessuno si è dimostrato interessato.
Riguardo il rancore nei miei confronti, posso solo provare ad indovinare, piacerebbe anche a me saperlo.
Penso che la causa sia dovuta a diverse cose, in primis il fatto che sono uno sviluppatore estremamente abile e non manco di farlo notare agli altri ( cosa che è comunemente associata all'arroganza ).
Inoltre sono vero anarchico, non rispetto alcuna autorità, altra caratteristica che non è sempre apprezzata.
Tra l'altro non manco di criticare qualsiasi cosa che considero inefficiente o per la quale ho un'idea per migliorarla, travolgendo senza ritegno qualsiasi "dogma sacro" che possa esserci sull'argomento.
La scintilla che ha creato la controversia sembra essere stata la mia collaborazione con Ekliptor, che in passato ha sviluppato note Leecher Mod.
La decisione di non rendere il codice sorgente di NeoLoader pienamente pubblico fin dall'inizio ha soltanto aggiunto benzina sul fuoco.
10)
Recentemente nella comunità emule-project è nato il nuovo client kMule, sviluppato da Tuxman e Wizard, tu cosa pensi a riguardo?David Xanatos:
Penso che sia un promettente tentativo per salvare eMule dal diventare obsoleto; hanno fatto sicuramente dei buoni miglioramenti per arrivare ad un'applicazione user friendly.
Ma se vogliono veramente avere successo, devono rompere con il dogma che vuole che il sistema di upload di eMule sia accettabile e implementare invece un sistema di upload stile Torrent. Questo permette che i download partano subito e non impone agli utenti di dover tenere acceso il client tutta notte. Non so se sono disposti a farlo ma, ovviamente, un sistema simile potrà solo portare sollievo agli utenti, sempre se questo verrà adottato da una porzione sostanziale della rete. E quindi, io non so neanche se possano farcela, intendo cioè diventare il client ed2k leader della rete (nota del redattore: penso intenda; visto che secondo lui un sistema di upload di questo tipo impone avere una grossa parte della rete, kmule dovrebbe diventare il client ed2k più diffuso nella rete).
Quello che gli manca in questo momento è una "killer feature" che faccia sì che l'utente medio metta il suo vecchio eMule nella pattumiera e usi kMule al suo posto. Al momento non riesco ancora a vedere questa cosa, ma sicuramente kMule ha del potenziale e spero anche il coraggio per farcela, anche se questo significa rompere con una qualche linea di condotta antiquata.
Ho letto che wizard vorrebbe aggiungere il
NAT-T a qualche futura versione di kMule; questo sarebbe un esempio di una "killer feature" che il mondo di eMule attende. Adesso che gli indirizzi IPv4 si stanno esaurendo, alcuni ISP Europei hanno iniziato a vendere contratti adsl con indirizzi IPv4 condivisi portando molti utenti ad avere LowIDs (ID basso) irrisolvibili. Il NAT-Traversal porterebbe un notevole vantaggio a tutti questi utenti. QUindi ho investito un giorno di lavoro e ho fatto una versione aggiornata della "reference implementation" del NAT-T v3 (
https://gitorious.org/neomule/neomule_reloaded); forse la terza versione è più allettante e finalmente qualcuno la adotterà.
La presente intervista è pubblicata con licenza Creative Commons Attribution 3.0 License