// Copyright (c) 2013-2017 The btcsuite developers
// Use of this source code is governed by an ISC
// license that can be found in the LICENSE file.

/*
btcd is a full-node bitcoin implementation written in Go.

The default options are sane for most users.  This means btcd will work 'out of
the box' for most users.  However, there are also a wide variety of flags that
can be used to control it.

The following section provides a usage overview which enumerates the flags.  An
interesting point to note is that the long form of all of these options
(except -C) can be specified in a configuration file that is automatically
parsed when btcd starts up.  By default, the configuration file is located at
~/.btcd/btcd.conf on POSIX-style operating systems and %LOCALAPPDATA%\btcd\btcd.conf
on Windows.  The -C (--configfile) flag, as shown below, can be used to override
this location.

Usage:

	btcd [OPTIONS]

Application Options:

	    --addcheckpoint=        Add a custom checkpoint.  Format:
	                            '<height>:<hash>'
	-a, --addpeer=              Add a peer to connect with at startup
	    --addrindex             Maintain a full address-based transaction index
	                            which makes the searchrawtransactions RPC
	                            available
	    --banduration=          How long to ban misbehaving peers.  Valid time
	                            units are {s, m, h}.  Minimum 1 second (default:
	                            24h0m0s)
	    --banthreshold=         Maximum allowed ban score before disconnecting
	                            and banning misbehaving peers. (default: 100)
	    --blockmaxsize=         Maximum block size in bytes to be used when
	                            creating a block (default: 750000)
	    --blockminsize=         Minimum block size in bytes to be used when
	                            creating a block
	    --blockmaxweight=       Maximum block weight to be used when creating a
	                            block (default: 3000000)
	    --blockminweight=       Minimum block weight to be used when creating a
	                            block
	    --blockprioritysize=    Size in bytes for high-priority/low-fee
	                            transactions when creating a block (default:
	                            50000)
	    --blocksonly            Do not accept transactions from remote peers.
	-C, --configfile=           Path to configuration file
	    --connect=              Connect only to the specified peers at startup
	    --cpuprofile=           Write CPU profile to the specified file
	-b, --datadir=              Directory to store data
	    --dbtype=               Database backend to use for the Block Chain
	                            (default: ffldb)
	-d, --debuglevel=           Logging level for all subsystems {trace, debug,
	                            info, warn, error, critical} -- You may also
	                            specify
	                            <subsystem>=<level>,<subsystem2>=<level>,... to
	                            set the log level for individual subsystems --
	                            Use show to list available subsystems (default:
	                            info)
	    --dropaddrindex         Deletes the address-based transaction index from
	                            the database on start up and then exits.
	    --dropcfindex           Deletes the index used for committed filtering
	                            (CF) support from the database on start up and
	                            then exits.
	    --droptxindex           Deletes the hash-based transaction index from the
	                            database on start up and then exits.
	    --externalip=           Add an ip to the list of local addresses we claim
	                            to listen on to peers
	    --generate              Generate (mine) bitcoins using the CPU
	    --limitfreerelay=       Limit relay of transactions with no transaction
	                            fee to the given amount in thousands of bytes per
	                            minute (default: 15)
	    --listen=               Add an interface/port to listen for connections
	                            (default all interfaces port: 8333, testnet:
	                            18333, signet: 38333)
	    --logdir=               Directory to log output
	    --maxorphantx=          Max number of orphan transactions to keep in
	                            memory (default: 100)
	    --maxpeers=             Max number of inbound and outbound peers
	                            (default: 125)
	    --miningaddr=           Add the specified payment address to the list of
	                            addresses to use for generated blocks -- At least
	                            one address is required if the generate option is
	                            set
	    --minrelaytxfee=        The minimum transaction fee in BTC/kB to be
	                            considered a non-zero fee. (default: 1e-05)
	    --nobanning             Disable banning of misbehaving peers
	    --nocfilters            Disable committed filtering (CF) support
	    --nocheckpoints         Disable built-in checkpoints.  Don't do this
	                            unless you know what you're doing.
	    --nodnsseed             Disable DNS seeding for peers
	    --nolisten              Disable listening for incoming connections --
	                            NOTE: Listening is automatically disabled if the
	                            --connect or --proxy options are used without
	                            also specifying listen interfaces via --listen
	    --noonion               Disable connecting to tor hidden services
	    --nopeerbloomfilters    Disable bloom filtering support
	    --norelaypriority       Do not require free or low-fee transactions to
	                            have high priority for relaying
	    --norpc                 Disable built-in RPC server -- NOTE: The RPC
	                            server is disabled by default if no
	                            rpcuser/rpcpass or rpclimituser/rpclimitpass is
	                            specified
	    --notls                 Disable TLS for the RPC server -- NOTE: This is
	                            only allowed if the RPC server is bound to
	                            localhost
	    --onion=                Connect to tor hidden services via SOCKS5 proxy
	                            (eg. 127.0.0.1:9050)
	    --onionpass=            Password for onion proxy server
	    --onionuser=            Username for onion proxy server
	    --profile=              Enable HTTP profiling on given port -- NOTE port
	                            must be between 1024 and 65536
	    --proxy=                Connect via SOCKS5 proxy (eg. 127.0.0.1:9050)
	    --proxypass=            Password for proxy server
	    --proxyuser=            Username for proxy server
	    --regtest               Use the regression test network
	    --rejectnonstd          Reject non-standard transactions regardless of
	                            the default settings for the active network.
	    --relaynonstd           Relay non-standard transactions regardless of the
	                            default settings for the active network.
	    --rpccert=              File containing the certificate file
	    --rpckey=               File containing the certificate key
	    --rpclimitpass=         Password for limited RPC connections
	    --rpclimituser=         Username for limited RPC connections
	    --rpclisten=            Add an interface/port to listen for RPC
	                            connections (default port: 8334, testnet: 18334)
	    --rpcmaxclients=        Max number of RPC clients for standard
	                            connections (default: 10)
	    --rpcmaxconcurrentreqs= Max number of concurrent RPC requests that may be
	                            processed concurrently (default: 20)
	    --rpcmaxwebsockets=     Max number of RPC websocket connections (default:
	                            25)
	    --rpcquirks             Mirror some JSON-RPC quirks of Bitcoin Core --
	                            NOTE: Discouraged unless interoperability issues
	                            need to be worked around
	-P, --rpcpass=              Password for RPC connections
	-u, --rpcuser=              Username for RPC connections
	    --sigcachemaxsize=      The maximum number of entries in the signature
	                            verification cache (default: 100000)
	    --simnet                Use the simulation test network
	    --testnet               Use the test network
	    --torisolation          Enable Tor stream isolation by randomizing user
	                            credentials for each connection.
	    --trickleinterval=      Minimum time between attempts to send new
	                            inventory to a connected peer (default: 10s)
	    --txindex               Maintain a full hash-based transaction index
	                            which makes all transactions available via the
	                            getrawtransaction RPC
	    --uacomment=            Comment to add to the user agent -- See BIP 14
	                            for more information.
	    --upnp                  Use UPnP to map our listening port outside of NAT
	-V, --version               Display version information and exit
	    --whitelist=            Add an IP network or IP that will not be banned.
	                            (eg. 192.168.1.0/24 or ::1)

Help Options:

	-h, --help           Show this help message
*/
package main
