# The apt-p2p configuration file.
#
# This is an ini-type configuration file, using sections identified by
# square brackets. Values are specified on a single line using the '='
# sign. Some values indicate times, in which case a suffix of 'd' for
# days, 'h' for hours, 'm' for minutes, and 's' for seconds can be used.
# Some values can span multiple lines by starting the subsequent lines
# with one or more spaces.
#
#########################  DEFAULT  ###################################
# This is the default section containing the configuration options for the
# main application.
[DEFAULT]

# The number of the port to listen on for requests.
# The main application will use this TCP port to listen for requests from APT, and
# for uploads to other peers. If a port is not specified for the DHT, it will also
# use this UDP port to listen for DHT requests.
PORT = 9977

# The rate to limit sending data to peers to, in KBytes/sec.
# Set this to 0 to not limit the upload bandwidth.
UPLOAD_LIMIT = 0

# The minimum number of peers before the mirror is not used.
# If there are fewer peers than this for a file, the mirror will also be
# used to speed up the download. Set to 0 to never use the mirror if
# there are peers.
MIN_DOWNLOAD_PEERS = 3

# Directory to store the downloaded files in
CACHE_DIR = /var/cache/apt-p2p
    
# 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 = 
    
# Whether it's OK for the application to use for sharing files an IP
# address from a known local or private range (RFC 1918). This should
# only be set true if you are running your own private apt-p2p network
# that no one else will be connecting to.
LOCAL_OK = no

# Whether a remote peer can access the statistics page
REMOTE_STATS = yes

# 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 = 2.5h

# The user name to try and run as (leave blank to run as current user)
USERNAME = apt-p2p

# Which DHT implementation to use.
# It must be possible to do "from <DHT>.DHT import DHT" to get a class that
# implements the IDHT interface. There should also be a similarly named
# section below to specify the options for the DHT.
DHT = apt_p2p_Khashmir

# Whether to only run the DHT (for providing only a bootstrap node)
DHT-ONLY = no

#######################  apt_p2p_Khashmir  ############################
# This is the default (included) DHT to use.
[apt_p2p_Khashmir]

# To specify a different (UDP) port for the DHT to use.
# If not specified here, the PORT value in the DEFAULT section will be used.
# PORT = 

# bootstrap nodes to contact to join the DHT
BOOTSTRAP = www.camrdale.org:9977
            www.camrdale.org:9976
            steveholt.hopto.org:9976

# whether this node is a bootstrap node
BOOTSTRAP_NODE = no

# interval between saving the running state
CHECKPOINT_INTERVAL = 5m

# concurrent number of calls per find node/value request!
CONCURRENT_REQS = 8

# how many hosts to post values to
STORE_REDUNDANCY = 6

# 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

# how many times in a row a node can fail to respond before it's booted from the routing table
MAX_FAILURES = 3

# never ping a node more often than this
MIN_PING_INTERVAL = 15m

# refresh buckets that haven't been touched in this long
BUCKET_STALENESS = 1h

# Whether it's OK to add nodes to the routing table that use an IP
# address from a known local or private range (RFC 1918). This should
# only be set true if you are running your own private apt-p2p network
# that no one else will be connecting to.
# If not specified here, the LOCAL_OK value in the DEFAULT section will be used.
# LOCAL_OK = no

# expire unrefreshed entries older than this
KEY_EXPIRE = 3h

# Timeout KRPC requests to nodes after this time.
KRPC_TIMEOUT = 9s

# KRPC requests are resent using exponential backoff starting with this delay.
# The request will first be resent after the delay set here.
# The request will be resent again after twice the delay set here. etc.
# e.g. if TIMEOUT is 9 sec., and INITIAL_DELAY is 2 sec., then requests will
# be resent at times 0, 2 (2 sec. later), and 6 (4 sec. later), and then will
# timeout at 9.
KRPC_INITIAL_DELAY = 2s

# whether to spew info about the requests/responses in the protocol
SPEW = no
