When a node fails, schedule a future ping to check again.
[quix0rs-apt-p2p.git] / README
1 Apt-P2P: a peer-to-peer proxy for apt downloads
2
3 ### Goal
4
5 Similar to DebTorrent[1], Apt-P2P will act as a proxy between apt
6 requests and a debian repository server, downloading any requested
7 files from peers (if possible), but falling back to a direct HTTP
8 download. Unlike DebTorrent, Apt-P2P will be simple, efficient, and
9 fast.
10
11 [1]: http://debtorrent.alioth.debian.org/
12
13 ### Features
14
15 * Downloads from peers, increasing the available bandwidth to the 
16   user
17 * Reduces the bandwidth requirements needed to setup a repository 
18   of packages
19 * Seamlessly integrates with the current APT tool
20 * Automatically falls back to downloading from an HTTP mirror when 
21   peers are not available
22 * Builds on other already existing tools where possible
23 * Fast and requires limited CPU and memory
24 * Will try to download any file it can find a hash for from peers
25   (including Packages.bz2, Sources.gz, ...)
26
27 This software is open-source and is released at no charge under the 
28 terms of the GPL v2 license[2].
29
30 [2]: http://www.opensource.org/licenses/gpl-license.php
31
32 ### Requirements
33
34 To run the full program (e.g. to actually download something):
35
36 * Python 2.4 or higher
37 * Twisted[3] 2.4 or higher
38   - including Twisted Web2[4] 0.2 or higher
39 * python-apt[5] 0.6.20 or higher
40 * An APT-based package management system (such as Debian distributions 
41   have)
42
43 If you just want to run the DHT part of the program (e.g. to provide a
44 bootstrap node), then you only need:
45
46 * Python 2.4 or higher
47 * Twisted[3] 2.4 or higher
48
49 [3]: http://twistedmatrix.com/trac/
50 [4]: http://twistedmatrix.com/trac/wiki/TwistedWeb2
51 [5]: http://packages.debian.org/unstable/python/python-apt
52
53 ### Development Status
54
55 This project is still undergoing massive code and protocol changes
56 and hasn't yet seen a release. The code has worked, and is
57 occasionally working, and will definitely be working soon in the
58 future.
59
60 ### Installing
61
62 There are detailed instructions on the web site[6] showing how to
63 install the Apt-P2P program. If you have any trouble using the
64 program, you can email me[7], or come and find me in the
65 DebTorrent IRC channel (#debtorrent on OFTC[8]). If you think
66 you've found a bug in the program, please let me know.
67
68 [6]: http://www.camrdale.org/apt-p2p.html
69 [7]: mailto:camrdale@gmail.com
70 [8]: http://irc.oftc.net
71
72 ### The Code
73
74 The latest code for the project is currently hosted in a Git 
75 repository[9]. It is publicly readable, and there are instructions
76 there for downloading the code. It is originally based on the
77 khashmir[10] implementation of the kademlia DHT[11]. All of the
78 networking is handled by the Twisted and Twisted Web2
79 libraries. Dealing with apt's repository files is handled by
80 python-apt, the code for which is based on that of the
81 apt-proxy[12] program.
82
83 [9]: http://git.camrdale.org/?p=apt-p2p.git;a=summary
84 [10]: http://khashmir.sourceforge.net/
85 [11]: http://en.wikipedia.org/wiki/Kademlia
86 [12]: http://apt-proxy.sourceforge.net/