Assume you have files locally present (already downloaded, retrieval unrelated to problem) and you know or are very certain that they have something (some blocks of data) in common with a torrent you want to download. Is there a client which allows reading a (user selected) selection of files, comparing it against the list of block checksums of the torrent file and skipping blocks based on locally present data.
An example would be a live system ISO of an OS of which you know (or guess) that it didn't change 50 or 30 or 10 percent of its content in comparison to a newer version. Normally you'd use zsync
if possible, but that depends on a central server. How would I save the traffic with the same idea zsync
is based on in a bittorrent architecture?
The only prerequisite for server and client should be that they speak bittorrent and arbitrary bittorrent or magnetlinks should be usable with the solution.
I know about (solutions which don't comply with prerequisite):
zsync
which does this job outside the bittorrent world. As there's no checksum transfer in HTTP, that has to be handled inzsync
with .zsync files.jigdo
which is great for updating only relevant parts of (Debian) iso images, but it's not integrated into bittorrent- Deduplicating filesystems like btrfs or ZFS offer deduplicated streamed transmission of subvolumes/datasets (e.g.
btrfs send
andzfs send
), but they're now really suitable for simple download tasks.