-------------------------------------------------------------------------------- Kenosis-BitTorrent -------------------------------------------------------------------------------- Intro Kenosis is a fully-distributed p2p RPC system built on top of XMLRPC. Nodes are automatically connected to each other via a Kademlia-style network (http://citeseer.ist.psu.edu/529075.html) and can route RPC requests efficiently to any online node. Kenosis does not rely on a central server - any Kenosis node can effectively join the network ("bootstrap") from any connected node. More about Kenosis can be found here: http://kenosis.sf.net This is Kenosis-enabled BitTorrent. Using Kenosis, we've eliminated the tracker as a central point of failure for BitTorrent downloads. Kenosis-enabled BitTorrent is 100% backwards compatible with existing BitTorrent clients. -------------------------------------------------------------------------------- Details Kenosis-BitTorrent uses torrent files which specify a tracker of the form http://hash.bt.kenosisp2p.org, where "hash" is the hash of the original file. Kenosis-BitTorrent downloaders will notice that this is a kenosis url and use kenosis to find the tracker that is handling this torrent file. Standard BitTorrent downloaders try to resolve hash.bt.kenosisp2p.org as normal. Our dns server will look up the hash in kenosis and return to the client the ip address of the kenosis node that is tracking that file. If that tracker becomes unreachable, subsequent lookups for that hash will switch automatically to the next available Kenosis-enabled tracker. -------------------------------------------------------------------------------- Usage Each of the BitTorrent commands described in README.txt can be modified to use Kenosis easily. To start a tracker that will join the Kenosis p2p network, use this command. Benefits: if your tracker goes down or becomes unavailable, other Kenosis-enabled trackers can take over. Users will still be able to download your .torrent files from the new tracker. Make sure you use the Kenosis-enabled btmakemetafile below to create your .torrent file. ./bttrack.py --port 6969 --dfile dstate To make a .torrent file that instructs clients (even legacy clients) to use Kenosis to find an available tracker for the data, use this modified btmakemetafile command. Benefits: whether or not you run a tracker yourself, you can make data avialble to BitTorrent clients. ./btmakemetafile.py myfile.ext kenosisp2p The Kenosis project provides a DNS bridge that allows legacy BitTorrent clients to take advantage of Kenosis for any .torrent file that was generated with Kenosis-enabled btmakemetafile. However, if you prefer to have your BitTorrent client use Kenosis directly, you can use any of the BitTorretn download scripts (such as btdownloadheadless) with Kenosis enabled. Benefits: your client will bypass the DNS bridge to discover the correct BitTorrent tracker. ./btdownloadheadless.py --url http://my.server/myfile.torrent --saveas myfile.ext -------------------------------------------------------------------------------- Notes - by default, these scripts will automatically bootstrap themselves onto the Kenosis network via a root Kenosis node that is running at root.kenosisp2p.org:5005. However, Kenosis nodes can bootstrap off any node in the network. Therefore, you may provide the --kenosis_bootstrap option if you prefer to bootstrap off a different node. - bttrack and all of the downloade scripts support a --kenosis command-line argument for controlling the use of Kenosis within BitTorrent. The default value is 1, meaning htat Kenosis is enabled. If you want to run a downloader or tracker that will not connect to Kenosis pass 0. For example: ./btdownloadheadless.py --url http://my.server/myfile.torrent --saveas myfile.ext --kenosis 0 or ./btdownloadheadless.py --url http://my.server/myfile.torrent --saveas myfile.ext --kenosis 1 --kenosis_bootstrap some.other.node:port