logo

Did you find this site helpful? Please donate!

I need your support to make μ-OS and this site better. So please help me by donating some small sum.

Donations via Bitcoins

bitcoin:17uPzWN5YyzDnzcGBSDAotbKUB8tk8uCEK

bitcoin

or via PayPal are accepted.


What is BitTorrent?

BitTorrent is an protocol that is used for P2P (peer-to-peer) file sharing. Peer-to-peer means that there is no central server (like in the case of FTP server) where to get files but instead all the parts of the file are distributed between the nodes of the P2P network. So in basic sense, each P2P network node (or peer) is a client and a server at the same time.

P2P is much more bandwith efficient than using central FTP servers that could very well be overloaded with too many connections. P2P is also much more fault resistant than FTP, as a failure of FTP server would mean that all connections to it would be lost. P2P is also much more censorship-resistant. In the case of FTP server, ordering to taking it down would be easy. In the case of P2P it is impossible.

BitTorrent is not the only protocol that is used for P2P file sharing but it is most popular. The first P2P network was Napster that was used for sharing music files. The limitation of the Napster was that it used central indexing servers for these files so that users could find them. After the file was found and the downloading started the central indexing server were no longer needed and the transfer continued directly between nodes.

As you can see, BitTorrent, like the old Napster (it was started 1999 and shutdown 2001) had a very similar limitation. Mainly the need of central servers (BitTorrent indexer) to host .torrent files that contained metadata of the actual file and BitTorrent tracker server(s) used to find P2P network peers.

After the so called .torrent file was downloaded the BitTorrent client would check it and start communicating with the BitTorrent tracker server(s) to find other peers and to initiate the actual downloading process between peers.

However, recent advanced BitTorrent clients have beging to use Magnet links. What Magnet links do is to describe the file in question with cryptographic hash value.

You can think of it as an fingerprint of the file, identifying the file by it's content rather than by its location. Then the BitTorrent client will use this hash value (or fingerprint) to locate, with the help of DHT or PeX, the file in question from the P2P network and start the actual download process. So in essence, because it's just a hyperlink with hash value, no trackers are needed. You could very well copy-paste the whole content of Magnet link to your coffee mug, T-shirt, web page or whatever. And when you next time open your Magnet links compatible BitTorrent client (like μTorrent) you would click "Add Torrent from URL..." and type that Magnet link value to field and it would automatically start searching the file from P2P network, without the need of any .torrent file!

In additon, most advanced BitTorrent clients will support DHT (Distributed hash tables) where each P2P network node will discover each other in a decentralized way. However, for DHT to work, when BitTorrent client is started the first time it needs to be bootstrapped with .torrent file. And hopefully that first .torrent file will contain some nodes that support DHT or PeX protocol (see below).

And lastly, there is PeX (Peer Exchange) protocol. In this system your BitTorrent client will discover new P2P network nodes by asking the already connected nodes. Again, a bootstrap .torrent file is needed for starting the actual discovery process.

As you can see, putting the whole file searching process (Magnetic links with DHT or PeX) and peer discovery process (with DHT or PeX) into the P2P itself will allow completely trackerless torrents without central servers!

The only time any actual .torrent file is needed is with the initial bootstrapping process of finding peers (some BitTorrent clients might have built-in bootstrap nodes so no initial .torrent file is needed!).

Keep in mind that BitTorrent protocol itself is not encrypted. So for encryption you will need a BitTorrent client with built-in encryption (like μTorrent).