Running Bitcoin: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Sgornick (talk | contribs)
→‎Command-line arguments: Move -nolisten, -noupnp, -nodnsseed, -noirc and -daemon to Additional as they are deprecated.
Sgornick (talk | contribs)
→‎Command-line arguments: Add command line options that had not yet been in this list.
Line 12: Line 12:
   bitcoind [options] help <command>      Get help for a command
   bitcoind [options] help <command>      Get help for a command
Options:
Options:
   -conf=<file>       Specify configuration file (default: bitcoin.conf)
   -conf=<file>           Specify configuration file (default: bitcoin.conf)
   -pid=<file>       Specify pid file (default: bitcoind.pid)
   -pid=<file>           Specify pid file (default: bitcoind.pid)
   -gen               Generate coins
   -gen                   Generate coins
   -gen=0             Don't generate coins
   -gen=0                 Don't generate coins
   -datadir=<dir>     Specify data directory
   -datadir=<dir>         Specify data directory
   -timeout=<n>       Specify connection timeout (in milliseconds)
  -dbcache=<n>          Set database cache size in megabytes (default: 25)
   -proxy=<ip:port>   Connect through socks4 proxy
  -dblogsize=<n>        Set database disk log size in megabytes (default: 100)
   -dns               Allow DNS lookups for addnode and connect
   -timeout=<n>           Specify connection timeout in milliseconds (default: 5000)
   -port=<port>       Listen for connections on <port> (default: 8333 or testnet: 18333)
   -proxy=<ip:port>       Connect through socks proxy
   -maxconnections=<n> Maintain at most <n> connections to peers (default: 125)
  -socks=<n>            Select the version of socks proxy to use (4-5, default: 5)
   -addnode=<ip>     Add a node to connect to
  -tor=<ip:port>        Use proxy to reach tor hidden services (default: same as -proxy)
   -connect=<ip>     Connect only to the specified node at <ip> or <ip:port> (default port: 8333).
   -dns                   Allow DNS lookups for -addnode, -seednode and -connect
   -banscore=<n>     Threshold for disconnecting misbehaving peers (default: 100)
   -port=<port>           Listen for connections on <port> (default: 8333 or testnet: 18333)
   -bantime=<n>       Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
   -maxconnections=<n>   Maintain at most <n> connections to peers (default: 125)
   -maxreceivebuffer=<n>  Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000)
   -addnode=<ip>         Add a node to connect to and attempt to keep the connection open
   -maxsendbuffer=<n> Maximum per-connection send buffer, <n>*1000 bytes (default: 10000)
   -connect=<ip>         Connect only to the specified node(s)
   -paytxfee=<amt>   Fee per KB to add to transactions you send
  -seednode=<ip>        Connect to a node to retrieve peer addresses, and disconnect
   -testnet           Use the test network
  -externalip=<ip>       Specify your own public address
   -debug             Output extra debugging information
  -onlynet=<net>        Only connect to nodes in network <net> (IPv4, IPv6 or Tor)
   -logtimestamps     Prepend debug output with timestamp
  -discover              Discover own IP address (default: 1 when listening and no -externalip)
   -printtoconsole   Send trace/debug info to console instead of debug.log file
  -irc                  Find peers using internet relay chat (default: 0)
   -rpcuser=<user>   Username for JSON-RPC connections
  -listen                Accept connections from outside (default: 1 if no -proxy or -connect)
   -rpcpassword=<pw> Password for JSON-RPC connections
  -bind=<addr>          Bind to given address. Use [host]:port notation for IPv6
   -rpcport=<port>   Listen for JSON-RPC connections on <port> (default: 8332)
  -dnsseed              Find peers using DNS lookup (default: 1 unless -connect)
   -rpcallowip=<ip>   Allow JSON-RPC connections from specified IP address
   -banscore=<n>         Threshold for disconnecting misbehaving peers (default: 100)
   -rpcconnect=<ip>   Send commands to node running on <ip> (default: 127.0.0.1)
   -bantime=<n>           Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
   -keypool=<n>       Set key pool size to <n> (default: 100)
   -maxreceivebuffer=<n>  Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000)
   -rescan           Rescan the block chain for missing wallet transactions
   -maxsendbuffer=<n>     Maximum per-connection send buffer, <n>*1000 bytes (default: 1000)
  -upnp                  Use UPnP to map the listening port (default: 1 when listening)
  -detachdb              Detach block and address databases. Increases shutdown time (default: 0)
   -paytxfee=<amt>       Fee per KB to add to transactions you send
  -server                Accept command line and JSON-RPC commands
   -testnet               Use the test network
   -debug                 Output extra debugging information. Implies all other -debug* options
  -debugnet              Output extra network debugging information
   -logtimestamps         Prepend debug output with timestamp
  -shrinkdebugfile      Shrink debug.log file on client startup (default: 1 when no -debug)
   -printtoconsole       Send trace/debug info to console instead of debug.log file
   -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: 127.0.0.1)
  -blocknotify=<cmd>    Execute command when the best block changes (%s in cmd is replaced by block hash)
  -upgradewallet        Upgrade wallet to latest format
   -keypool=<n>           Set key pool size to <n> (default: 100)
   -rescan               Rescan the block chain for missing wallet transactions
  -checkblocks=<n>      How many blocks to check at startup (default: 2500, 0 = all)
  -checklevel=<n>        How thorough the block verification is (0-6, default: 1)
  -loadblock=<file>      Imports blocks from external blk000?.dat file
 
Block creation options:
  -blockminsize=<n>      Set minimum block size in bytes (default: 0)
  -blockmaxsize=<n>      Set maximum block size in bytes (default: 250000)
  -blockprioritysize=<n> Set maximum size of high-priority/low-fee transactions in bytes (default: 27000)


SSL options: (see the Bitcoin Wiki for SSL setup instructions)
SSL options: (see the Bitcoin Wiki for SSL setup instructions)

Revision as of 03:49, 31 October 2012

There are two variations of the original 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:

Usage:

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

Options:

 -conf=<file>           Specify configuration file (default: bitcoin.conf)
 -pid=<file>            Specify pid file (default: bitcoind.pid)
 -gen                   Generate coins
 -gen=0                 Don't generate coins
 -datadir=<dir>         Specify data directory
 -dbcache=<n>           Set database cache size in megabytes (default: 25)
 -dblogsize=<n>         Set database disk log size in megabytes (default: 100)
 -timeout=<n>           Specify connection timeout in milliseconds (default: 5000)
 -proxy=<ip:port>       Connect through socks proxy
 -socks=<n>             Select the version of socks proxy to use (4-5, default: 5)
 -tor=<ip:port>         Use proxy to reach tor hidden services (default: same as -proxy)
 -dns                   Allow DNS lookups for -addnode, -seednode and -connect
 -port=<port>           Listen for connections on <port> (default: 8333 or testnet: 18333)
 -maxconnections=<n>    Maintain at most <n> connections to peers (default: 125)
 -addnode=<ip>          Add a node to connect to and attempt to keep the connection open
 -connect=<ip>          Connect only to the specified node(s)
 -seednode=<ip>         Connect to a node to retrieve peer addresses, and disconnect
 -externalip=<ip>       Specify your own public address
 -onlynet=<net>         Only connect to nodes in network <net> (IPv4, IPv6 or Tor)
 -discover              Discover own IP address (default: 1 when listening and no -externalip)
 -irc                   Find peers using internet relay chat (default: 0)
 -listen                Accept connections from outside (default: 1 if no -proxy or -connect)
 -bind=<addr>           Bind to given address. Use [host]:port notation for IPv6
 -dnsseed               Find peers using DNS lookup (default: 1 unless -connect)
 -banscore=<n>          Threshold for disconnecting misbehaving peers (default: 100)
 -bantime=<n>           Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
 -maxreceivebuffer=<n>  Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000)
 -maxsendbuffer=<n>     Maximum per-connection send buffer, <n>*1000 bytes (default: 1000)
 -upnp                  Use UPnP to map the listening port (default: 1 when listening)
 -detachdb              Detach block and address databases. Increases shutdown time (default: 0)
 -paytxfee=<amt>        Fee per KB to add to transactions you send
 -server                Accept command line and JSON-RPC commands
 -testnet               Use the test network
 -debug                 Output extra debugging information. Implies all other -debug* options
 -debugnet              Output extra network debugging information
 -logtimestamps         Prepend debug output with timestamp
 -shrinkdebugfile       Shrink debug.log file on client startup (default: 1 when no -debug)
 -printtoconsole        Send trace/debug info to console instead of debug.log file
 -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: 127.0.0.1)
 -blocknotify=<cmd>     Execute command when the best block changes (%s in cmd is replaced by block hash)
 -upgradewallet         Upgrade wallet to latest format
 -keypool=<n>           Set key pool size to <n> (default: 100)
 -rescan                Rescan the block chain for missing wallet transactions
 -checkblocks=<n>       How many blocks to check at startup (default: 2500, 0 = all)
 -checklevel=<n>        How thorough the block verification is (0-6, default: 1)
 -loadblock=<file>      Imports blocks from external blk000?.dat file

Block creation options:

 -blockminsize=<n>      Set minimum block size in bytes (default: 0)
 -blockmaxsize=<n>      Set maximum block size in bytes (default: 250000)
 -blockprioritysize=<n> Set maximum size of high-priority/low-fee transactions in bytes (default: 27000)

SSL options: (see the Bitcoin Wiki for SSL setup instructions)

 -rpcssl                                  Use OpenSSL (https) for JSON-RPC connections
 -rpcsslcertificatechainfile=<file.cert>  Server certificate file (default: server.cert)
 -rpcsslprivatekeyfile=<file.pem>         Server private key (default: server.pem)
 -rpcsslciphers=<ciphers>                 Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)

Additional (Supported but not listed in -? help):

 -min               Start minimized
 -checkblocks       Rescan the whole blockchain (can take very much time)
 -nolisten          Don't accept connections from outside [Deprecated]
 -noupnp            Don't attempt to use UPnP to map the listening port [Deprecated]
 -nodnsseed         Don't bootstrap list of peers using DNS [Deprecated]
 -noirc             [Deprecated]
 -daemon            Run in the background as a daemon and accept commands [Deprecated]

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\ (XP) C:\Documents and Settings\username\Application Data\Bitcoin\bitcoin.conf

(Vista, 7) C:\Users\username\AppData\Roaming\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

Note: if running Bitcoin in testnet mode, the sub-folder "testnet" will be appended to the data directory automatically.

Sample Bitcoin.conf

Here is a sample bitcoin.conf file.

 # bitcoin.conf configuration file. Lines beginning with # are comments.
 
 
 # Network-related settings:
 
 # Run on the test network instead of the real bitcoin network.
 #testnet=0
 
 # Connect via a socks4 proxy
 #proxy=127.0.0.1:9050
 
 ##############################################################
 ##            Quick Primer on addnode vs connect            ##
 ##  Let's say for instance you use addnode=4.2.2.4          ##
 ##  addnode will connect you to and tell you about the      ##
 ##    nodes connected to 4.2.2.4.  In addition it will tell ##
 ##    the other nodes connected to it that you exist so     ##
 ##    they can connect to you.                              ##
 ##  connect will not do the above when you 'connect' to it. ##
 ##    It will *only* connect you to 4.2.2.4 and no one else.##
 ##                                                          ##
 ##  So if you're behind a firewall, or have other problems  ##
 ##  finding nodes, add some using 'addnode'.                ##
 ##                                                          ##
 ##  If you want to stay private, use 'connect' to only      ##
 ##  connect to "trusted" nodes.                             ##
 ##                                                          ##
 ##  If you run multiple nodes on a LAN, there's no need for ##
 ##  all of them to open lots of connections.  Instead       ##
 ##  'connect' them all to one node that is port forwarded   ##
 ##  and has lots of connections.                            ##
 ##       Thanks goes to [Noodle] on Freenode.               ##
 ##############################################################
 
 # Use as many addnode= settings as you like to connect to specific peers
 #addnode=69.164.218.197
 #addnode=10.0.0.2:8333
 
 # ... or use as many connect= settings as you like to connect ONLY
 # to specific peers:
 #connect=69.164.218.197
 #connect=10.0.0.1:8333
 
 # Do not use Internet Relay Chat (irc.lfnet.org #bitcoin channel) to
 # find other peers.
 #noirc=0
 
 # Maximum number of inbound+outbound connections.
 #maxconnections=
 
 
 # JSON-RPC options (for controlling a running Bitcoin/bitcoind process)
 
 # server=1 tells Bitcoin-QT to accept JSON-RPC commands.
 #server=0
 
 # You must set rpcuser and rpcpassword to secure the JSON-RPC api
 #rpcuser=Ulysseys
 #rpcpassword=YourSuperGreatPasswordNumber_DO_NOT_USE_THIS_OR_YOU_WILL_GET_ROBBED_385593
 
 # How many seconds bitcoin will wait for a complete RPC HTTP request.
 # after the HTTP connection is established. 
 #rpctimeout=30
 
 # 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):
 #rpcallowip=10.1.1.34
 #rpcallowip=192.168.1.*
 
 # Listen for RPC connections on this TCP port:
 #rpcport=8332
 
 # You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind
 # running on another host using this option:
 #rpcconnect=127.0.0.1
 
 # Use Secure Sockets Layer (also known as TLS or HTTPS) to communicate
 # with Bitcoin -server or bitcoind
 #rpcssl=1
 
 # OpenSSL settings used when rpcssl=1
 #rpcsslciphers=TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH
 #rpcsslcertificatechainfile=server.cert
 #rpcsslprivatekeyfile=server.pem
 
 
 # Miscellaneous options
 
 # Set gen=1 to attempt to generate bitcoins
 #gen=0
 
 # Use SSE instructions to try to generate bitcoins faster.
 #4way=1
 
 # Pre-generate this many public/private key pairs, so wallet backups will be valid for
 # both prior transactions and several dozen future transactions.
 #keypool=100
 
 # 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.
 #paytxfee=0.00
 
 # Allow direct connections for the 'pay via IP address' feature.
 #allowreceivebyip=1
   
 # User interface options
 
 # Start Bitcoin minimized
 #min=1
 
 # Minimize to the system tray
 #minimizetotray=1

Platforms

Windows

Start automatically

To configure the Bitcoin client to start automatically:

You might use the configuration-file, or the GUI-Settings:

Settings -> Options

then mark the checkbox titled:

[X] Start Bitcoin on system startup

Batch automation

To work with batch, you have to start the daemon (bitcoind.exe). The bitcoin.exe run with option "-server" will respond with GUI-messages you are not able to process its answers.

Mac

Linux