This document is http://videdot.com/ideas/autotorrent

At: /ideas/autotorrent

AutoTorrent

Notes for building a BitTorrent client which needs little user attention.

'Purple Pangalin!' exclaimed the Journalist. 'What sort of a transportation system d'you call this? The more popular it is the slower it goes! What genius worked this one out?!' He was really quite indignant.

"'You have to devise a system that goes faster the more popular it is, so it can cope! It's perfectly obvious!'"

Douglas Adams' Starship Titanic, by Terry Jones

The big picture

Downloading content (in this case with BitTorrent) should be easy. The user should not have to get their hands grubby, just inform the system of the sorts of things they like and allow it to gather them in.

Features

Auto-find
Find the torrents that interest the user by watching the appropriate syndication feeds (RSS, primarily), Web pages (possibly) and IRC channels (perhaps, eventually).
Auto-start
Start a torrent with no user interaction. By either knowing where it has already been started or having a series of download locations and using the first/best one with enough space.
Auto-restart
Remember the torrents currently on the go, even after a drastic interruption.
Quick start & restart
Remember the state of the transfer, so we don't need to read through it calculating hashes at startup or when resuming. (Note, this is already there in the ordinary python client these days.)
Auto-civility
Remember our upload/download ratio, so we can behave in a civilised fashion (perhaps tunable by the user, but probably just set to 1:1).
This way we can quit automatically & move on once we have contributed enough. We could also look at quitting given other errors or breakdowns, but that can wait.

The gritty bit

Detail to follow. Essentially it builds on the idea of broadcatching (RSS feeds with BitTorrent enclosures) which has been rumbling on for a good few months now.

Test version

Fitting the needs for , I've a wee Be client to do this coming together. It's essentially just some feed-reading tools, hooked in to an altered version of the original BitTorrent client, tweaked to know where you might keep things and keeping other meta-information in attributes. I'm not as far along as storing the state of the download yet, or checking that what is so stored is correct after startup.

Concerns

Obviously, we should be concerned about launching anything automatically, based on information from an online source we cannot fully trust.

We will simply reduce this to a problem of trusting certain applications not to get out of their box and compromise the system - even with untrusted data.

There is also a broader concern: what do you do if a previously trustworthy content provider (or meta-provider) starts lying about available content. What if you come home from a two-week holiday to find your hard discs full of objectionable material? This is a concern addressed by reputation systems, and beyond the scope of this discussion (but well in scope for as a whole).

Beyond consuming

We should apply the same principles to effortless publishing of torrents too.

No comments yet. Add one.