2006/10/26 08:15:51.084 GMT-4

Exil HOWTO: BitTorrent

Il codice sorgente di BitTorrent e' estremamente interessante:
un esempio di come si possa realizzare in Python un applicazione completa (che include, oltre l' applicazione, anche la GUI ed il generatore dell' installer), multipiattaforma e dalle funzionalita' complesse, con una quantita' di codice, tutto sommato, abbastanza contenuta.

Sicuramente rappresenta una miniera di buone idee per chiunque abbia intenzione di  realizzare  applicazioni P2P in Python, in particolare per quanto concerne l' utilizzo combinato (e multipiattaforma) delle librerie di cui BitTorrent fa' uso:
  • wxPython, per la gestione dell' interfaccia grafica;
  • Khashmir, per la gestione trackerless dei torrent  (introdotta nella versione 4.1.0 a seguito dell'entrata di Andrew Loewenstern nel team di sviluppatori);
  • Twisted, per la gestione asincrona degli eventi (introdotto nella versione 4.1.5).


Ovviamente BitTorrent e' stato realizzato per uno scopo completamente differente rispetto a quello di Exil:

lo scambio di file effettuato in maniera da ottimizzare l' utilizzo delle risorse di rete; ed a tale fine utilizza una serie di algoritmi che consentono uno scambio di dati, tra i vari peer, in maniera che sia il piu' equo possibile (a chi fosse interessato ad approfondire l' argomento consiglio di leggere questo e questo).

Exil utilizzera' un modello di funzionamento diverso da quello di  BitTorrent:
  • ogni peer avra' il compito di gestire un suo sottoinsieme di database (contenente un sottografo del CNG, piu' eventualmente una copia locale di alcuni blog indicizzati); non e' necessario (ed in generale, superata una certa dimensione, nemmeno fattibile) che ogni peerCNG abbia una copia completa del grafo.
  • non ci sara' un tracker a svolgere le funzioni  di controllo dei dati scambiati tra i peer, anche se un compito simile lo svolgeranno i peer addetti al ruolo di proxy delle query sul grafo; che in realta', utilizzando la stessa strategia impiegata in altri protocolli  P2P, come ad esempio FastTrack (KaZaA, Skype) e Gnutella, saranno dei superpeer.

Sostanzialmente Exil utilizzera' le stesse librerie di BitTorrent (Twisted, Khashmir, wxPython) ma in maniera completamente differente.

Posted by: swarzy.2006/10/26 08:15:51.084 GMT-4
Tags: kademlia bittorrent exil khashmir search-engine p2p | Permalink

Post a comment





The CAPTCHA image

Please enter the letters shown in the image in the following text box. Provided by Captchas.net