Multifile support!

Well, it’s finally here. FoxTorrent now fully supports torrents with multiple files in them. But why so difficult to complete?

UI. We had a single display line in the UI per torrent before. Now we have multiple files in a single torrent, we need to group them under a header. And pause/resume the torrent as a whole. And queue the remaining files in the torrent. And allow each file to be individually set to be downloaded or not.

Hashing. The way the BitTorrent protocol works for multifile torrents is kinda odd. All the files are concatenated together into one big blob, and you just request the portion of the blob that the file that the file covers. But the trick is that in order to hash-check the file to ensure the data is not corrupt, you need to download the region in front of the file and after the file to get the whole 256K of the hash-blocks to check. This is why you see in other torrent clients the files around a selected file will get a few percent downloaded as well even though they aren’t selected to download.

Network compatibility. The Swoosh network doesn’t have built-in support for downloading a group of files as one unit (Swoosh is a transparent layer for HTTP; HTTP doesn’t have it so Swoosh doesn’t need it), so sharing peers between files in the same torrent becomes an issue, as does exposing the grouped files to the UI. But don’t fret; we got it sorted.

So give it a burl and let us know how it works for you. You can now select each individual file in the torrent to let it download or not, or just let them all download. Kinda handy.

Enjoy!

Tom.

Advertisements

No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: