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…
Its not uncommon for invite-only trackers to be very prescriptive about which torrent clients can and can't be used with their private tracker. Any ideas on how to overcome this obstacle to wider adoption?
Build your own BitTorrent
101–110 of 136 posts
Re: Build your own BitTorrent
#102Earlier quoted context omitted.
Its not uncommon for invite-only trackers to be very prescriptive about which torrent clients can and can't be used with their private tracker. Any ideas on how to overcome this obstacle to wider adoption?
How do they tell one client from another?
Re: Build your own BitTorrent
#103Does this include the DHT? BT, the protocol itself is not very interesting, it's just a very bad file access protocol over HTTP without DHT, which makes it really P2P.
Re: Build your own BitTorrent
#104Jon Gjengset[1] is currently doing a livestream on the same challenge in Rust, on his YT channel[2]. [1]: https://thesquareplanet.com/ [2]: https://www.youtube.com/watch?v=jSTkEPPiULs
A better link is https://www.youtube.com/watch?v=jf_ddGnum_4 which has chapter marks and has the power outage in the middle spliced away :p
Re: Build your own BitTorrent
#105Earlier quoted context omitted.
How do they tell one client from another?
User agents, fingerprinting, etc. There are certainly ways to mask your client, but these would be considered cheating by most private trackers and would be grounds for a ban.
Clients also self-report the amount of data transferred. That's not great in a community that fetishizes share ratios. I've heard an op say "there's no excuse for having a ratio less than 1", which makes as much mathematical sense as the parent who told my (math) teacher friend "this is [private school], no student should be below average".
You can theoretically verify upload/download numbers because the total amount uploaded in a swarm should equal the total amount downloaded, but there are all kinds of reasons why the numbers wouldn't match. Maybe a client lost connection and couldn't send its final announce. Maybe one client is sending bad data (I'm not sure how that is reported, might be implementation specific). And clients only send transfer total updates when they connect to the tracker to change status or request more peers, so every client will have a different degree of staleness.
Even if you can tell that someone in a swarm is lying, who is your culprit? As long as they're not being egregious, there's no way to tell.
Re: Build your own BitTorrent
#106Jon Gjengset[1] is currently doing a livestream on the same challenge in Rust, on his YT channel[2]. [1]: https://thesquareplanet.com/ [2]: https://www.youtube.com/watch?v=jSTkEPPiULs
Oh hey, that's me! A better link is https://www.youtube.com/watch?v=jf_ddGnum_4 which has chapter marks and has the power outage in the middle spliced away :p
Re: Build your own BitTorrent
#107Earlier quoted context omitted.
Oh hey, that's me! A better link is https://www.youtube.com/watch?v=jf_ddGnum_4 which has chapter marks and has the power outage in the middle spliced away :p
Hi Jon, thanks for recording! I'm excited to watch this. Do you happen to know why captions aren't enabled on your videos? Oftentimes the issue is that the video's primary language isn't set. Once this is done, youtube will probably caption the rest, though I'm not sure if that's true of videos of all lengths.
Re: Build your own BitTorrent
#108https://gitlab.com/webai-open/network/interview-challenge
Take the guidelines to heart though. We evaluate you on demonstrating understanding of what you did, not that you completed the course.
My advice for standing out would be to continue building on it past the end of the course and do something cool yourself.
Re: Build your own BitTorrent
#109Does this include the DHT? BT, the protocol itself is not very interesting, it's just a very bad file access protocol over HTTP without DHT, which makes it really P2P.
(codecrafters dev here) It doesn't, but will soon: https://app.codecrafters.io/vote/challenge-extension-ideas?c... . We release a set of "base" stages first, and then work on extensions based on demand. DHT is one of them, magnet links is another that folks have voted for.
Re: Build your own BitTorrent
#110For anyone who is interested in peer-to-peer systems like this, and completes Sarp's course, I have an open interview challenge you can submit it to if you find that you want to continue building in this space as a profession: https://gitlab.com/webai-open/network/interview-challenge Take the guidelines to heart though. We evaluate you on demonstrating understanding of what you did, not that you completed the course.…