Το Libtorrent μόλις κυκλοφόρησε την έκδοση 2.0, η οποία πρόκειται να αλλάξει εντελώς το παιχνίδι. Η βιβλιοθήκη Libtorrent, χρησιμοποιείται από δημοφιλείς torreent clients (εφαρμογές), όπως τις uTorrent, Deluge και qBittorrent. Η έκδοση 2 ανοίγει την πόρτα σε πολλές νέες δυνατότητες και φέρνει μια νέα μορφή torrent, η οποία δημιουργεί ένα ξεχωριστό swarm (σμήνος).
Εκατομμύρια άνθρωποι χρησιμοποιούν το BitTorrent κάθε μέρα, αλλά λίγοι είναι αυτοί που γνωρίζουν το πώς λειτουργεί.
Το BitTorrent κυκλοφόρησε για πρώτη φορά από τον εφευρέτη του Bram Cohen πριν από σχεδόν δύο δεκαετίες. Υιοθετήθηκε πολύ γρήγορα από το κοινό, αλλά το νέο πρωτόκολλο μόνο τέλειο που δεν ήταν. Με τα χρόνια προστέθηκαν πολλές νέες δυνατότητες, όπως τις DHT, UDP trackers, peer-exchange και υποστήριξη για streaming.
Ως προγραμματιστής μιας από τις κορυφαίες βιβλιοθήκες του BitTorrent, ο Arvid Norberg που ανέπτυξε την βιβλιοθήκη Libtorrent, συμμετείχε στενά στην ανάπτυξη του πρωτοκόλλου BitTorrent v2. Ο κώδικάς του κάνει πάρα πολλούς torrent clients να λειτουργούν σωστά.
Αυτή την εβδομάδα, ο Norberg ανακοίνωσε την τελευταία κυκλοφορία του Libtorrent. Η έκδοση 2.0 είναι εδώ. Η νέα έκδοση έρχεται με πολλές αλλαγές που τελικά θα φτάσουν στους torrent clients και στον κόσμο που τους χρησιμοποιεί. Η πιο σημαντική από αυτές είναι η εφαρμογή των προδιαγραφών του πρωτοκόλλου BitTorrent v2.
Το BitTorrent v2 είναι μια βελτιωμένη έκδοση των πρώιμων προτύπων του BitTorrent και περιλαμβάνει πολλές τεχνικές αλλαγές. Προτάθηκε για πρώτη φορά από τον Bram Cohen το 2008 και από τότε ενημερώνεται και βελτιώνεται συνεχώς.
Το BitTorrent v2 αλλάζει τον τρόπο με τον οποίο τα “συντάσσονται” τα torrents και η νεότερη έκδοση δεν είναι συμβατή προς τα πίσω δηλαδή με τα torrents από παλαιότερες εκδόσεις. Τα παλαιότερα torrents έχουν κρυπτογράφηση SHA-1 ενώ οι νέες εκδόσεις χρησιμοποιούν SHA-256. Αυτό σημαίνει ότι στο μέλλον, θα υπάρχουν διαφορετικές εκδόσεις torrent.
Αυτά τα διαφορετικά torrents (v1 και v2) θα πρέπει να έχουν ξεχωριστά torrent swarm. Άτομα που κατεβάζουν torrent της έκδοσης 1 δεν θα μπορούν να μοιραστούν τίποτα με άτομα που κάνουν λήψη torrent της έκδοσης 2 και το αντίστροφο. Αν και ακούγεται σαν ένα βήμα πίσω, στην πραγματικότητα δεν θα υπάρχει πρόβλημα (θεωρητικά τουλάχιστον).
Υπάρχει και μια επιλογή για τη δημιουργία των λεγόμενων “υβριδικών” torrent που θα μπορούν να συνδεθούν και στα δύο swarm. Αυτό θα είναι δύο torrents σε ένα. Έτσι όλα τα torrents θα έχουν τον ίδιο αριθμό ατόμων που μοιράζονται (seeders).
“Ένα client με δυνατότητα v2 θα εξακολουθούσε να είναι σε θέση να “μιλάει” σε όλους τους ομότιμους (peers) και η ανταλλαγή ομότιμων θα λειτουργεί ακόμα σε ομότιμους της έκδοσης 1. Αυτό που θα αλλάξει είναι ότι ένα peer με δυνατότητα v2 θα πρέπει να ανακοινώνει δύο φορές ένα υβριδικό torrent, μία φορά για κάθε info-hash. Τόσο στους trackers όσο και στο DHT”, αναφέρει ο Norberg στο Torrentfreak.
“Νομίζω ότι θα είχε νόημα για τους εκδότες να δημιουργούν υβριδικά torrents. Τουλάχιστον να πειραματιστούν με αυτά για να διασφαλίσουμε ότι λειτουργούν καλά. Τα torrents μόνο για την έκδοση 2 θα έχουν νόημα μόνο για κλειστά οικοσυστήματα αυτήν τη στιγμή.”
Να αναφέρουμε ότι η μετάβαση από το SHA-1 στο SHA-256 hashing θα μπορεί να αποτρέψει επιθέσεις και exploits στο πρωτόκολλο.
Ο Norberg αναφέρει ότι ο κίνδυνος αυτών των επιθέσεων είναι κυρίως θεωρητικός, αλλά αυτό μπορεί να αλλάξει με την πάροδο του χρόνου. Έτσι, η αλλαγή σε SHA-256 είναι σίγουρα μια πολύ καλή ιδέα. Μια ακόμη πιο συναρπαστική αλλαγή, σύμφωνα με τον προγραμματιστή, είναι η χρήση ‘per-file merkle hash trees’ για τα piece hashes.
Αυτό σημαίνει με απλά λόγια ότι όλα τα αρχεία σε ένα torrent θα έχουν το δικό τους μοναδικό αναγνωριστικό (hash). Έτσι, μια συλλογή 100 φωτογραφιών θα έχει ένα μοναδικό hash για κάθε φωτογραφία. Αυτό φέρνει πολλά πλεονεκτήματα.
Για παράδειγμα, θα επιτρέπει στους torrent clients να ελέγχουν γρήγορα αν λαμβάνουν το σωστό αρχείο. Αυτό θα αποτρέψει επιθέσεις με μολυσμένα ή παράξενα αρχεία που μπορούν να χρησιμοποιηθούν από κάποιους εξωτερικούς για ευνόητους λόγους. Ένας από αυτούς είναι όταν κάποιος θέλει να χαλάσει το torrent.