Transmission 4.0.0 llega con base en C++, BitTorrent v2 y mas

Transmission

Transmission es un cliente P2P liviano, gratuito y de código abierto para la red BitTorrent.

Después de casi tres años de desarrollo se dio a conocer el lanzamiento de la nueva versión de Transmission 4.0.0, versión en la cual se llevó a cabo una importante refactorización del código base, lo que permitió reducir el tamaño del código en un 18 %, mejorar la cobertura de las pruebas y simplificar el mantenimiento.

Para quienes desconocen de Transmission, deben saber que este es un cliente de BitTorrent relativamente liviano y poco exigente escrito en C y compatible con una variedad de interfaces de usuario: GTK, Qt, Mac nativo, interfaz web, daemon, CLI.

Principales novedades de Transmission 4.0.0

El cambio clave en la nueva rama fue la traducción del código base de C (C90) a C++. Anteriormente, solo la interfaz basada en Qt se escribía en C++. La principal razón para trasladar todo el proyecto a C++ es el deseo de aprovechar las funciones adicionales proporcionadas en la biblioteca estándar de C++ y la disponibilidad de una verificación de tipo más avanzada en C++. La interfaz de GTK se movió para usar gtkmm, un contenedor de GTK para el lenguaje C++.

Por la parte de las mejoras, se destaca que, se agregó el soporte para usar torrents en formato BitTorrent v2 y torrents híbridos (por ahora, solo el uso de torrents listos para usar, la capacidad de crear torrents basados ​​en BitTorrent 2 aparecerá en uno de los próximos lanzamientos). En BitTorrent v2 se ha desplazado el uso del algoritmo SHA-1 en favor del SHA2-256, que se utiliza tanto para el control de integridad de bloques de datos como para entradas en índices (info-diccionario), lo que rompe la compatibilidad con DHT y rastreadores.

La interfaz web se ha reescrito utilizando métodos de desarrollo de JavaScript más modernos y se ha adaptado para su uso en dispositivos móviles. El código se salva del uso de la biblioteca jQuery, ademas de que la interfaz web comprimida ahora solo ocupa 68 KB.

El rendimiento fue significativamente mejorado: probar el lanzamiento del demonio de transmisión con 25 mil torrents mostró una disminución en la carga de la CPU en un 50 % y una disminución en el consumo de memoria en un 70 % en comparación con Transmission 3.00.

La interacción del proceso en segundo plano con las interfaces GUI (transmission-qt y Transmission-web) se cambió a RPC que se ejecuta en modo de tabla, lo que redujo el tamaño de los datos transmitidos y los requisitos de ancho de banda. Para comprimir los datos transmitidos a través de RPC, se usa la biblioteca libdeflate más optimizada en lugar de zlib.

De los demás cambios que se destacan:

  • El usuario tiene la oportunidad de configurar rastreadores predeterminados que se pueden usar para anunciar todos los torrents públicos.
  • Las semillas recién agregadas se lanzan inmediatamente, con operaciones de validación realizadas según sea necesario (sin realizar una verificación completa antes del lanzamiento).
  • Se agregó una opción para excluir al crear nuevos torrents información que podría usarse para identificar indirectamente a un usuario (por ejemplo, fecha de creación y User-Agent).
  • Se agregó soporte de lista negra para IPv6.
  • El sistema de pruebas unitarias se ha transferido para usar Google Test.
  • Se aseguró el lanzamiento de ensambles basados ​​en Clang en el sistema de integración continua.
  • La librería base fue fuzz testing.
  • Se ha implementado el proceso de chequeo de código nuevo en los analizadores estáticos Sonarcloud, Coverity, LGTM y clang-tidy.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

¿Cómo instalar Transmission en Linux?

Para los que sean usuarios de Debian, Ubuntu, Linux Mint o cualquier distribución derivada de estos, instalan la aplicación con:

sudo add-apt-repository ppa:transmissionbt/ppa -y
sudo apt install transmission

Si son usuarios de Fedora o distribuciones basadas en esta, pueden instalar la aplicación con el siguiente comando:

sudo yum install transmission

Mientras que para los que son usuarios de Mandriva Linux deben de instalar con este comando:

sudo urpmi transmission

Para el caso de los que son usuarios de openSUSE, deben de teclear lo siguiente en la terminal:

sudo zypper install transmission

Finalmente, para el caso de los que son usuarios de Arch Linux y distribuciones derivadas de esta, pueden instalar con este comando:

sudo pacman -S transmission

De igual manera se puede realizar la compilación de Transmission en el sistema desde su código fuente, solo deben de seguir los siguientes pasos para poder hacerlo.

Su código fuente se encuentra alojado en GitHub por lo que deben de tener el soporte de git para que puedan clonar el repositorio.

Vamos a abrir una terminal y teclear en ella lo siguiente.

Primero vamos a obtener el código fuente con:

git clone https://github.com/transmission/transmission Transmission

Entramos al directorio:

cd Transmission

Y comenzamos la compilación con los siguientes comandos que debemos teclear uno a uno:

git submodule update --init
mkdir build
cd build
cmake ..
make
sudo make install

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.