debtorrent-client(1) download files using a scatter-gather network

SYNOPSIS

debtorrent-client [options ...]

DESCRIPTION

This manual page documents briefly the options available to the debtorrent-client command.

debtorrent-client is a daemon that listens for requests for packages from APT, and then downloads them using bittorrent, a peer-to-peer, scatter-gather network protocol.

In order for APT to send it's requests to debtorrent-client, the source.list entries must be modified to point to the debtorrent-client proxy address. If debtorrent-client is running on this machine, then adding "localhost:9988/" to the beginning of each entry should be sufficient. For example, if your sources.list contains a line like this:

deb http://ftp.us.debian.org/debian etch main contrib non-free

then replace it with this:

deb http://localhost:9988/ftp.us.debian.org/debian etch main contrib non-free

The port can be changed in the debtorrent-client config file in /etc/debtorrent/debtorrent-client.conf, or using the "--port" command-line option described below, but it defaults to 9988.

OPTIONS

These programs follow the usual GNU command line syntax, with long options starting with two dashes (`--'). A summary of options is included below. For more detail, see the configuration file in /etc/debtorrent.

CONFIG FILES

--configfile filename
the filename to use for the configuration file, if not specified then a file in /etc/debtorrent will be used, followed by a file in the .DebTorrent directory in the user's home directory
--save_options 0|1
whether to save the current options as the new default configuration for the current program (defaults to 0)

LOCATIONS

--download_dir directory
the local directory to save the downloads in, if left blank the default of the user's home directory will be used
--saveas_style 1|2
how to name the torrent download directories, 1 = mirror_dists_suite_section_binary-arch, 2 = mirror (experimental)
--cache_dir directory
the local directory to save cache data in, if left blank then a .DebTorrent directory in the user's home directory will be used
--expire_cache_data days
the number of days after which you wish to expire old cache data (0 = disabled) (defaults to 30)
--log_dir directory
the local directory to save log files in, if left blank then the cache directory will be used
--log_level level
log messages that are greater than or equal to level to log files, the basic log levels are 50 (critical), 40 (errors), 30 (warnings), 20 (info), and 10 (debug) (the default is 20)

RATE LIMIITS

--max_upload_rate kB/s
the maximum kB/s to upload at (0 = no limit, -1 = automatic) (defaults to 0)
--max_download_rate kB/s
the maximum kB/s to download at (0 = no limit) (defaults to 0)
--upload_rate_fudge seconds
the time equivalent in seconds of writing to kernel-level TCP buffer, for rate adjustment (defaults to 5.0)
--tcp_ack_fudge overhead
how much TCP ACK download overhead to add to upload rate calculations (0 = disabled) (defaults to 0.029999999999999999)
--max_rate_period seconds
the maximum number of seconds to use in guessing what the current rate estimate represents (defaults to 20.0)
--upload_unit_size bytes
when limiting the upload rate, the number of bytes to send at a time (defaults to 1460)

TORRENT CONNECTIONS

--bind ip|hostname[,ip|hostname ...]
a comma-separated list of ips and hostnames to bind to locally to listen for peer connections (defaults to '')
--ip ip
the ip to report you have to the tracker (defaults to '')
--minport port
the minimum port to listen on (defaults to 10000)
--maxport port
the maximum port to listen on (defaults to 60000)
--random_port 0|1
whether to choose randomly inside the port range (instead of counting up linearly from min to max) (defaults to 1)
--ipv6_enabled 0|1
whether to allow the client to connect to peers via IPv6 (defaults to 0)
--ipv6_binds_v4 0|1
set if an IPv6 server socket won't also field IPv4 connections (defaults to 0)
--timeout seconds
the number of seconds to wait between closing sockets which nothing has been received on (defaults to 300.0)
--timeout_check_interval seconds
the number of seconds to wait between checking if any connections have timed out (defaults to 60.0)

ENCRYPTION

--crypto_allowed 0|1
whether to allow the client to accept encrypted connections. (defaults to 0)
--crypto_only 0|1
whether to only create or allow encrypted connections. (defaults to 0)
--crypto_stealth 0|1
whether to prevent all non-encrypted connection attempts; will result in an effectively firewalled state on older trackers. (defaults to 0)

APT REQUESTS

--port port
the port to listen on (defaults to 9988)
--apt_bind ip|hostname[,ip|hostname ...]
a comma-separated list of ips and hostnames to bind to locally to listen for requests from Apt clients (defaults to '')
--show_infopage 0|1
whether to display an info page when the tracker's root dir is loaded (defaults to 1)
--infopage_redirect URL
redirect the info page to this URL (defaults to '')
--favicon filename
the filename containing x-icon data to return when browser requests favicon.ico (defaults to '')
--display_path 0|1
whether to display the full path or the torrent contents for each torrent (defaults to 1 for btlaunchmany, 0 for btlaunchmanycurses)
--allow_get 0|1
use with allowed_dir; adds a /file?hash=hash URL that allows users to download the torrent file (defaults to 0)
--min_time_between_log_flushes seconds
the minimum number of seconds it must have been since the last flush to do another one (defaults to 3.0)
--hupmonitor 0|1
whether to reopen the log file upon receipt of HUP signal (defaults to 0)
--allowed_ips file
only allow connections from IPs specified in the given file, which contains subnet data in the format: aa.bb.cc.dd/len (defaults to '')
--banned_ips file
don't allow connections from IPs specified in the given file, which contains IP range data in the format: xxx:xxx:ip1-ip2 (defaults to '')
--parse_ip_files seconds
number of seconds between reloading of allowed and banned IP lists (defaults to 60)

OTHER THINGS

--disable_http_downloader 0|1
whether to disable the backup HTTP downloader, WARNING: for testing purposes only (defaults to 0)
--separate_all 0|1|2|3
whether to separate the architecture:all packages into a separate torrent, 0 = don't separate, 1 = separate, run architecture:all, 2 = separate, run non-architecture:all torrent, 3 = separate, run both
--pieces_url URL
the remote URL to use to fetch information on the splitting of large packages into pieces
--long_lived_torrent_url URL
the remote URL to use to fetch information on creating a long-lived torrent for testing or unstable using unique piece numbers

ADVANCED OPTIONS

WARNING: The options below control some of the inner workings of the bittorrent client. You should not need to change any of them, and it is NOT recommended that you change them unless you are VERY familiar with bittorrent, as poor choices for some of the variables can have bad results, such as other clients refusing to connect to you.

BITTORRENT OPTIONS

--keepalive_interval seconds
the number of seconds to pause between sending keepalives (defaults to 120.0)
--download_slice_size bytes
the number of bytes to query for per request (defaults to 16384)
--max_slice_length length
the maximum length slice to send to peers, larger requests are ignored (defaults to 131072)
--max_message_length length
the maximum length prefix encoding you'll accept over the wire. Larger values will get the connection dropped. (defaults to 8388608)
--rarest_first_cutoff number
the number of downloads at which to switch from random to rarest first (defaults to 2)
--rarest_first_priority_cutoff number
the number of peers which need to have a piece before other partials take priority over rarest first (defaults to 5)
--breakup_seed_bitfield 0|1
whether to send an incomplete bitfield and then 'have' messages, in order to get around stupid ISP manipulation (defaults to 1)
--snub_time seconds
the number of seconds to wait for data to come in over a connection before assuming it's semi-permanently choked (defaults to 30.0)

INCENTIVE MECHANISM

--max_uploads number
the maximum number of uploads to allow at once (defaults to 7)
--min_uploads number
the number of uploads to fill out to with extra optimistic unchokes (defaults to 4)
--round_robin_period seconds
the number of seconds between the client switching upload targets (defaults to 30)
--auto_kick 0|1
whether to allow the client to automatically kick/ban peers that send bad data (defaults to 1)
--security 0|1
whether to enable extra security features intended to prevent abuse (defaults to 1)

TRACKER CONNECTIONS

--default_tracker announce
the default tracker announce address to use for new torrents that don't specify one (defaults to 'http://dttracker.debian.net:6969/announce')
--force_tracker announce
if set, this will force all new torrents to use this announce address for the tracker, regardless of the one specified for the torrent (defaults to '')
--rerequest_interval seconds
the number of seconds between requesting more peers (defaults to 300)
--min_peers number
make tracker requests every --rerequest_interval until this number has been reached, then switch to the standard longer interval (defaults to 20)
--max_initiate number
the number of peers at which to stop initiating new connections (defaults to 40)
--max_connections number
the absolute maximum number of peers to connect with (0 = no limit) (defaults to 0)
--http_timeout seconds
the number of seconds to wait before assuming that an http connection has timed out (defaults to 60)

FILE SYSTEM

--buffer_reads 0|1
whether to buffer disk reads (defaults to 1)
--write_buffer_size space
the maximum amount of space to use for buffering disk writes (in megabytes, 0 = disabled) (defaults to 4)
--max_files_open number
the maximum number of files to keep open at a time, 0 means no limit (defaults to 50)
--check_hashes 0|1
whether to check hashes on disk (defaults to 1)
--double_check 0|1
whether to double-check data being written to the disk for errors (may increase CPU load) (defaults to 1)
--triple_check 0|1
whether to thoroughly check data being written to the disk (may slow disk access) (defaults to 0)
--lock_files 0|1
whether to lock files the client is working with (defaults to 1)
--lock_while_reading 0|1
whether to lock access to files being read (defaults to 0)
--auto_flush minutes
the number of minutes between automatic flushes to disk (0 = disabled) (defaults to 0)

ADVANCED FEATURES

--super_seeder 0|1
whether to use special upload-efficiency-maximizing routines (only for dedicated seeds) (defaults to 0)
--dedicated_seed_id code
the code to send to a tracker, identifying as a dedicated seed (defaults to '')

AUTHOR

This manual page was written by Cameron Dale <[email protected]> for the Debian system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
 

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.