home = os.path.expanduser('~')
if not os.path.isdir(home):
home = os.path.abspath(os.path.dirname(sys.argv[0]))
+DEFAULT_CONFIG_FILES=['/etc/apt-dht/apt-dht.conf',
+ home + '/.apt-dht/apt-dht.conf']
DEFAULTS = {
# Directory to store the downloaded files in
'CACHE_DIR': home + '/.apt-dht/cache',
+ # Other directories containing packages to share with others
+ # WARNING: all files in these directories will be hashed and available
+ # for everybody to download
+ 'OTHER_DIRS': """""",
+
# User name to try and run as
'USERNAME': '',
+
+ # Whether it's OK to use an IP addres from a known local/private range
+ 'LOCAL_OK': 'no',
+
+ # Unload the packages cache after an interval of inactivity this long.
+ # The packages cache uses a lot of memory, and only takes a few seconds
+ # to reload when a new request arrives.
+ 'UNLOAD_PACKAGES_CACHE': '5m',
+
+ # Refresh the DHT keys after this much time has passed.
+ # This should be a time slightly less than the DHT's KEY_EXPIRE value.
+ 'KEY_REFRESH': '57m',
# Which DHT implementation to use.
# It must be possile to do "from <DHT>.DHT import DHT" to get a class that
DHT_DEFAULTS = {
# bootstrap nodes to contact to join the DHT
'BOOTSTRAP': """www.camrdale.org:9977
- steveholt.hopto.org:9977""",
+ steveholt.hopto.org:9976""",
# whether this node is a bootstrap node
'BOOTSTRAP_NODE': "no",
'HASH_LENGTH': '160',
# checkpoint every this many seconds
- 'CHECKPOINT_INTERVAL': '15m', # fifteen minutes
+ 'CHECKPOINT_INTERVAL': '5m', # five minutes
### SEARCHING/STORING
# concurrent xmlrpc calls per find node/value request!
# how many hosts to post to
'STORE_REDUNDANCY': '3',
+ # How many values to attempt to retrieve from the DHT.
+ # Setting this to 0 will try and get all values (which could take a while if
+ # a lot of nodes have values). Setting it negative will try to get that
+ # number of results from only the closest STORE_REDUNDANCY nodes to the hash.
+ # The default is a large negative number so all values from the closest
+ # STORE_REDUNDANCY nodes will be retrieved.
+ 'RETRIEVE_VALUES': '-10000',
+
### ROUTING TABLE STUFF
# how many times in a row a node can fail to respond before it's booted from the routing table
'MAX_FAILURES': '3',
# refresh buckets that haven't been touched in this long
'BUCKET_STALENESS': '1h', # one hour
- ### KEY EXPIRER
- # time before expirer starts running
- 'KEINITIAL_DELAY': '15s', # 15 seconds - to clean out old stuff in persistent db
-
- # time between expirer runs
- 'KE_DELAY': '20m', # 20 minutes
-
# expire entries older than this
- 'KE_AGE': '1h', # 60 minutes
+ 'KEY_EXPIRE': '1h', # 60 minutes
+
+ # whether to spew info about the requests/responses in the protocol
+ 'SPEW': 'yes',
}
class AptDHTConfigParser(SafeConfigParser):