danielkeller / 393torrent Goto Github PK
View Code? Open in Web Editor NEWSoftware Engineering project
Software Engineering project
Needs to be 20 bytes, sometimes is 19. That's not nice! It makes trackers sad.
When trackers respond with non-bencoded replies, we explode.
We need to be able to upload files to peers; this includes broadcasting with HAVE messages and responding correctly to requests, including respecting choking and is_interested.
We need to be able to seed to peers correctly, and we need tests to prove it. This will be mostly unit tests since we can't simulate peers well, but we'll need an integration test anyway. Maybe something that's often-downloaded so we can actually prove we've got it working.
We don't have any implementation for the peer wire protocol at all. Someone should get on that. See the design docs for how to make it work, and see https://wiki.theory.org/BitTorrentSpecification#Peer_wire_protocol_.28TCP.29 for how to do it exactly.
You'll want to use 'socket' for this, probably; unfortunately the protocol isn't very like HTTP so requests will be useless. Here's socket docs: http://docs.python.org/2/library/socket.html
If there are many trackers for one torrent, first you ask the first list of trackers in parallel, then you ask the next list if no one was nice enough to respond, then you continue through those lists. We are just sort of asking whoever.
Ken is working on it.
The BT Tracker for debian is returning an empty string instead of being helpful, which is unfortunate. It's supposed to give us a nice little "error message" thing, but unfortunately it's not compliant.
The BT Tracker for thepiratebay is, unsurprisingly, giving us connection refused. It just does that sometimes.
Also, we don't have test cases, though the code appears to be working to me.
Daniel, is it cool if I ask you to do this? Assign it to me if not.
Probably has something to do with directory creation.
We need to be able to download. Tie the tracker and peer code together.
We need to test that we can download things and that peers can talk to us correctly. Things like the handshake and correctly formatted requests for pieces.
Users can read our lovely debug messages and infer the download success! (no, we should really fix this)
It's because we're connecting to too few peers maybe?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.