Projet de conception senior Penn 2018
Première place dans le département CIS
David Cao ○ Dylan Mann ○ Alex Moses ○ Graham Mosley
Le trafic BitTorrent est abondant, mais difficile à analyser. Pour capturer suffisamment de données pour une analyse significative, une grande solution distribuée est nécessaire. Actuellement, les sociétés de recherche comme Nielsen ne parviennent pas à prendre en compte correctement la consommation illégale de médias. L'analyse du trafic BitTorrent permettrait aux entreprises d'étudier les comportements des consommateurs qui étaient auparavant invisibles aux mesures traditionnelles de popularité des médias.
Notre solution consiste à déployer des nœuds qui écoutent la table de hachage distribuée (DHT) BitTorrent Mainline. Chaque nœud exécute une version forkée de l'excellent repo mldht de the8472. Notre fourchette peut être trouvée ici. Une fois que notre nœud est découvert par ses pairs du DHT, il commence à acheminer les requêtes, à résoudre les torrents et à collecter des métadonnées sur les requêtes qu'il reçoit. Nous traitons ces données via notre pipeline et stockons les résultats traités dans Amazon S3 pour un accès facile.
Le produit principal de BoonTorrent est constitué de données chronologiques lisibles par machine pour la recherche. Nous avons également mis en œuvre deux applications de validation de principe basées sur ces données. Le premier est une visualisation de carte thermique mise à jour en temps réel avec les 2 dernières minutes de trafic, et le second est un moteur de recherche permettant de localiser des fichiers torrent spécifiques. En un mois, notre moteur de recherche a indexé 1,2 million de torrents représentant 46 millions de fichiers totalisant près de 4 pétaoctets. Notre pipeline et nos deux applications coûtent environ 10 $ par jour, et nous enregistrons et analysons environ 7 millions de points de données par jour. Nos travaux ont montré qu'il est possible de surveiller de manière rentable le trafic BitTorrent.
Emplacement | Description |
---|---|
indexeur-lambda | AWS Lambda qui indexe les torrents résolus, déclenchés par des événements de création d'objets s3. |
torrent-résumé-lambda | AWS Lambda qui récupère un torrent donné de S3 et décode les métadonnées. |
prototypes | Implémentations de prototypes. |
étincelle-scala | Code de traitement des étincelles local. |
donnéesutilisateur.sh | Script de données utilisateur pour les instances EC2. |
documents | captures d’écran et matériel de référence. |
application | Applications Web de preuve de concept écrites avec ejs. |
Un exemple de fichier journal Firehose peut être trouvé ici.
Sur une période d'un mois, nous avons exploré et indexé 1,2 million de torrents décrivant 46 millions de fichiers totalisant 4 Po.
Si vous êtes intéressé par les fichiers bruts .torrent ou les métadonnées, veuillez signaler un problème.