Hola lectores! El día de hoy les voy a enseñar a crear un servidor de torrent con una Raspberry Pi, con la finalidad de que puedan compartir sus archivos con sus amigos. Además, al hacerlo con una Raspberry Pi, contamos con la ventaja de poderla dejar funcionando 24/7 y no consumirá nada de energía.
Si su Raspberry Pi es la versión 4, tengan en cuenta que levanta mucha temperatura y necesitaran enfriarla. Para ello pueden leer mi post sobre como disminuirle la temperatura a una Raspberry Pi 4
Lo primero que deben hacer, es tener una Raspberry Pi con Raspbian, que pueden descargarla desde su web oficial: https://www.raspberrypi.org/downloads/
Una vez instalada, vamos a actualizar el sistema operativo con los siguientes comandos:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get update
Nota: como se puede ver, ejecuto dos veces el update, al principio y al final. A esto lo hago por si el upgrade descargó algun repositorio nuevo, de esta forma, además de descargarlo, lo dejamos actualizado.
Ahora pasaremos a la parte de la instalación de Transmission. Para quienes no sepan lo que es, es un cliente de torrents. De esta forma podremos descargar y cargar archivos a nuestra red P2P.
Una vez descargado, lo podremos ver en nuestro menú en la parte de «Internet»
Ahora vamos a Archivo >> Nuevo
Acá debemos seleccionar en que carpeta querremos guardar el .torrent (Archivo que contiene información del torrent) y el archivo fuente, que es el archivo que queremos compartir.
Una vez hecho esto, clickeamos en «Nuevo» y se añadirá a nuestra lista.
Ahora simplemente debemos enviarle ese .torrent a un amigo nuestro o podemos generar un «link» de descarga dando click derecho y seleccionamos la opción «Copiar enlace Magnet al portapapeles». Este link tiene un hash con la información del torrent. Al igual que el archivo .torrent, podemos enviarle este link a nuestros amigos para que descarguen nuestro archivo. (Funciona con cualquiera de las dos formas)
Como mencioné al principio del post, esto sirve para tener la Raspberry Pi todo el día funcionando sin tener que preocuparse por el consumo energético. En mi caso, estoy utilizando una Raspberry Pi 4 (La versión de 4GB) y tiene un defecto, el cual es que levanta mucha temperatura. Pero en mi próximo post explicaré como bajarle la temperatura de 60º a 30º… Pero no quiero desviarme ahora.
Como tengo que escribir 600 palabras para que este post rankee bien en Google, voy a aprovechar y voy a explicar como funciona un torrent.
BitTorrent o Torrent es un sistema de compartición de archivos de tipo P2P (Peer to Peer o entre pares).
Siempre que navegamos por internet, jugamos en linea, etc. Se utiliza una estructura Cliente-Servidor
En el caso de los Torrent, esta estructura desaparece (evitando la capa de control de archivos) y la transferencia es directa con el resto de los pares.
El torrent tiene 2 característica:
1- Garantía de descarga de archivos a través de la red (de forma rápida y segura)
2- Posee un algoritmo que evita que los usuarios solo descarguen archivos sin contribuir al sistema.
Para poder utilizar torrent y compartir/descargar archivos, es necesario un cliente de torrent (En este post vimos Transmission) pero hay varios clientes como QB, uTorrent, Vuze, entre otros.
La palabra BitTorrent significa BIT = unidad de medida más elemental de los datos y TORRENT = que significa que seremos parte del torrente del flujo de información. Al instalar un cliente de los anteriormente mencionados, aceptamos los acuerdos de descargar y compartir archivos. Es decir, pasamos a formar parte de este sistema de compartición de a pares y los demás usuarios podrán descargar de mi computadora los archivos que yo he descargado por medio de esta red.
Funcionamiento del torrent:
Suponiendo que tenemos un archivo que pesa 900MB, el cliente de torrent lo parte en 900 archivos de 1MB cada uno y los agrupa en bloques. Finalmente se crea el archivo .torrent que contiene información o las instrucciones de como debe ser descargado, como esta dividido, de donde se puede descargar, etc.
La computadora que pone este archivo para compartir, se lo conoce como Seed o Seeder (Semilla o Semillero) que inicia la compartición. El Seed envía este archivo .torrent o el link a las computadoras que quieren el archivo y al abrirlo, comienza la descarga de esos bloques según la disponibilidad del Seed. A estas computadoras se las conoce como Leech (Sanguijuela), es decir, que se esta alimentando de los datos entregados por el seed.
Suponiendo que hay 10 computadoras descargando un mismo archivo, y una de ellas tiene una buena conexión a internet y termina, esta inmediatamente se convierte en un Seed y el resto de los Leech pueden descargar el archivo o los bloques de este nuevo proveedor. Al tener multiples semillas, la descarga se les completará más rápido al resto de los Leech y luego también pasaran a ser Seeds de ese archivo.
Ahora… ¿Qué pasa si una computadora, después de descargar el archivo desconecta su conexión o quita el archivo y no aporta a la red?
Acá entra en juego la segunda característica de los torrents, que es el algoritmo «Choke» (Estrangulación)
Algoritmo Choke
Cuando una computadora recibe muchas peticiones de descarga, esta decide quienes pueden descargar sus archivos, y para ello se basa en la cantidad de datos que ha compartido en Torrent. Es decir, si un usuario ha descargado mucho más de lo que ha compartido, este usuario no será seleccionado. En otras palabras, la persona que no comparte, queda con muy baja prioridad para ser seleccionado para descargar, o simplemente no queda en la lista para descargar el archivo.
Esto es todo por ahora, y si les gustó, espero que dejen su comentario!