Libtorrent has just released version 2.0, which is going to completely change the game. The Libtorrent library is used by popular torreent clients (applications), such as uTorrent, Deluge and qBittorrent. Version 2 opens the door to many new features and brings a new torrent format, which creates a separate swarm.
Millions of people use BitTorrent every day, but few know how it works.
BitTorrent was first launched by its inventor Bram Cohen almost two decades ago. It was very quickly adopted by the public, but the new protocol only perfect that it wasn't. Over the years many new features have been added, such as DHT, UDP trackers, peer-exchange and support for streaming.
As the developer of one of BitTorrent's leading libraries, Arvid Norberg, who developed Libtorrent library, was closely involved in the development of the BitTorrent v2 protocol. Its code makes too many torrent clients work properly.
This week, Norberg announced the latest release of Libtorrent. Version 2.0 is here. The new version comes with many changes that will eventually reach the torrent clients and the world that uses them. The most important of them is the application of the BitTorrent protocol specification v2.
BitTorrent v2 is an improved version of early BitTorrent standards and includes many technical changes. It was first proposed by Bram Cohen in 2008 and has been constantly updated and improved since.
BitTorrent v2 changes the way torrents are "written" and the newer version is not backwards compatible with older torrents. Older torrents have SHA-1 encryption while newer versions use SHA-256. This means that in the future, there will be different torrent versions.
These different torrents (v1 and v2) should have separate torrent swarm. People who download version 1 torrent will not be able to share anything with people who download version 2 torrent and vice versa. Although it sounds like a step backwards, in reality there will be no problem (theoretically at least).
There is also an option for creation of the so-called "hybrid" torrents that will be able to connect to both swarms. This will be two torrents in one. So all torrents will have the same number of seeders.
A v2-enabled client would still be able to "talk" to all peers, and peer-to-peer exchange would still work on version 1 peers. What will change is that a v2-enabled peer should announces a hybrid torrent twice, once for each info-hash. "Both the trackers and the DHT," Norberg told Torrentfreak.
"I think it would make sense for publishers to create hybrid torrents. At least experiment with them to make sure they work well. Torrents only for version 2 will only make sense for closed ecosystems at this time. ”
Note that the transition from SHA-1 to SHA-256 hashing will be able to prevent attacks and exploits in the protocol.
Norberg reports that the risk of these attacks it is mostly theoretical, but this may change over time. So changing to SHA-256 is definitely a very good idea. An even more exciting change, according to the developer, is the use of 'per-file merkle hash trees' for piece hashes.
This simply means that all files in a torrent will have their own unique hash. Thus, a collection of 100 photos will have a unique hash for each photo. This brings many advantages.
For example, it will allow torrent clients to quickly check if they are getting the right one archive. This will prevent attacks with infected or strange files that can be used by some outsiders for obvious reasons. One of them is when someone wants to crash the torrent.