BitSharp is an open source BitTorrent library developed last year for the Google Summer of Code ([url removed, login to view]). We have an application that does auto-updating of other programs, and we would like some custom extensions to this library to better fit into that. BitTorrent treats the files that it's hosting as one large chunk of data. That is, if you're seeding a directory of 100 1mb files, BT treats it as one 100mb chunk that you can read data from. We want to be able to support downloading individual files from a seed. Our existing application has a record of the files stored on the server (sizes and hashes), and files that don't match are downloaded via regular http. We want to change this to be downloaded via P2P, but to only download the files that are needed. This would require storing hashes per file in the .torrent file, so the torrent generation code would need to change. It would also require changing the download code to find and download only the files that have changed. We know that this means .torrent files generated in this manner will not work in other BitTorrent clients, and this OK. Lastly, there is not a visual studio project file for BitSharp, so we would like a project file (and sln) that compiles in Visual Studio 2005. Please take a look at the BitSharp library before you bid so that you know what's involved, experience with BitTorrent is definitely a plus, please list previous related projects or experience with your bid. This is a big project, so there may be a round or two of feedback involved. Programmer(s) need to be available via IM/skype for discussions during development and to give regular status reports of progress. If you have any questions, please ask before you bid. If this job works out well, there are other network programming tweaks that we would like for you to help with for future jobs too.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Documentation explaining the changes required to the BitSharp library and the process for how the new functionality works 3) Demo program showing that the new functionality works 4) Visual Studio 2005 projects/solution files for compiling BitSharp library
Written in C#, Running on Windows