HN Hall of Fame Weekly email

Building a BitTorrent client from the ground up in Go

blog.jse.li Books & learning Tutorials & guides Software engineering Candidate
Screenshot of blog.jse.li captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 3 calendar years, with breakout response in 3 of them.

submissions
4
submitters
4
observed span
2020–2025
peak thread · 90 comments
692 pts
latest 20+ return · 2025-02-24
184 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

Over the holidays, I challenged myself to learn Go by torrenting the Debian ISO -- from scratch. This post is a bit of a brain dump about everything I've learned over the past week.

Thanks, this is really cool. I don't have anything to add; I just want to let the author know this is appreciated. I recently decided to learn Go, and articles like this are a great way to get a feel for how Go programmers think about solving problems with the tools available to them. The kind of knowledge you don't get from just skimming The Go Programming Language and such.

It is easy to make a torrent client, but very hard to make a good torrent client. A very good, or let's say "perfect", one, needs to support multiple transport protocols (TCP, "uTP" aka UDP, "WebTorrent" aka WebRTC), multiple discovery mechanisms (DHT, PEX, HTTP trackers, WebSocket trackers), multiple torrent formats (v1, v2, hybrid), should use the network optimally (max the speed without overloading the network - IIRC some clients measure average packet latency and if it starts going up, put…

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
3

100+ points or 50+ comments

Total points
1459

reference only — not used in Hall rules or ranking

Total comments
226

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2020-01-04Building a BitTorrent client from the ground up in GoFirst breakout · Best threadeat_veggies69290
2022-04-07Building a BitTorrent client from the ground up in Gometadat30
2022-11-06Building a BitTorrent client from the ground up in Go (2020)stargrave58047
2025-02-24Building a BitTorrent client from the ground up in Go (2020)Latest 20+ point returnstevenmh18489