Després de gairebé tres anys de desenvolupament es va donar a conèixer el llançament de la nova versió de Transmission 4.0.0, versió en la qual es va dur a terme una important refactorització del codi base, cosa que va permetre reduir la mida del codi en un 18%, millorar la cobertura de les proves i simplificar el manteniment.
Per als que desconeixen de Transmission, han de saber que aquest és un client de BitTorrent relativament lleuger i poc exigent escrit en C i compatible amb una varietat dinterfícies dusuari: GTK, Qt, Mac nadiu, interfície web, daemon, CLI.
Principals novetats de Transmission 4.0.0
El canvi clau a la nova branca va ser la traducció del codi base de C (C90) a C++. Anteriorment, només la interfície basada en Qt s'escrivia a C++. La principal raó per traslladar tot el projecte a C++ és el desig d'aprofitar les funcions addicionals proporcionades a la biblioteca estàndard de C++ i la disponibilitat d'una verificació de tipus més avançada a C++. La interfície de GTK es va moure per utilitzar gtkmm, un contenidor de GTK per al llenguatge C++.
Per la part de les millores, es destaca que, es va afegir el suport per fer servir torrents en format BitTorrent v2 i torrents híbrids (per ara, només lús de torrents llestos per utilitzar, la capacitat de crear torrents basats en BitTorrent 2 apareixerà en un dels propers llançaments). A BitTorrent v2 s'ha desplaçat l'ús de l'algorisme SHA-1 a favor del SHA2-256, que s'utilitza tant per al control d'integritat de blocs de dades com per a entrades en índexs (info-diccionari), cosa que trenca la compatibilitat amb DHT i rastrejadors.
La interfície web s'ha reescrit utilitzant mètodes de desenvolupament de JavaScript més moderns i s'ha adaptat per utilitzar-lo en dispositius mòbils. El codi se salva de l'ús de la biblioteca jQuery, a més que la interfície web comprimida ara només ocupa 68 KB.
El rendiment va ser significativament millorat: provar el llançament del dimoni de transmissió amb 25 mil torrents va mostrar una disminució en la càrrega de la CPU en un 50% i una disminució en el consum de memòria en un 70% en comparació amb Transmission 3.00.
La interacció del procés en segon pla amb les interfícies GUI (transmission-qt i Transmission-web) es va canviar a RPC que s'executa en mode de taula, cosa que va reduir la mida de les dades transmeses i els requisits d'amplada de banda. Per comprimir les dades transmeses a través de RPC, es fa servir la biblioteca libdeflate més optimitzada en lloc de zlib.
Dels altres canvis que es destaquen:
- L'usuari té l'oportunitat de configurar rastrejadors predeterminats que es poden fer servir per anunciar tots els torrents públics.
- Les llavors acabades d'agregar es llancen immediatament, amb operacions de validació realitzades segons calgui (sense realitzar una verificació completa abans del llançament).
- S'ha afegit una opció per excloure en crear nous torrents informació que es podria utilitzar per identificar indirectament un usuari (per exemple, data de creació i User-Agent).
- S'ha afegit suport de llista negra per a IPv6.
- El sistema de proves unitàries s'ha transferit per utilitzar Google Test.
- Es va assegurar el llançament d'assemblatges basats en Clang al sistema d'integració contínua.
- La llibreria base va ser fuzz testing.
- S'ha implementat el procés de revisió de codi nou als analitzadors estàtics Sonarcloud, Coverity, LGTM i clang-tidy.
Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls en el següent enllaç.
Com instal·lar Transmission a Linux?
Per a la els que siguin usuaris de Debian, Ubuntu, Linux Mint o qualsevol distribució derivada d'aquests, instal·len l'aplicació amb:
sue add-apt-repository ppa:transmissionbt/ppa -i suo apt install transmission
si són usuaris de Fedora o distribucions basades en aquesta, poden instal·lar l'aplicació amb el següent comanda:
sudo yum install transmission
Mentre que per als que són usuaris de Mandriva Linux han d'instal·lar amb aquesta comanda:
sudo urpmi transmission
Per al cas dels que són usuaris d'openSUSE, deuen teclejar el següent en la terminal:
sudo zypper install transmission
Finalment, per al cas dels que són usuaris de Arch Linux i distribucions derivades d'aquesta, poden instal·lar amb aquesta comanda:
sudo pacman -S transmission
De la mateixa manera es pot realitzar la compilació de Transmission en el sistema des seu codi font, només deuen seguir els següents passos per poder fer-ho.
El seu codi font es troba allotjat en GitHub pel que han de tenir el suport d'git perquè puguin clonar el repositori.
Anem a obrir una terminal i teclejar-hi el següent.
Primer anem a obtenir el codi font amb:
git clone https://github.com/transmission/transmission Transmission
Entrem a directori:
cd Transmission
I vam començar la compilació amb els següents comandaments que hem de teclejar un a un:
git submodule update --init mkdir build cd build cmake .. make sudo make install