Constant arti::cfg::ARTI_EXAMPLE_CONFIG
source · [−]pub const ARTI_EXAMPLE_CONFIG: &str = "# (Built-in defaults for the arti configuration format.)\n# (This is an example file you can use as a template or as documentation.)\n\n# Rules about how arti should behave as an application\n[application]\n# If true, we should watch our configuration files for changes.\n#\n# (Note that this feature may misbehave if you change symlinks in the\n# paths to the directory holding the configuration files, if you\n# remove and recreate those directories, or if those directories\n# change for some other reason.)\n#watch_configuration = false\n\n# Set up the Arti program to run as a proxy.\n[proxy]\n# Default port to use when listening to SOCKS connections. We always\n# listen on localhost.\n#\n# Note that only one process can listen on a given port at a time.\n#socks_port = 9150\n\n# Port to use to listen for DNS requests. 0 means disabled.\n#dns_port = 0\n\n# Configure logging\n[logging]\n\n# Specify filtering directives for sending trace messages to the console\n# (via standard output).\n#\n# It can be as simple as a single loglevel, or as complicated as a\n# list with per-module settings.\n#\n# You can override this setting with the -l, --log-level command-line option.\n#\n# Example:\n# trace_filter = \"info,tor_proto::channel=trace\"\n#\n# For more information, see https://docs.rs/tracing-subscriber/0.2.20/tracing_subscriber/filter/struct.EnvFilter.html\n#console = \"debug\"\n\n# As above, but specify filtering directives for sending trace messages to \n# the journald logging system. Empty string means not to use journald.\n#journald = \"\"\n\n# You can also configure one or more log files, with different filters, and optional\n# rotation.\n#\n# For example (not the default):\n#files = [\n# {path = \"~/logs/debug.log\", filter=\"debug\"},\n# {path = \"~/logs/trace.log\", filter=\"trace\", rotate=\"daily\"},\n#]\n\n# Whether to log sensitive information (such as target hostnames and ip addresses)\n#\n# If set to `false` (the default), such information is not logged in meessages of\n# level `info` or higher.\n#log_sensitive_information = false\n\n# Locations to use for storing things on disk.\n#\n# These paths can use ~ to indicate the user\'s home directory, or a set\n# of shell-style variables to indicate platform-specific paths.\n#\n# Supported variables are ARTI_CACHE, ARTI_CONFIG, ARTI_SHARED_DATA,\n# ARTI_LOCAL_DATA, and USER_HOME.\n#\n# Multiple processes can share the same cache_dir. If they do, one of them\n# will download directory information for all of the others.\n#\n# The state directory is not yet used.\n[storage]\n#cache_dir = \"${ARTI_CACHE}\"\n#state_dir = \"${ARTI_LOCAL_DATA}\"\n\n# Describe how to enforce permissions on the filesystem when accessing the cache\n# and state directories. (This does not apply to configuration files) \n[storage.permissions]\n# If set to true, we ignore all filesystem permissions.\n#dangerously_trust_everyone = false\n\n# What user (if any) is trusted to own files and directories? \":current\" means\n# to trust the current user.\n#trust_user = \":current\"\n\n# What group (if any) is trusted to have read/write access to files and\n# directories? \":selfnamed\" means to trust the group with the same name as the\n# current user, if that user is a member.\n#trust_group = \":username\"\n\n# If set, gives a path prefix that will always be trusted. For example, if this\n# option is set to \"/home/\", and we are checking \"/home/username/.cache\", then\n# we always accept the permissions on \"/\" and \"/home\", but we check the\n# permissions on \"/home/username\" and \"/home/username/.cache\".\n# \n# (This is not the default.)\n#\n# ignore_prefix = \"/home/\"\n#ignore_prefix = \"\"\n\n# Replacement values for consensus parameters. This is an advanced option\n# and you probably should leave it alone. Not all parameters are supported.\n# These are case-sensitive.\n#\n[override_net_params]\n# For example (not the eefaults):\n# circwindow = 1000\n# min_paths_for_circs_pct = 60\n\n# Configuration for timing when and how often we should download directory\n# information.\n#\n# We use a randomized algorithm for determining when to retry. With\n# the various retry_* options, \"num\" is the number of downloads to\n# attempt, and \"initial_delay\" is a parameter determining both our\n# _first_ delay before we reattempt, and our _minimum_ delay for\n# subsequent attempts.\n[download_schedule]\n\n# How to retry our initial bootstrapping when we\'re trying to start up.\n#retry_bootstrap = { attempts = 128, initial_delay = \"1 sec\", parallelism = 1 }\n\n# How to retry a single consensus download.\n#retry_consensus = { attempts = 3, initial_delay = \"1 sec\", parallelism = 1 }\n\n# How to retry a set of authority certificate downloads.\n#retry_certs = { attempts = 3, initial_delay = \"1 sec\", parallelism = 1 }\n\n# How to retry a set of microdescriptor downloads.\n#retry_microdescs = { attempts = 3, initial_delay = \"1 sec\", parallelism = 4 }\n\n# Configuration for how much clock skew to tolerate in our directory information\n[download_tolerance]\n# For how long before a directory document is valid should we accept it?\n#pre_valid_tolerance = \"1 day\"\n\n# For how long after a directory document is valid should we consider it usable?\n#post_valid_tolerance = \"3 days\"\n\n# Tells the circuit manager rule for constructing circuit paths\n[path_rules]\n\n# How far apart do relays need to be in IP-space before they can be\n# used in the same circuit? For example, \"ipv4_subnet_family_prefix=16\"\n# means that two relays cannot appear in the same circuit if their\n# IPv4 addresses begin with the same 16 bits.\n#ipv4_subnet_family_prefix = 16\n#ipv6_subnet_family_prefix = 32\n\n# Which addresses are we willing to contact directly?\n#\n# This option can be used to specify a set of addresses or ports that are\n# permitted: typically, because a local firewall blocks everything else. For\n# example, [ \"*:80\", \"*:443\"] would only try to connect to relays on the network\n# that support port 80 or port 443. You can use prefix lengths and port ranges,\n# too: \"198.51.100.0/24:1-1024\" is a valid pattern.\n#\n# By default, all addresses and ports are permitted.\n#reachable_addrs = [ \"*:*\" ]\n\n# Configure preemptive circuit construction.\n#\n# Preemptive circuits are built ahead of time, to anticipate client need. This\n# section configures the way in which this demand is anticipated and in which\n# these circuits are constructed.\n[preemptive_circuits]\n# If we have at least this many available circuits, we suspend\n# construction of preemptive circuits. whether our available circuits\n# support our predicted exit ports or not.\n#disable_at_threshold = 12\n\n# At startup, which exit ports should we expect that the client will want?\n#\n# (Over time, new ports are added to this list in response to what the client\n# has actually requested.)\n#initial_predicted_ports = [80, 443]\n\n# After we see the client request a connection to a new port, how long should we\n# predict that the client will still want to have circuitsw available for that\n# port?\n#prediction_lifetime = \"1 hour\"\n\n# How many available circuits should we try to have, at minimum, for each\n# predicted exit port?\n#min_exit_circs_for_port = 2\n\n# Configuration information about the Tor network itself\n[tor_network]\n# List of locations to look in when downloading directory information\n# we don\'t actually have a directory yet.\n# fallback_caches = [ <default list is compiled-in > ]\n\n# List of directory authorities which we expect to sign consensus documents.\n# authorities = [ <default list is compiled-in > ]\n\n# Rules for how long circuits should survive, and how long pending\n# requests should wait for a circuit.\n[circuit_timing]\n\n# Once a circuit has been used for a request, we stop giving it out for\n# other requests after this time.\n#max_dirtiness = \"10 minutes\"\n\n# When a circuit is requested, we keep trying to build circuits for up\n# to this long before the request gives up.\n#request_timeout = \"60 sec\"\n\n# When a circuit is requested, we make up to this many attempts to build\n# circuits for it before the request gives up.\n#request_max_retries = 16\n\n# If a circuit is finished that would satisfy a pending request, but the\n# request is still waiting for its own circuits to complete, the request\n# will wait this long before using the unexpectedly available circuit.\n#request_loyalty = \"50 msec\"\n\n# Rules for which addresses a client is willing to try to connect to over\n# the tor network.\n[address_filter]\n\n# Should we allow attempts to make Tor connections to local addresses?\n#allow_local_addrs = false\n\n# Rules for how long streams should wait when connecting to host or performing a\n# DNS lookup.\n#\n# These timeouts measure the permitted time between sending a request on an\n# established circuit, and getting a response from the exit node.\n[stream_timeouts]\n\n# How long should we wait before timing out a stream when connecting to a host?\n#connect_timeout = \"10 sec\"\n\n# How long should we wait before timing out when resolving a DNS record?\n#resolve_timeout = \"10 sec\"\n\n# How long should we wait before timing out when resolving a DNS PTR record?\n#resolve_ptr_timeout = \"10 sec\"\n\n# Configuration for the system resources used by Arti.\n[system]\n\n# What is the maximum number of file descriptors which should be available\n# to Arti when we launch?\n#max_files = 16384\n";
Expand description
Default options to use for our configuration.