Live data from Hacker News

Build your own BitTorrent

app.codecrafters.io

81–90 of 136 posts

Re: Build your own BitTorrent

#81

Earlier quoted context omitted.

CodeCrafters co-founder here. You're right, we could present it as just the articles. Our overview is publicly accessible and doesn't require a paywall. https://app.codecrafters.io/courses/bittorrent/overview All the "content" is also available on our GitHub https://github.com/codecrafters-io/build-your-own-bittorrent If you'd like us to run tests against your code, show you progress, community examples, hints, and s…

> All the "content" is also available on our GitHub https://github.com/codecrafters-io/build-your-own-bittorrent In this Git repository, I see various stages of the source code, and Docker files. The claim "all the 'content' is also available on our GitHub" clearly does not hold, because at least the article texts are missing there. EDIT: Sorry, it is there, as was pointed out to me in the answer: https://github.com/…

https://github.com/codecrafters-io/build-your-own-bittorrent...

Re: Build your own BitTorrent

#82
post #78

Hi! Sarp here, author of the Build your own BitTorrent challenge on Codecrafters. Some back story: After being laid off from my FAANG job, I found myself very unmotivated to go back. I started looking for interesting programming projects to revive my interest in coding. While nomading, I discovered Codecrafters on Nomadlist and really liked the push code to git and pass different stages interaction. The gamification…

Are we gonna get extensions to the challenge?

Re: Build your own BitTorrent

#83
post #68
post #21

Oddly the uploading part is missing. To be a peer, an equal, things have to flow both ways. Bittorrent wouldn't work otherwise.

Hi, course author here! You're right, this was left out initially to scope down the challenge (it's already quite long with 11 stages). We're planning to add it as a challenge extension, uploading is one of the highly voted challenge extension ideas by the community.

If it were structured in fashion closer along the protocol startup process or how a real client is structured more people might end up with a functional client rather than a "bittorrent leecher". Up to "peer handshake" most things look fine. From there it rushes towards a half-finished goal and if people stop there you're leaving the internet littered with one-sided examples.

After the handshake you'll need state machines to handle multiple peers, piece-sets to track what you've downloaded, the rarest-first algorithm[0], message processing and so on. The final result of having a downloaded file falls out of that almost as a side-product at some point.

[0] http://bittorrent.org/bittorrentecon.pdf

Re: Build your own BitTorrent

#84
post #47

Earlier quoted context omitted.

I think that hundreds of thousands of peer machines would be way faster than a few centralized repositories... right? It seems you would have essentially unlimited bandwidth.

Finding peers is somewhat slow. When downloading via torrent it takes a while to really ramp up in speed. With a centralized repository you can start downloading basically right away. For many small files the latency is more important than the bandwidth, given that most repositories are not short on bandwitdth.

That seems easy to work around. You could write it in such a way that it would have a live cache of peers ready to go plus also the centralized peers would always be available.

I personally suspect that having centralized repos is a legacy technology from pre-torrent days when also disk wasnt cheap.

Re: Build your own BitTorrent

#85

Earlier quoted context omitted.

CodeCrafters co-founder here. You're right, we could present it as just the articles. Our overview is publicly accessible and doesn't require a paywall. https://app.codecrafters.io/courses/bittorrent/overview All the "content" is also available on our GitHub https://github.com/codecrafters-io/build-your-own-bittorrent If you'd like us to run tests against your code, show you progress, community examples, hints, and s…

> All the "content" is also available on our GitHub https://github.com/codecrafters-io/build-your-own-bittorrent In this Git repository, I see various stages of the source code, and Docker files. The claim "all the 'content' is also available on our GitHub" clearly does not hold, because at least the article texts are missing there. EDIT: Sorry, it is there, as was pointed out to me in the answer: https://github.com/…

The course definition file contains all the prompts (including nuances per language) that are viewable on the UI. https://github.com/codecrafters-io/build-your-own-bittorrent...

Re: Build your own BitTorrent

#87
post #78

Hi! Sarp here, author of the Build your own BitTorrent challenge on Codecrafters. Some back story: After being laid off from my FAANG job, I found myself very unmotivated to go back. I started looking for interesting programming projects to revive my interest in coding. While nomading, I discovered Codecrafters on Nomadlist and really liked the push code to git and pass different stages interaction. The gamification…

Are we gonna get extensions to the challenge?

Better yet, extensions to implement BitTorrent extensions? Such as the mutable torrent BEP and others? It'd be great if this spawned hundreds of top quality BitTorrent clients

Re: Build your own BitTorrent

#88

Does anyone know why BitTorrent-based Linux package managers has not become a thing?

Most linux distributions have a rather robust mirroring operation. This is much faster than bittorrent. Lots of cloud vendors provide a mirror endpoint for traffic within their network, and ISPs typically also have them. The network is fast enough for lots of small files to not really justify it.

They could scale back their mirroring operation to only a few servers that act as Webseeds? Then you get the best of both worlds.

http://bittorrent.org/beps/bep_0019.html

Re: Build your own BitTorrent

#89

Earlier quoted context omitted.

Are we gonna get extensions to the challenge?

Better yet, extensions to implement BitTorrent extensions? Such as the mutable torrent BEP and others? It'd be great if this spawned hundreds of top quality BitTorrent clients

Build your own Extension

Re: Build your own BitTorrent

#90
post #5
post #2

Why in the world does this want access to my github account, with 0 explanation as to why.

Looks like they're just leaning on Github as an auth provider without offering any alternatives. Most sites that do this offer a range of options, including normal email signup.

Almost all of our target audience has a GitHub account, so using it for auth keeps things simple and is one less thing to manage :)
Post reply on HN