Keluaran libtorrent 2.0 dengan sokongan untuk protokol BitTorrent 2

Keluaran utama libtorrent 2.0 (juga dikenali sebagai libtorrent-rasterbar) telah diperkenalkan, menawarkan pelaksanaan protokol BitTorrent yang cekap memori dan CPU. Perpustakaan digunakan dalam pelanggan torrent seperti Deluge, qBittorrent, Folx, Lince, Miro dan Flush (jangan dikelirukan dengan perpustakaan libtorrent yang lain, yang digunakan dalam rTorrent). Kod libtorrent ditulis dalam C++ dan diedarkan di bawah lesen BSD.

Keluaran ini terkenal kerana penambahan sokongan untuk protokol BitTorrent v2, yang beralih daripada menggunakan algoritma SHA-1, yang mempunyai masalah dengan pemilihan perlanggaran, yang memihak kepada SHA2-256. SHA2-256 digunakan untuk mengawal integriti blok data dan untuk entri dalam indeks (kamus maklumat), yang melanggar keserasian dengan DHT dan penjejak. Untuk pautan magnetik ke torrents dengan cincang SHA2-256, awalan baharu "urn:btmh:" dicadangkan (untuk SHA-1 dan torrent hibrid, "urn:btih:" digunakan).

Memandangkan menggantikan fungsi cincang memecahkan keserasian protokol (medan cincang ialah 32 bait dan bukannya 20 bait), spesifikasi BitTorrent v2 pada mulanya dibangunkan tanpa mengambil kira keserasian ke belakang dan perubahan ketara lain telah diterima pakai, seperti penggunaan pokok cincang Merkle dalam indeks untuk mengurangkan saiz fail torrent dan menyemak data yang dimuat turun pada tahap blok.

Perubahan dalam BitTorrent v2 juga termasuk peralihan untuk menetapkan pepohon cincang yang berasingan kepada setiap fail dan penggunaan penjajaran fail dalam bahagian (tanpa menambah padding tambahan selepas setiap fail), yang menghapuskan pertindihan data apabila terdapat fail yang sama dan memudahkan untuk mengenal pasti. sumber yang berbeza untuk fail. Meningkatkan kecekapan pengekodan struktur direktori torrent dan menambah pengoptimuman untuk mengendalikan sejumlah besar fail kecil.

Untuk melancarkan kewujudan bersama BitTorrent v1 dan BitTorrent v2, keupayaan untuk mencipta fail torrent hibrid telah dilaksanakan, yang termasuk, sebagai tambahan kepada struktur dengan cincang SHA-1, indeks dengan SHA2-256. Torrents hibrid ini boleh digunakan dengan pelanggan yang hanya menyokong protokol BitTorrent v1. Disebabkan isu kestabilan yang tidak dapat diselesaikan, jangkaan sokongan untuk protokol WebTorrent dalam libtorrent 2.0 telah ditangguhkan sehingga keluaran utama seterusnya, yang tidak akan dikeluarkan sehingga akhir tahun ini.

Sumber: linux.org.ru