diff --git a/.zk/notebook.db b/.zk/notebook.db index b1ae700..42bf40f 100644 Binary files a/.zk/notebook.db and b/.zk/notebook.db differ diff --git a/zk/Torrenting.md b/zk/Torrenting.md index 3179d32..faf1705 100644 --- a/zk/Torrenting.md +++ b/zk/Torrenting.md @@ -17,4 +17,53 @@ to others. ## Procedure -Large files are divided into small +Large files are divided into small equal sized pieces and each piece is assigned +a unique hash identifier. The `.torrent` file details the number of pieces, +their sizes and hash values. + +Clients request different pieces from different peers simultaneously. As pieces +are received, they are verified against their hash. Corrupted or incorrect +pieces are discarded and re-downloaded. + +The client software reassembles the pieces in the correct order and the final +file will be identical to the original which can be verified by comparing +hashes. + +## Key terms + +- _tracker_ + - a server that coordinates communication between peers (so there is a server + but its role is more lightweight than client-server, coordinating the peers + rather than hosting or distributing file content) +- _swarm_ + - a group of peers sharing the same file +- _seeding_ + - uploading file pieces to other peers +- _leeching_ + - downloading file pieces from other peers + +> An alternative to a tracker server is to use trackerless methods such as +> distributed hash tables + +## Terminological clarification + +- _BitTorrent_ is the communications [protocols](Network_protocols.md) for P2P + file sharing. It was also a client software developed by the company + BitTorrent Inc. + +- _torrenting_ is the general terms for that act of sharing files using the + BitTorrent protocol + +## Napster + +Napster pre-dated the emergence of the BitTorrent protocol. It did not segment +files and files were downloaded directly from peers. It was a centralised P2P +network because there was a central server that indexed all available files +which kept a database of all connected users and their files. + +When you searched Napster you would be querying this DB on the server. The +server would facilitate a direct connection between the consumer and provider +peer for the data exchange. + +When users share with BitTorrent the `.torrent` file is the source of truth and +a swarm is created around the users who have possess the file.