#219 Vuze's integrity checking algorithm


Vuze will skip checking unneeded blocks in partial downloads. So, it can safely create truncated files because it needs only the last block of such file. As a result, Vuze can successfuly check Aria2's partial downloads but not vice versa.


  • tujikawa

    tujikawa - 2013-06-20

    It means aria2's partial download is more universal than vuze's proprietary format?
    Is there documentation of vuze's partial blocks?

    • vvs

      vvs - 2013-06-21

      It means aria2's partial download is more universal than vuze's proprietary format?

      No, I don't think that either format is better or worse. They both have their advantages. It's an algorithm that matter and the aria2 is more picky about previous blocks than Vuze.

      Is there documentation of vuze's partial blocks?

      Not that I'm aware of. Source code, perhaps? But I've used a simple reverse engineering. And to be clear, by "partial download" I mean that only selected files were fully downloaded instead of entire torrent. In aria2 it's a "--select" option.

      The Vuze stores minimum information in the unselected files. I suppose it's because not all file systems support sparse files. It doesn't allocates full file length and stores just that part of the block that it needs to verify files selected for download. That means that in the current implementation aria2 thinks that this file is incomplete and the last block is missing. So, it can't seed that partial download and will always try to download "missing" blocks.

      I propose to skip verifying the file length and always rely on the last present block. It should work with both aria2 and Vuze format of partially downloaded torrents.

  • tujikawa

    tujikawa - 2013-06-23

    I don't think aria2's verification strategy is picky because it is Vuze's origin which we are not aware of. But I understand that not fully allocating unselected file in file system without sparse file is a huge win.
    Your proposed idea is a good optimization.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks