Summary: | implement partial torrent seed | ||
---|---|---|---|
Product: | [Applications] ktorrent | Reporter: | Nick Shaforostoff <shafff> |
Component: | general | Assignee: | Joris Guisson <joris.guisson> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | capability of utorrent |
Description
Nick Shaforostoff
2006-09-24 18:55:37 UTC
in other words: recheck all present files regardless of what files have been selected for download http://websvn.kde.org/trunk/extragear/network/ktorrent/libktorrent/datachecker/multidatachecker.cpp?rev=553667&view=markup we need to delete these lines: if (!loadChunk(cur_chunk,cs,tor)) { downloaded.set(cur_chunk,false); failed.set(cur_chunk,true); continue; } right? First :
Why do you deselect all files ? Select the ones you want to seed.
Second :
> and if i check these files to be downloaded it tries to redownload first and > last chunks of each file
This is normal, because a torrent is divided into chunks and for each chunk there is a SHA1 hash, chunk borders will not match file borders so if the neighboring files of a file are missing KT cannot determine the validity of the data of the first and last chunk of the file.
Third :
Why don't you seed directly from the DVD ? As long as the files do not need to be opened for writing, it should be no problem to do this.
thanks, i know _why_ it downloads trimmed chunks. i try to spare dvd drive cause if i seed directly from it, it will work all the time producing the noise (yes, there are no tools like nero drive speed) and: -full scan of dvd -reading of chunks so every bit of dvd would be read at least twice why do you think utorrent has its behaviour? and imagine the following situation: i have downloaded selected files from .torrent then after a while i decide to download other files from it - i open the .torrent and point ktorrent to previous dirdl . it should scan all files (including old ones) and upload them too while i'm downloading new files. and, ideally, when in seed mode, ktorrent should recheck chunks on-the-fly - ie report to the tracker 100% and, when specifical chunk is requested, first buffer and check it and upload it only if the hash is ok. this way you will prevent wrong uploads if the harddrive is old and there may emerge bad sectors in it and besides, i cant seed from dvd as it doesnt contain all the files (the torrent is >5GB) and i changed the names of the files of course, i can play with symlinks but also i can play with azureus too :)) right now, the behaviour of ktorrent in case when no files are selected is useless so why not implement it? as far as understand it would not be so hard esp. for you Why do you deselect all files ? because if i select them it redownloads outermost chunks while i dont need them. why software does what it didnt asked to? if i deselect files in utorrent it still uploads them while not downloading data i dont need another way to fix the issue is through "File->Open torrent for seeding" which works even when not all files available [quote]And imagine the following situation: i have downloaded selected files from .torrent then after a while i decide to download other files from it - i open the .torrent and point ktorrent to previous dirdl . it should scan all files (including old ones) and upload them too while i'm downloading new files.[/quote] Aren't we doing that already? Or do you mean that "have is have" and that you should not be able to "wipe" chunks by deselecting them no matter what, because stupid leechers can use it too? Interesting thought. Although i think you have to have a dirty mind to only think about doing this, i think you might have a point here. (and keeping as much complete data in swarm as possible is not so bad either) [quote] because if i select them it redownloads outermost chunks while i dont need them. why software does what it didnt asked to? [/quote] Isn't that just part of design how hashes work? Chunks don't always fit the file. I don't think they can do anything about that other than obfuscating the information in GUI. But hit me if i am wrong here... >Isn't that just part of design how hashes work? Chunks don't always fit the file.
OMG i know how hashes work. all i want is to disable outermost chunks download.
cause i do _not download_ partial file, but i'm trying to help _seeding it_.
i commented parts of downloadStatusChanged slots code, so it now doesnt delete files but it somehow breaks the tracker (get 404) :(
Nick, if KT cannot find the neighboring files, it cannot determine if the first and last chunk of that file are valid. We can't just start uploading data when we are not sure it is valid. And seeing that you selected the file for downloading, it will download the first and last parts of the file. Created attachment 17913 [details]
capability of utorrent
haha and i dont want to _seed_ partial (outermost) chunks look how utorrent performs If you don't feel bad about it, i am going to continue asking another question again, so we have a better picture.
if i understand you correctly, you want the following:
"
>in other words:
>recheck all present files regardless of what files have been selected for download
"
And use these files as "inside file borders mode" but only when these files are deselected/skipped for download. Right?
And this extra mode is, in your view, usefull for the sake of not having to download something when you go help seeding. (or am i missing something again here?)
> If you don't feel bad about it no, i dont mind, its even fun and develops my english skills :) > but only when these files are deselected/skipped for download. Right? of course. and when they are selected - it is normal behaviour to upload chunks we already have (too). > usefull for the sake of not having to download something when you go help seeding. yes :) I'm currently adding a deselection way, were you can keep existing data. thanks. looking forward to see code diffs :) SVN commit 590891 by guisson: Changes : - Fixed bug in advanced choke algorithm - Deselecting files without deleting data is now possible - Deselecting files without deleting data is now the default action when you uncheck a file in the infowdiget - Deselecting existing files at torrent load time, will not delete the file BUG: 134803 BUG: 134597 M +26 -12 libktorrent/interfaces/filetreediritem.cpp M +4 -3 libktorrent/interfaces/filetreediritem.h M +78 -43 libktorrent/interfaces/filetreeitem.cpp M +8 -3 libktorrent/interfaces/filetreeitem.h M +12 -1 libktorrent/torrent/chunk.h M +66 -17 libktorrent/torrent/chunkmanager.cpp M +18 -1 libktorrent/torrent/chunkmanager.h M +2 -1 libktorrent/torrent/chunkselector.cpp M +6 -5 libktorrent/torrent/downloader.cpp M +2 -3 libktorrent/torrent/peer.cpp M +1 -1 libktorrent/torrent/peer.h M +1 -1 libktorrent/torrent/peeruploader.cpp M +3 -3 libktorrent/torrent/torrentcontrol.cpp M +10 -1 libktorrent/util/constants.h M +68 -19 plugins/infowidget/infowidget.cpp M +4 -2 plugins/infowidget/infowidget.h M +12 -5 plugins/infowidget/iwfiletreediritem.cpp M +1 -1 plugins/infowidget/iwfiletreediritem.h M +16 -10 plugins/infowidget/iwfiletreeitem.cpp M +1 -1 plugins/infowidget/iwfiletreeitem.h |