[Mono-devel-list] Idea: Bittorrent and Mono.
mike at vdomck.org
Wed Jul 28 05:49:23 EDT 2004
Miguel de Icaza wrote:
> What I see as advantageous in having a C# implementation of Bittorrent
> (the client, and an embeddable server) is that it opens the door for
> new ideas and innovation.
The Hunting for the Snark Project (http://klomp.org/snark/) provides a
simple Open Source BitTorrent client written in Java. I have been using
it to write a Java Web Start client to allow people to easily deploy
torrents to people who haven't installed BitTorrent yet. After working
in C#, though, Java has felt like a great leap backwards.
I have been thinking that it would be a good test of the Java -> .Net
compile magic that I witnessed at a recent LUG meeting.
Of course a natively written library that can do BitTorrent would be
better and not too difficult. Unfortunately BitTorrent uses a funky
Binary Encoding scheme for all of its data, which I think is not much
more than a binary dump of a Python hash. The BitTorrent site says look
at the Python code if you want to see how it works - in other words -
hardly a well described spec. However, clients like Azureus are now
offering an export/import to Xml mode, and my hope is that BitTorrent
will move to a more friendly Xml format that will make writing clients
My point here is that a Binary Encoder/Binary Decoder is probably the
first step towards getting a bittorrent library going, although
changes/improvements could be considered.
> In fact, we should effectively just use Bittorrent for bulk transfers
Here is my vision:
- The BitTorrent approach will be ubiquitous. Getting it in Mono might
make it happen sooner, and can only increase Mono's usage and acceptance.
- Web servers should be able to offer any file type as a torrent. As
soon as the web server notices multiple downloaders for a file, then the
web server creates a torrent for it and becomes a seeder for that file.
Future requesters for that file then become peers and share the
bandwidth required to make the transfers happen. This would all be taken
care of by the web server and would happen with html files and well as
500 MB movie. Goodbye slashdot effect.
- Web browsers should be able to download torrents seamlessly. A torrent
downloaded file will be treated like any other file - either displayed
as a web page in the browser or handled by an appropriate external program.
Obviously some things need to be built for this to happen, but it would
be great if Mono could be leading the way.
More information about the Mono-devel-list