Duff show

mai 12, 2009

udp tracker and distributed search

Classé dans : .NET, Mono, monotorrent — duff @ 3:41
Tags: ,

WOW, long time I have not blog about my life…. (2 years)

But today, I want to talk because a lot of great things append:

  • First, I have complete this week the udp tracker code for monotorrent library.  The goal is to reduce overhead. I know that UDP is an ugly protocol (No IPv6 support, no field to represent the user agent,…)
  • I have compose an idea of a distributed search engine, I will send it to bittorrent.org but I need feedback before sending it. This mean that with meta-data exchange support and DHT, we can be fully tracker less.

This mean that we are close features  full. We will not code the azureus support because utorrent extension have the same features. I hope Alan will release the 1.0 soon.  Monotorrent have a new website with a wiki with all you need to know to use monotorrent library. We still need to improove some documentation, so fill free to edit/add page in wiki…

Monotorrent.com is still an 404 error but we have the site.

Alan have done a beautiful work with this library and I have help him a bit on few part and I am really happy of it.

Alan have refactored a lot of module to make it very flexible, so do not just think to bittorrent client GUI (as monsoon). This library can be used in many other ways. In fact every time you need to spread data, you can think to it. Direct download is quick when you have only few downloader but when you need to spread a lot of data bittorrent is the best. So it can be used to spread patch among a a lot of client as done on World of Warcraft.  And do not forget that this can be used cross-plateform.

Just for fun, here is the list of current features in MonoTorrent library:

  • Encryption
  • Dht
  • Peer Exchange (uTorrent style)
  • Local Peer Discovery
  • Web Seeding (getright style)
  • Magnet Links / Metadata download
  • IPV6
  • FAST Extensions
  • Sparse files (NTFS file system)
  • Multi-tracker torrents
  • Compact tracker responses
  • IP Address white listing / black listing
  • Fast Resume
  • Initial Seeding (super seeding)
  • Selective downloading
  • Prioritised downloading
  • Full bittorrent tracker
  • Dynamic request queue size
  • Memory Cache
  • Endgame mode
  • Per torrent and global rate limiting
  • Individual file relocation

juin 13, 2008

monotorrent api is great !

Classé dans : .NET, Mono, development, monotorrent, open source — duff @ 8:53

Monotorrent is really great thanks to the beautiful work of Alan.
I have read the code and it is really easy to understand.

Thanks to this beautiful Api it was very easy to add a lot of features to the core api.

So here is what I have added during the last month (with the help of Alan):

  • super-seeding (also known as the initial seeding) it permit to be faster when you have made a torrent and start to broadcast it on net…In this mode the rules to choose where I send piece are different
  • uTorrent peer exchange: exchange with the swarm the peers.
  • web seeding (getright specification only) This specification allow to download on web site with HTTP and FTP and do not need any script on server side (just a regular link). This specification contain a bonus which is just a nice to have : gap management but I have not implemented it. There is just some basic code on my branch in piece picker class.
  • libtorrent metadata support: you can receive the other metadata contain in the torrent file from other peer with this message. this features allow monotorrent to be tracker less. You just download the infohash with a magnetlink and get from other peers the torrent file.

I have code some other things which are not on trunk :

  • magnet link: this features is like the edonkey link. It is link to the libtorrent metadata features.
  • a basic work for gap management in piece picking process (getright specification)
  • Event and function to have chat message usable in lib. This will evolve to support Azureus chat message protocol
  • azureus protocol: I have just started it and it is far from compilable but will be soon ;) I need to do the negotiation protocol too!

In the big next TODO there are

Here you have a list of extension in protocol:

http://wiki.theory.org/BitTorrentSpecification#Reserved_Bytes (technical view)
http://www.bittorrent.org/beps/bep_0000.html#draft-beps (official draft)

Publié sur WordPress.