This is a starting point for Go solutions to the "Build Your Own BitTorrent" Challenge.
In this challenge, you’ll build a BitTorrent client that's capable of parsing a .torrent file and downloading a file from a peer. Along the way, we’ll learn about how torrent files are structured, HTTP trackers, BitTorrent’s Peer Protocol, pipelining and more.
Note: If you're viewing this repo on GitHub, head over to codecrafters.io to try the challenge.
-
Decode bencoded strings
-
Decode bencoded integers
-
Decode bencoded lists
-
Decode bencoded dictionaries
-
Parse torrent file
-
Calculate info has
-
Piece hashes
-
Discover peers
-
Peer handshake
-
Download a piece
-
Download the whole file