Phát hành libtorrent 2.0 có hỗ trợ giao thức BitTorrent 2

Một bản phát hành quan trọng của thư viện libtorrent 2.0 (còn được gọi là libtorrent-rasterbar) được giới thiệu, cung cấp khả năng triển khai hiệu quả bộ nhớ và CPU cho giao thức BitTorrent. Thư viện này được sử dụng bởi các máy khách torrent như Deluge, qBittorrent, Folx, Lince, Miro và Flush (đừng nhầm lẫn với thư viện libtorrent khác được rTorrent sử dụng). Mã libtorrent được viết bằng C++ và được phân phối theo giấy phép BSD.

Bản phát hành đáng chú ý là bổ sung hỗ trợ cho giao thức BitTorrent v2, giao thức này đã chuyển từ sử dụng thuật toán SHA-1 vốn gặp vấn đề với việc lựa chọn xung đột sang SHA2-256. SHA2-256 được sử dụng vừa để kiểm soát tính toàn vẹn của các khối dữ liệu vừa để kiểm soát các mục trong chỉ mục (từ điển thông tin), điều này phá vỡ khả năng tương thích với DHT và trình theo dõi. Tiền tố mới "urn:btmh:" đã được đề xuất cho các liên kết nam châm đến torrent có hàm băm SHA2-256 (đối với SHA-1 và torrent kết hợp, "urn:btih:" được sử dụng).

Do sự thay đổi trong hàm băm phá vỡ tính tương thích của giao thức (trường có hàm băm 32 byte thay vì 20 byte), nên việc phát triển đặc tả BitTorrent v2 ban đầu được thực hiện mà không tính đến khả năng tương thích ngược và các thay đổi quan trọng khác đã được thông qua, chẳng hạn như sử dụng cây băm Merkle trong các chỉ mục để giảm kích thước tệp torrent và kiểm tra dữ liệu đã tải xuống ở cấp khối.

Điểm nổi bật khác của những thay đổi trong BitTorrent v2 là chuyển sang liên kết các cây băm riêng biệt cho từng tệp và áp dụng căn chỉnh tệp theo từng phần (không thêm phần đệm bổ sung sau mỗi tệp), giúp loại bỏ sự trùng lặp dữ liệu khi có các tệp giống hệt nhau và giúp dễ dàng xác định hơn các nguồn khác nhau cho các tập tin . Cải thiện hiệu quả mã hóa cấu trúc thư mục torrent và bổ sung các tính năng tối ưu hóa để xử lý số lượng lớn tệp nhỏ.

Để làm trơn tru sự tồn tại chung của BitTorrent v1 và BitTorrent v2, khả năng tạo các tệp torrent kết hợp, bao gồm, ngoài các cấu trúc có băm SHA-1, lập chỉ mục với SHA2-256, được triển khai. Những torrent kết hợp này có thể được sử dụng với các máy khách chỉ hỗ trợ giao thức BitTorrent v1. Do các vấn đề về độ ổn định chưa được giải quyết, việc hỗ trợ giao thức WebTorrent dự kiến ​​​​trong libtorrent 2.0 đã bị trì hoãn cho đến bản phát hành chính tiếp theo, sẽ được phát hành không sớm hơn cuối năm nay.

Nguồn: linux.org.ru