I-Transmission 4.0.0 ifika ngokusekelwe ku-C++, BitTorrent v2 nokuningi

transmission

Ukuhanjiswa kuwumthombo wamahhala, ovulekile, iklayenti le-P2P elingasindi kunethiwekhi ye-BitTorrent.

Ngemuva kweminyaka ecishe ibe mithathu yentuthuko umemezele ukukhishwa kwenguqulo entsha ye-Transmission 4.0.0, inguqulo lapho kwenziwa ukuguqulwa okuphawulekayo kwesisekelo sekhodi, okwavumela ukunciphisa usayizi wekhodi ngo-18%, ukuthuthukisa ukumbozwa kokuhlolwa nokwenza lula ukugcinwa.

Kulabo abasha ku-Transmission, kufanele wazi ukuthi leli iklayenti le-BitTorrent elilula futhi elingafuneki elibhalwe ngo-C futhi liyahambisana nezinhlobonhlobo zezindawo zokusebenzelana nabasebenzisi: i-GTK, Qt, i-Mac yomdabu, isixhumi esibonakalayo sewebhu, i-daemon, i-CLI.

Izici ezintsha eziyinhloko ze-Transmission 4.0.0

El ushintsho olubalulekile egatsheni elisha kwaba ukuhunyushwa kwe-codebase isuka ku-C (C90) iye ku-C++. Ngaphambilini, i-interface esekelwe ku-Qt kuphela eyayibhalwe ku-C++. Isizathu esiyinhloko ukuthumela yonke iphrojekthi ku-C++ iyona isifiso sokusizakala ngemisebenzi eyengeziwe enikezwe kulabhulali evamile ye-C++ kanye nokutholakala kohlobo oluthuthuke kakhulu lokuhlola ku-C++. Isixhumi esibonakalayo se-GTK sihanjiswe ukuze sisebenzise i-gtkmm, isembozo se-GTK solimi lwe-C++.

Mayelana nentuthuko, kugqanyiswa ukuthi, ungeze ukusekelwa kokusebenzisa izifufula ngefomethi ye-BitTorrent v2 kanye nezifufula eziyi-hybrid (kuphela ngaphandle kwebhokisi okwamanje, amandla okudala izifufula ngokusekelwe ku-BitTorrent 2 azovela kokunye kokukhishwa okulandelayo). Ku-BitTorrent v2, ukusetshenziswa kwe-algorithm ye-SHA-1 kususiwe kwavuna i-SHA2-256, esetshenziselwa kokubili ukulawula ubuqotho bamabhulokhi wedatha kanye nokufakiwe kwezinkomba (info-dictionary), ephula ukuhambisana ne-DHT kanye abalandeleli.

Ukusebenzelana kwewebhu kubhalwe kabusha kusetshenziswa izindlela zokuthuthukisa i-JavaScript yesimanjemanje futhi ishintshwe ukuze isetshenziswe kumadivayisi eselula. Ikhodi ilondolozwe ekusebenziseni umtapo wezincwadi we-jQuery, kanye nesixhumi esibonakalayo sewebhu esicindezelwe manje sesingu-68KB kuphela.

El ukusebenza kwaba ngcono kakhulu- Ukuhlola ukwethulwa kwe-daemon yokudlulisela ngezifufula ezingu-25k kubonise ukwehla ngo-50% kumthwalo we-CPU kanye nokwehla ngo-70% kokusetshenziswa kwememori uma kuqhathaniswa ne-Transmission 3.00.

Ukusebenzelana kwenqubo yasemuva nezixhumi ezibonakalayo ze-GUI (i-transmission-qt kanye ne-Transmission-web) kuguqulelwe ku-RPC esebenza kumodi yethebula, kunciphisa usayizi wedatha edlulisiwe kanye nokunciphisa izidingo zomkhawulokudonsa. Ukucindezela idatha edluliswa nge-RPC, kusetshenziswa umtapo wezincwadi we-libdeflate olungiselelwe kangcono esikhundleni se-zlib.

Kwezinye izinguquko ezigqamile:

  • Umsebenzisi unethuba lokusetha izilandeleli ezizenzakalelayo ezingasetshenziswa ukukhangisa zonke izifufula zomphakathi.
  • Imbewu esanda kufakwa ikhishwa ngokushesha, nemisebenzi yokuqinisekisa eyenziwa njengoba kudingeka (ngaphandle kokuhlola okuphelele ngaphambi kokwethulwa).
  • Kwengezwe inketho yokukhipha lapho udala ulwazi olusha lwezifufula olungase lusetshenziselwe ukukhomba ngokungaqondile umsebenzisi (isibonelo, idethi yokudala kanye Nomenzeli Womsebenzisi).
  • Kwengezwe ukusekelwa kohlu oluvinjelwe lwe-IPv6.
  • Isistimu yokuhlola iyunithi ithuthelwe ukusebenzisa i-Google Test.
  • Uqinisekise ukukhishwa kwemihlangano esekwe ku-Clang kusistimu yokuhlanganisa eqhubekayo.
  • Umtapo wolwazi ubuwukuhlolwa kwe-fuzz.
  • Inqubo entsha yokuhlola ikhodi isetshenziswe ku-Sonarcloud, Coverity, LGTM kanye nabahlaziyi be-clang-tidy static.

Okokugcina uma unentshisekelo yokwazi kabanzi ngakho, ungabheka imininingwane Kulesi sixhumanisi esilandelayo.

Ungayifaka kanjani iTransmission kuLinux?

para labo abangabasebenzisi be-Debian, Ubuntu, Linux Mint noma yikuphi ukusatshalaliswa okususelwe kulokhu, faka uhlelo lokusebenza nge:

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

Uma kunjalo Abasebenzisi be-Fedora noma ukusatshalaliswa okusekelwe kukho, bangakwazi ukufaka uhlelo lokusebenza ngokulandelayo umyalo:

sudo yum ukufaka ukuthunyelwa

Ngenkathi yalabo abathi Abasebenzisi beMandriva Linux kumele bafake ngalo myalo:

ukudluliswa kwe-sudo urpmi

Ngendaba yalabo OpenSUSE abasebenzisi, kufanele bathayiphe okulandelayo esigungwini:

sudo zypper ukufaka transmission

Ekugcineni, esimweni salabo abangabasebenzisi be- I-Arch Linux nokusabalalisa okususelwe kuyo, ungafaka ngalo myalo:

sudo pacman -S transmission

Ngendlela efanayo ungahlanganisa Ukudluliswa kuhlelo kusuka kukhodi yalo yomthombo, kufanele ulandele lezi zinyathelo ezilandelayo ukuze ukwazi ukukwenza.

Ikhodi yabo yomthombo isingathwe kwi-GitHub ngakho-ke kumele babe nokuxhaswa kwe-git ukuze bakwazi ukuhlanganisa indawo yokugcina izinto.

Sizovula ukuphela bese uthayipha okulandelayo kuso.

Okokuqala sizothola ikhodi yomthombo nge:

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

Sifaka umkhombandlela:

Ukudluliswa kweCD

Futhi siqala ukuhlanganiswa ngemiyalo elandelayo okufanele siyithayiphe ngamunye ngamunye:

isibuyekezo se-git submodule --init mkdir yakha i-cd yakha i-cmake .. yenza i-sudo yenza ukufaka