Sempre più spesso si sente parlare di distribuzioni che consigliano il download della nuova versione del proprio sistema operativo attraverso BitTorrent. È il caso ad esempio dell'ultima Slackware o di Mandrake, quest'ultima addirittura prima della disponibilità pubblica delle immagini dei CD, quando erano solo scaricabile agli iscritti al Mandrake Club. Ma cosa è BitTorrent? Perchè alcuni progetti si affidano a questo mezzo per la distribuzione del proprio software? Quali sono i vantaggi che derivano dal suo utilizzo?
Cosa è BitTorrent
BitTorrent è un sistema di tipo client/server che rientra nella categoria dei software di file sharing. Nemico numero uno delle major discografiche, facile (ma illegale) fonte di materiale per l'intrattenimento per molti, i sistemi di file sharing hanno avuto in questi anni un'evoluzione continua. I meriti del loro successo sono la sua struttura decentralizzata che consente agli utenti di non dover dipendere da un'unica fonte, che può non essere in grado di soddisfare tutte le richieste, e la grande disponibilità di file che aumenta con gli utenti che decidono di utilizzare questo sistema.
BitTorrent è un sistema a metà strada tra il file sharing e un normale server web. Il meccanismo è quello di scaricare un file (un file con estensione .torrent) contenente un riferimento all'host (detto tracker) che terrà traccia di chi scarica il file che si vuole condividere (ad esempio un'immagine .iso della nostra distribuzione Linux preferita).
In questo modo chiunque volesse scaricare l'ISO farà riferimento a un tracker che fornirà la lista degli host in grado di farci scaricare il file richiesto. Come ogni sistema di file sharing che si rispetti, chiunque scarica un file consente necessariamente anche l'upload.
Il sistema di download
BitTorrent suddivide il file in piccoli pezzi (detti chunk) da 250 KB l'uno. Questo offre principalmente due vantaggi (comuni comunque anche a molti altri sistemi di file sharing): da un lato è possibile scaricare contemporaneamente da più fonti uno stesso file (un pò come i vari download accelerator per il web e FTP) un chunk per ogni peer, dall'altro appena scaricato un chunk lo si mette automaticamente in condivisione, senza dover quindi aspettare di avere il file completo. La dimensione ridotta dei chunk, sommata al fatto che il tracker conosce esattamente tutti coloro che stanno scaricando un file (al contrario, altri sistemi di file sharing utilizzano un server che tiene traccia di chi ha cosa, ma per sua stessa natura è limitato ai soli utenti connessi) fa di BitTorrent uno strumento per scaricare un file in maniera rapidissima, più di quanto in genere è possibile aspettarsi da un normale sito web o da un qualsiasi altro sistema di file sharing.
È possibile pensare a BitTorrent come un normale download di un file tramite http o FTP fatto con un sistema di tipo "download accelerator", solo che il file non viene scaricato da un server ma da un insieme di altri utenti i quali a loro volta stanno scaricando (o hanno finito) il file. Inoltre rispetto al download tradizionale via web, BitTorrent offre la possibilità di controllare che non ci siano stati errori in fase di trasferimento grazie a controlli sull'integrità fatti per ogni chunk. Ed è qui che è facile pensare a quali siano i vantaggi per le società che si affidano a questo strumento per diffondere il proprio software: grazie a BitTorrent hanno la possibilità di utilizzare un sistema affidabile e veloce, senza il rischio di avere sovraccarichi sui propri server, e senza spendere ingenti capitali per una connettività che soddisfi le richieste dei propri utenti. BitTorrent rivoluziona il download, dandovi un approccio "comunitario" tipico del software libero. In questo senso la scelta di affidarsi a questo strumento per offrire ai propri utenti dei file su Internet si rivela necessariamente una scelta vincente.
Installazione
Il sito di riferimento è http://bitconjurer.org/BitTorrent. Da lì potete scaricare i pacchetti precompilati per Red Hat e Debian (solo testing e unstable, poiché BitTorrent 3.3, la versione più recente alla scrittura di questo articolo, richiede Python 2.3, non presente su Debian Stable). È possibile comunque trovare i pacchetti precompilati per le altre distribuzioni cercando come al solito su http://rpmfind.net. Nella versione per Linux sono previste due interfacce per scaricare un file attraverso un torrent: una testuale (btdownloadcurses) e una grafica (btdownloadgui). A uno di questi due binari bisogna far seguire il file .torrent scaricato via web per avviare il reale download.
Come è specificato nella documentazione allegata al programma (file INSTALL.unix.txt), è possibile cliccando da browser sul link del torrent far partire in automatico btdownloadgui. Per far questo bisogna aggiungere alla fine del file /etc/mailcap una linea del tipo
application/x-bittorrent; /usr/bin/btdownloadgui.py %s; test=test -n "$DISPLAY"
(se differente sostituire il percorso di btdownloadgui.py con quello reale)
In alternativa è possibile usare anche MLDonkey, del quale vi abbiamo già parlato, compatibile anche con questo sistema di file sharing.