Κυκλοφορία του libtorrent 2.0 με υποστήριξη για το πρωτόκολλο BitTorrent 2

Παρουσιάστηκε μια σημαντική έκδοση του libtorrent 2.0 (επίσης γνωστή ως libtorrent-rasterbar), η οποία προσφέρει μια αποδοτική σε μνήμη και CPU υλοποίηση του πρωτοκόλλου BitTorrent. Η βιβλιοθήκη χρησιμοποιείται σε πελάτες torrent όπως Deluge, qBittorrent, Folx, Lince, Miro και Flush (δεν πρέπει να συγχέεται με την άλλη βιβλιοθήκη libtorrent, η οποία χρησιμοποιείται στο rTorrent). Ο κώδικας libtorrent είναι γραμμένος σε C++ και διανέμεται με την άδεια BSD.

Η έκδοση είναι αξιοσημείωτη για την προσθήκη υποστήριξης για το πρωτόκολλο BitTorrent v2, το οποίο απομακρύνεται από τη χρήση του αλγόριθμου SHA-1, ο οποίος έχει προβλήματα με την επιλογή σύγκρουσης, υπέρ του SHA2-256. Το SHA2-256 χρησιμοποιείται τόσο για τον έλεγχο της ακεραιότητας των μπλοκ δεδομένων όσο και για εγγραφές σε ευρετήρια (πληροφοριακό λεξικό), γεγονός που παραβιάζει τη συμβατότητα με το DHT και τους ιχνηλάτες. Για μαγνητικούς συνδέσμους σε torrents με κατακερματισμούς SHA2-256, προτείνεται ένα νέο πρόθεμα "urn:btmh:" (για SHA-1 και υβριδικά torrents, χρησιμοποιείται "urn:btih:").

Εφόσον η αντικατάσταση της συνάρτησης κατακερματισμού διακόπτει τη συμβατότητα πρωτοκόλλου (το πεδίο κατακερματισμού είναι 32 byte αντί για 20 byte), η προδιαγραφή BitTorrent v2 αναπτύχθηκε αρχικά χωρίς να ληφθεί υπόψη η συμβατότητα προς τα πίσω και υιοθετήθηκαν άλλες σημαντικές αλλαγές, όπως η χρήση των δέντρων κατακερματισμού Merkle σε ευρετήρια για να μειώσετε το μέγεθος των αρχείων torrent και να ελέγξετε τα ληφθέντα δεδομένα σε επίπεδο μπλοκ.

Οι αλλαγές στο BitTorrent v2 περιλαμβάνουν επίσης τη μετάβαση στην αντιστοίχιση χωριστών δέντρων κατακερματισμού σε κάθε αρχείο και τη χρήση της στοίχισης αρχείων σε μέρη (χωρίς προσθήκη πρόσθετης επένδυσης μετά από κάθε αρχείο), η οποία εξαλείφει την αντιγραφή δεδομένων όταν υπάρχουν πανομοιότυπα αρχεία και διευκολύνει την αναγνώριση διαφορετικές πηγές για αρχεία. Βελτιωμένη αποτελεσματικότητα της κωδικοποίησης δομής καταλόγου torrent και πρόσθετες βελτιστοποιήσεις για το χειρισμό μεγάλου αριθμού μικρών αρχείων.

Για την εξομάλυνση της συνύπαρξης των BitTorrent v1 και BitTorrent v2, έχει εφαρμοστεί η δυνατότητα δημιουργίας υβριδικών αρχείων torrent, τα οποία περιλαμβάνουν, εκτός από δομές με κατακερματισμούς SHA-1, ευρετήρια με SHA2-256. Αυτά τα υβριδικά torrent μπορούν να χρησιμοποιηθούν με πελάτες που υποστηρίζουν μόνο το πρωτόκολλο BitTorrent v1. Λόγω ανεπίλυτων ζητημάτων σταθερότητας, η αναμενόμενη υποστήριξη για το πρωτόκολλο WebTorrent στο libtorrent 2.0 έχει καθυστερήσει μέχρι την επόμενη σημαντική έκδοση, η οποία δεν θα κυκλοφορήσει μέχρι το τέλος του έτους.

Πηγή: linux.org.ru