21 April 2009

Idle thoughts II

Torrent client that manages files that the user has decided can be shared from local storage. There would probably be several ways to display them, such as chronologically and by folder structure.

Separating torrents from the filesystem and confirming any sharing instance to prevent violations of privacy or security.

Standardizing hash methods and piece size allows quick adding of torrents once a file is located in the list of sharable files. This would be very similar to the thumbnail standard; torrents would be hooked into the file manager such that moving a file would change the location that the reference torrent file pointed to, without having to regenerate the hash. This pre-torrent file would need to include information to verify the file, such as size, file type if magic numbers or other methods are available, and possibly timestamp; the file's current location; and hash information for each piece. The requirements aren't exactly the same as for thumbnails. The actual 'torrent thumbnail' file name would not have to be defined the same way as media thumbnails, unless the torrent program doesn't load the entire directory into memory upon program start. The torrent sharing method might be such that it isn't necessary to do this. Hmm~

If separation is really maintained, then torrents would contain all the information (hash, and maybe name?) to find the right 'torrent thumbnail'. It would mean that you couldn't right-click and immediately start sharing a file (automatically creating a hidden torrent, or downloading one, using a predefined tracker), because the hash would be part of the 'torrent thumbnail' file name, but this is the objective because it reduces privacy accidents. I may be saying things that are totally wrong, I'm hardly an expert on the BitTorrent protocol >_<

Overall goals for this proposed expansion of torrent functionality in order to better support user-created content sharing:
- can download the files you need
- can easily share files that you feel like sharing, matching between torrent and files on the hard drive
- can clearly and simply define the files you share


This last one, as well as privacy, is why not to have a system that lets you 'share every possible file on my hard drive that I have marked for sharing', despite that changing OS support and standardizing hashes would let you accomplish this. The fact that you cannot do this is due, as far as I understand, to the problems mentioned before here of torrent clutter and lack of freedom to manipulate files in the filesystem when sharing; but it is also due to the way torrents work with sharing collections of files. If you change the way torrents approach the download objective, by changing from searching for pieces within the swarm for a single torrent to instead searching for files within the like meta-swarm of all torrents on available trackers, it becomes easier to update and replace old torrent collections with new ones, which accomplishes the goal of reducing torrent clutter and keeping clear definitions of what to share while also allowing the addition of new files into the meta-swarm.

This goal is somewhat similar to that program for debian repositories, that lets you synchronize an iso image with new packages. It's on the Ubuntu distro server but I forget the name.

It somewhat involves treating each individual file as its own torrent. It would mess a little with tracking seeders and leechers for torrents; but since it works both ways it should all work out. As I understand it (aka not very well!) it increases load on the tracker, but I don't know how significant this is and you can always split torrents up on different trackers.

Name should not matter, because it's easy to change and people arbitrarily change the name of a file and include it in a new torrent... maybe less for user-created content where a file has more of an identity that it can be found as, but still~. If you open a torrent, it should automatically populate files you have previously decided to share if the hash file allows it; if there are files that look like they might match but the hash boundaries are wrong (is this how torrents work? I don't know, lol) it will check the hash again; in all other cases it will look for similarly-sized files within your filesystem as you allow it and suggest checking, or automatically check to see if any of them have the right hash. And if a file is still being downloaded, it could still check it if the hash boundaries are standardized.

I think knowing exactly what it is you're sharing has important psychological effects on overall swarm behavior. Some people may seed 300 torrents at once but they are in the minority.

No comments:

Post a Comment