4 ms·
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 learne
by eat_veggies 7y ago
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.
- giancarlostoro 7y ago> This isn’t the full story > For brevity, I included only a few of the important snippets of code. Notably, I left out all the glue code, parsing, unit tests, and the boring parts that build character. View my full implementation if you’re interested. Any chance you'll do independent write ups to cover all the missing bits? Especially the ones that build character. :)
- devnullbyte 7y agoWould also be good to include how BT uses a merkel tree, that's quite a key component in the software.
- smabie 7y agoDoes any client support the new standard? I was under the impression that no one did.
- anacrolix 7y agoIt doesn't until the second version, which isn't mainstream.
- anacrolix 7y agohttps://github.com/anacrolix/torrent/issues/175#issuecomment-323524063 https://github.com/anacrolix/torrent/issues/175#issuecomment...
- mixmastamyk 7y agoWow, I've been looking for a BT tutorial at about this level of abstraction for two years or so. And would have liked to have read it a decade or two back as well. Wondering if there are any similar docs or a book for implementing a server in Python, and a client in Python or Dart/Flutter? I know libtorrent bindings are a thing but the docs seemed quite dense and I didn't even know where to start—until now that is.
- ngcc_hk 7y agoSame same. But just in Javascript more.
- peterkelly 7y agoHere's a pretty good one in JavaScript: https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-own-bittorrent-client.html https://allenkim67.github.io/programming/2016/05/04/how-to-m...