Building a BitTorrent client from the ground up in Go