Running Bitcoin

From Bitcoin Wiki
Revision as of 21:24, 29 April 2011 by Cryptoman (talk | contribs) (Command-line arguments)
Jump to: navigation, search

There are two variations of the official bitcoin program available; one with a graphical user interface (usually referred to as just “Bitcoin”), and a 'headless' version (called bitcoind). They are completely compatible with each other, and take the same command-line arguments, read the same configuration file, and read and write the same data files. You can run one copy of either Bitcoin or bitcoind on your system at a time (if you accidently try to launch another, the copy will let you know that Bitcoin or bitcoind is already running and will exit).

Command-line arguments

Give Bitcoin (or bitcoind) the -? or –help argument and it will print out a list of the most commonly used command-line arguments and then exit:


 bitcoin [options]                     
 bitcoin [options] <command> [params]  Send command to -server or bitcoind
 bitcoin [options] help                List commands
 bitcoin [options] help <command>      Get help for a command


 -conf=<file>       Specify configuration file (default: bitcoin.conf)
 -gen               Generate coins
 -gen=0             Don't generate coins
 -min               Start minimized
 -datadir=<dir>     Specify data directory
 -proxy=<ip:port>   Connect through socks4 proxy
 -addnode=<ip>      Add a node to connect to
 -connect=<ip>      Connect only to the specified node
 -nolisten          Don't accept connections from outside
 -noupnp            Don't attempt to use UPnP to map the listening port
 -upnp              Attempt to use UPnP to map the listening port
 -paytxfee=<amt>    Fee per KB to add to transactions you send
 -server            Accept command line and JSON-RPC commands
 -daemon            Run in the background as a daemon and accept commands
 -testnet           Use the test network
 -rpcuser=<user>    Username for JSON-RPC connections
 -rpcpassword=<pw>  Password for JSON-RPC connections
 -rpcport=<port>    Listen for JSON-RPC connections on <port> (default: 8332)
 -rpcallowip=<ip>   Allow JSON-RPC connections from specified IP address
 -rpcconnect=<ip>   Send commands to node running on <ip> (default:
 -keypool=<n>       Set key pool size to <n> (default: 100)
 -rescan            Rescan the block chain for missing wallet transactions
 -rpcssl            Use OpenSSL (https) for JSON-RPC connections
 -?                 This help message

Bitcoin.conf Configuration File

All command-line options (except for -datadir and -conf) may be specified in a configuration file, and all configuration file options may also be specified on the command line. Command-line options override values set in the configuration file.

The configuration file is a list of setting=value pairs, one per line, with optional comments starting with the '#' character.

The configuration file is not automatically created; you can create it using your favorite plain-text editor. By default, Bitcoin (or bitcoind) will look for a file named 'bitcoin.conf' in the bitcoin data directory, but both the data directory and the configuration file path may be changed using the -datadir and -conf command-line arguments.

Operating System Default bitcoin datadir Typical path to configuration file
Windows  %APPDATA%\Bitcoin\  :\Documents and Settings\username\Application Data\Bitcoin\bitcoin.conf
Linux $HOME/.bitcoin/ /home/username/.bitcoin/bitcoin.conf
Mac OSX $HOME/Library/Application Support/Bitcoin/ /Users/username/Library/Application Support/Bitcoin/bitcoin.conf

Sample Bitcoin.conf

Here is a sample bitcoin.conf file, containing every option set to its default value.

 # bitcoin.conf configuration file. Lines beginning with # are comments.
 # Network-related settings:
 # Run on the test network instead of the real bitcoin network.
 # Connect via a socks4 proxy
 # Use as many addnode= settings as you like to connect to specific peers
 # ... or use as many connect= settings as you like to connect ONLY
 # to specific peers:
 # Do not use Internet Relay Chat ( #bitcoin channel) to
 # find other peers.
 # Maximum number of inbound+outbound connections.
 # JSON-RPC options (for controlling a running Bitcoin/bitcoind process)
 # server=1 tells Bitcoin to accept JSON-RPC commands.
 # You must set rpcuser and rpcpassword to secure the JSON-RPC api
 # How many seconds bitcoin will wait for a complete RPC HTTP request.
 # after the HTTP connection is established. 
 # By default, only RPC connections from localhost are allowed.  Specify
 # as many rpcallowip= settings as you like to allow connections from
 # other hosts (and you may use * as a wildcard character):
 # Listen for RPC connections on this TCP port:
 # You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind
 # running on another host using this option:
 # Use Secure Sockets Layer (also known as TLS or HTTPS) to communicate
 # with Bitcoin -server or bitcoind
 # OpenSSL settings used when rpcssl=1
 # Miscellaneous options
 # Set gen=1 to attempt to generate bitcoins
 # Use SSE instructions to try to generate bitcoins faster.
 # Pre-generate this many public/private key pairs, so wallet backups will be valid for
 # both prior transactions and several dozen future transactions.
 # Pay an optional transaction fee every time you send bitcoins.  Transactions with fees
 # are more likely than free transactions to be included in generated blocks, so may
 # be validated sooner.
 # Allow direct connections for the 'pay via IP address' feature.
 # User interface options
 # Start Bitcoin minimized
 # Minimize to the system tray



Start automatically

To configure the Bitcoin client to start automatically:

Settings -> Options

then mark the checkbox titled:

[X] Start Bitcoin on window system startup

Client Settings Options.png

Generate on startup

To configure the Bitcoin client so that mining on startup is automatic: Configure bitcoin.conf as follows:




This article uses content from the old wiki. The list of contributors to the old page is available here.