Skip to content

Instantly share code, notes, and snippets.

@ngerakines
Created January 30, 2011 19:49
Show Gist options
  • Select an option

  • Save ngerakines/803176 to your computer and use it in GitHub Desktop.

Select an option

Save ngerakines/803176 to your computer and use it in GitHub Desktop.

By now, I think that it is safe to assume that most tech savvy people know what bit torrent is and appreciate it to some degree. BT is a really useful and interesting thing, but there are a lot of hard and interesting problems to solve.

The problem that I've been thinking about a lot lately is how to setup seed nodes on boxes that don't have a lot of disk space or ram available. The example that comes to mind is trying to setup a system that can serve lots of different torrents on a small slicehost box or the like.

So, when designing an application to work in these restricted environments, this is what I'd want:

  • Provide a simple command line interface
  • Be able to quickly deploy with a single configuration file
  • Monitor one or more xml feeds or directories to automatically add torrents to the queue

Problem #1: disk space limitations

Solution: Maintain a rolling window of torrent chunks that are being seeded and downloaded.

Problem #2: Knowing when to seed, when to download and balancing ratios

Solution: Be able to throttle up and down ratio requirements based on activity and peer group size

Problem #3: Making sure the entire thing is seeded

Solution: Use multiple nodes and configure them to start at different points of torrents for seeding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment