Projeto de Design Sênior Penn 2018
Primeiro Lugar no Departamento CIS
David Cao ○ Dylan Mann ○ Alex Moses ○ Graham Mosley
O tráfego do BitTorrent é abundante, mas difícil de analisar. Para capturar dados suficientes para análises significativas, é necessária uma grande solução distribuída. Atualmente, empresas de investigação como a Nielsen não conseguem contabilizar adequadamente o consumo ilegal de meios de comunicação social. A análise do tráfego do BitTorrent permitiria às empresas estudar comportamentos dos consumidores que antes eram invisíveis às medidas tradicionais de popularidade da mídia.
Nossa solução é implantar nós que ouvem a Mainline Distributed Hash Table (DHT) do BitTorrent. Cada nó executa uma versão bifurcada do excelente repo mldht do the8472. Nosso garfo pode ser encontrado aqui. Depois que nosso nó é descoberto pelos pares no DHT, ele começa a rotear consultas, resolver torrents e coletar metadados sobre as consultas que recebe. Processamos esses dados por meio de nosso pipeline e armazenamos os resultados processados no Amazon S3 para fácil acesso.
O principal produto do BoonTorrent são dados de séries temporais legíveis por máquina para pesquisa. Também implementamos dois aplicativos de prova de conceito baseados nesses dados. O primeiro é uma visualização de mapa de calor que é atualizado em tempo real com os últimos 2 minutos de tráfego, e o segundo é um mecanismo de busca para localizar arquivos torrent específicos. Em um mês, nosso mecanismo de busca indexou 1,2 milhão de torrents, representando 46 milhões de arquivos, totalizando quase 4 petabytes de tamanho. Nosso pipeline e ambos os aplicativos custam cerca de US$ 10 por dia, e registramos e analisamos cerca de 7 milhões de pontos de dados diariamente. Nosso trabalho mostrou que é possível monitorar o tráfego de BitTorrent de maneira econômica.
Localização | Descrição |
---|---|
indexador-lambda | AWS Lambda que indexa torrents resolvidos, acionados por eventos de criação de objetos s3. |
torrent-resumo-lambda | AWS Lambda que recupera um determinado torrent do S3 e decodifica os metadados. |
protótipos | Implementações de protótipo. |
escala de faísca | Código de processamento de faísca local. |
dados do usuário.sh | Script Userdata para instâncias EC2. |
documentos | capturas de tela e material de referência. |
aplicativo | Aplicações web de prova de conceito escritas com ejs. |
Um exemplo de arquivo de log do firehose pode ser encontrado aqui.
Durante o período de um mês, rastreamos e indexamos 1,2 milhão de torrents descrevendo 46 milhões de arquivos, totalizando 4 PB.
Se você estiver interessado nos arquivos .torrent brutos ou metadados, registre um problema.