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.