Rilis libtorrent 2.0 dengan dukungan protokol BitTorrent 2

Rilis signifikan perpustakaan libtorrent 2.0 (juga dikenal sebagai libtorrent-rasterbar) diperkenalkan, menyediakan implementasi protokol BitTorrent yang efisien memori dan CPU. Pustaka ini digunakan oleh klien torrent seperti Deluge, qBittorrent, Folx, Lince, Miro, dan Flush (jangan bingung dengan pustaka libtorrent lain yang digunakan oleh rTorrent). Kode libtorrent ditulis dalam C++ dan didistribusikan di bawah lisensi BSD.

Rilis ini terkenal karena penambahan dukungan untuk protokol BitTorrent v2, yang beralih dari penggunaan algoritma SHA-1, yang memiliki masalah dengan pemilihan tabrakan, ke SHA2-256. SHA2-256 digunakan untuk mengontrol integritas blok data dan untuk entri dalam indeks (kamus info), yang merusak kompatibilitas dengan DHT dan pelacak. Awalan baru "urn:btmh:" telah diusulkan untuk tautan magnet ke torrent dengan hash SHA2-256 (untuk torrent SHA-1 dan hybrid, "urn:btih:" digunakan).

Karena perubahan fungsi hash merusak kompatibilitas protokol (bidang dengan hash 32 byte, bukan 20 byte), pengembangan spesifikasi BitTorrent v2 pada awalnya dilakukan tanpa memperhatikan kompatibilitas ke belakang dan perubahan signifikan lainnya diadopsi, seperti penggunaan pohon hash Merkle dalam indeks untuk mengurangi ukuran file torrent dan memeriksa data yang diunduh di tingkat blok.

Sorotan lain dari perubahan di BitTorrent v2 adalah beralih ke mengaitkan pohon hash terpisah untuk setiap file dan menerapkan penyelarasan file di beberapa bagian (tanpa menambahkan padding tambahan setelah setiap file), yang menghilangkan duplikasi data ketika ada file yang identik dan membuatnya lebih mudah untuk mengidentifikasi sumber berbeda untuk file. Peningkatan efisiensi pengkodean struktur direktori torrent dan penambahan optimasi untuk menangani file kecil dalam jumlah besar.

Untuk memperlancar koeksistensi BitTorrent v1 dan BitTorrent v2, kemampuan untuk membuat file torrent hibrid, yang mencakup, selain struktur dengan hash SHA-1, indeks dengan SHA2-256, diterapkan. Torrent hibrid ini dapat digunakan dengan klien yang hanya mendukung protokol BitTorrent v1. Karena masalah stabilitas yang belum terselesaikan, dukungan untuk protokol WebTorrent yang diharapkan di libtorrent 2.0 telah ditunda hingga rilis besar berikutnya, yang akan dirilis paling lambat akhir tahun ini.

Sumber: linux.org.ru