TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Building a BitTorrent client from the ground up in Go (2020)

580 点作者 stargrave超过 2 年前

16 条评论

adastra22超过 2 年前
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.
评论 #33499495 未加载
throwaway894345超过 2 年前
This didn’t dive into it, but I appreciated the suggested search terms for information on decentralized peer discovery. I always wondered how that would work, especially the bootstrapping process. Ultimately I found this StackOverflow answer to be really helpful: <a href="https:&#x2F;&#x2F;stackoverflow.com&#x2F;a&#x2F;22240583" rel="nofollow">https:&#x2F;&#x2F;stackoverflow.com&#x2F;a&#x2F;22240583</a>
评论 #33498122 未加载
unboxingelf超过 2 年前
As someone who writes Go code daily, nice Go code!
评论 #33504770 未加载
mdaniel超过 2 年前
The project author&#x27;s previous submission: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=21958359" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=21958359</a>
评论 #33497938 未加载
chrsig超过 2 年前
Great post<p>One nit, with the font:<p><pre><code> l4:spami7ee </code></pre> the first two characters look an awful lot like the number &quot;14&quot;, when they&#x27;re actually &quot;L4&quot;. I&#x27;m not sure if bencoding is case sensitive or if anohter font may better differentiate the two, but that may be something the author may want to poke at if they happen to read this comment :)
评论 #33508332 未加载
评论 #33498460 未加载
riley_dog超过 2 年前
This looks to have been written on Jan 4, 2020.
评论 #33500479 未加载
merpkz超过 2 年前
&gt; &quot;They’ll send us an unchoke message to let us know that we can begin asking them for data.&quot;<p>What is the purpose of that choke part when connecting to remote peers? Is that some kind of flood protection?
评论 #33502755 未加载
3ln00b超过 2 年前
Very helpful. Can someone recommend more of these learn by doing programming blogs?
评论 #33503136 未加载
LinkLink超过 2 年前
Hey Jesse, we went to school together but I&#x27;m sure that&#x27;s a ton of people you know by now ;). If you can figure it out hit me up ill show you some Zebra industry stuff I&#x27;ve reversed.
tommica超过 2 年前
Really nice share! I think I&#x27;ll have a follow-along with this next weekend to improve my go skills and try to learn rust by attempting to port this to it.
palata超过 2 年前
It is only downloading, right? Is that tolerated?<p>Anyway it&#x27;s a cool post! Would be nice to see a follow-up for the upload&#x2F;sharing part!
评论 #33507461 未加载
评论 #33499497 未加载
评论 #33507126 未加载
jbirer超过 2 年前
One of the best posts lately. Thanks.
hknmtt超过 2 年前
this is good info. i was thinking about making my own, before i discovered picotorrent. but the lack of ui libraries for go prevented me from moving forward. nowadays, with nuts and others, it might be worth a shot.
amits1995超过 2 年前
what happens when the peer is behind NAT? you need to be able to use TCP Hole Punching
评论 #33503124 未加载
UltraViolence超过 2 年前
Personally I would&#x27;ve preferred a Rust implementation, but nice article nonetheless.
odo1242超过 2 年前
nice cartoons! :D