Como funciona o BitTorrent?


Feross Aboukhadijeh é um gajo dos computadores, apaixonado por tudo o que é código e programação. Com os seus 24 anos e um canudo de Standford em Computer Science na mão, já trabalhou em empresas como a Quora, o Facebook (integrou a equipa que desenvolveu o Facebook Groups) ou a Intel. Está, desde final de 2013, na Yahoo como engenheiro informático, depois de a sua empresa, PeerCDN, fundada nesse mesmo ano, ter sido comprada.

Feross nunca esteve parado: envolveu-se em vários projectos, alguns deles pessoais, outros em hackatons. Aos 14 anos, por exemplo, criou um site de vídeos flash que num ano atraiu 3 milhões de pageviews. Em 2010, antes de ir para o Facebook, criou um site em 3 horas, chamado YouTube Instant, que lhe valeu vários artigos na imprensa internacional, 1 milhão de visitas em 10 dias e uma oferta de emprego do então CEO da plataforma Chad Hurley.

Feross Aboukhadijeh vive em Mountain View, na Califórnia. Voou no início desta semana até Lisboa para falar na 22ª edição da SINFO sobre o BitTorrent. Como funciona o protocolo BitTorrent? Como podem os sites ser mais rápidos e quase instantâneos?

Torrents é um tema muito querido a Feross. Na verdade, a empresa que fundou no início de 2013, a PeerCDN, tem tudo a ver com torrents: a PeerCDN criou um mecanismo peer-to-peer de distribuição de conteúdos capaz de tornar os sites mais rápidos e com menos custos, baseando-se no WebRTC. Uma tecnologia que agradou à Yahoo, motivando-a a comprar a empresa no final de 2013. Mais recentemente, Feross tem estado a trabalhar num projecto chamado WebTorrent, que é um cliente BitTorrent de streaming para o browser.

Um torrent é um ficheiro pequeno, que “pesa” uns meros KB, mas que nos dá acesso a um ficheiro grande, como um álbum de música, uma app ou um filme. A ligação do torrent ao ficheiro grande (ou ficheiro de destino) é feita por via de BitTorrent, um protocolo de rede criado por Bram Cohen em 2011 que introduziu o conceito de partilhar o que já foi descarregado (peer-to-peer).

O torrent contém unicamente informação sobre o ficheiro de destino, isto é, sobre a localização das várias partes desse arquivo. Na verdade, o ficheiro de destino é dividido em várias partes menores que são partilhadas pelos utilizadores que já o descarregaram. Assim, quando iniciamos o download desse ficheiro de destino usando o respectivo torrent, as várias pequenas partes são requisitadas e são reconstituídas no arquivo final. No fundo, o download não é feito a parir de um só servidor, mas sim de vários, sendo que em cada um deles está uma parte pequena do filme, da app ou do álbum de música. Os torrents e o respectivo protocolo BitTorrent permitem que o download de ficheiros grandes seja significativamente mais rápido que numa rede normal, dado que não existem filas de espera, nem sobrecarga de um mesmo servidor.

Feross Aboukhadijeh pegou neste sistema de torrents e aplicou-o a um tipo de ficheiros ligeiramente diferente. O resultado chama-se WebTorrent.

Os sites a que acedemos diariamente encontram-se “guardados” em computadores, muitas vezes distantes de nós. Quanto mais “distante” o site, mais lento é o acesso – mesmo com uma ligação super-rápida à Internet. Todavia, para minimizar esta lentidão, versões do site são armazenadas em servidores mais perto de nós e que servem de “cache”. Assim, conseguimos um acesso relativamente rápido ao mesmo, ainda que em alturas de sobrecargas.

webtorrent

Mas a tecnologia de Feross (WebTorrent) promete tornar a web ainda mais eficiente: pega nos ficheiros inalteráveis de um site que esteja a ser visto por várias pessoas e partilha-os como se fizessem parte de um torrent. Desta forma, ao acedermos a uma página de um site, estamos, na verdade, a fazer o download de um ficheiro repartido por uma rede de computadores que também estão a consultar esse mesmo site. É como se toda a internet funcionasse à base de BitTorrent.

O WebTorrent concretiza-se num plug-in em JavaScript, que qualquer pessoa que tenha um website pode implementar sem comprometer a performance do mesmo. Ou seja, se o browser do visitante não suportar o plug-in, o download da página é feito normalmente via HTTP.

O trabalho de Feross é importante, na medida em que pode tornar a Internet mais rápida e eficiente, e assim menos stressante. Podes conhecer o WebTorrent e outros projectos de Feross no seu site pessoal.

[Mário Rui André contribuiu para este artigo]