
I want to serve files with bittorrent, just as easily as I serve files with a web server. Just upload the files to a directory on a server somewhere. A torrent file is automatically generated after the file is completely uploaded to the directory, and a bittorrent client running on the server starts to seed the torrent.
There should be an easy way to browse the files, just like you can browse files in index lists of many web servers. Nothing fancy is needed, but could of course be built. When users wants to download a file, they will get the torrent file instead.
A tracker is not needed if everyone are using the latest bittorrent client (as of 4.1.0). You just need to point to your own client, and/or a routing client, like router.bittorrent.com. However, if you can run a bittorrent client on the same host that runs a web server, it is quite easy to setup a tracker as well. This will also be compatible with other bittorrent clients, and older versions of bittorrent.
Now comes my main point. Bandwidth is unfortunately expensive. You usually don’t want to serve big files like you normally serve with bittorrent on a host where you have a web server.
Therefore, there should be an option for your seeding client to be as conservative with bandwidth as possible, since most hosting companies have limits on bandwidth usage. This can be done by doing something similar to “superseeding”, when the server is the only one that has the complete torrent, where you try to never upload the same piece twice, unless it is needed, and stop seeding when the file is fully distributed among the other peers.
The conservative mode, does have some problems though. You can’t know for sure if a file is fully distributed or not. If someone wants to stop you from distributing a file, they would just have to start seeding that file, without actually giving out any pieces, or just giving out junk pieces. Then it would look like the file is fully distributed, even though it is not, and your seeding client in conservative mode would stop. Eventually, when enough good peers have left, the file is not distributed any longer and will never be available anymore. You could try to fix that by checking for distribution speed. If no peers are getting any new pieces, they will never report new pieces and then it would look like distribution has stopped, but this is easy to fake as well of course, so it would be a pretty pointless check.
What probably would be better is to hope peers are well behaved, serve at full speed when you are the only seed and slow down the more distributed it looks like a file gets.
A log of all the traffic should be made, so you could see which files you have seeded, how much of them, and how much in total of course. To be able to check at any moment what is currently being uploaded, how many peers are connected, etc. would of course also be interesting to see. Total amount (and their ip addresses) of peers connected to you maybe an interesting stat to log as well, but bandwidth per file and total is what is most important to me.