Running Bitcoin: Difference between revisions
→Command-line arguments: Move -nolisten, -noupnp, -nodnsseed, -noirc and -daemon to Additional as they are deprecated. |
→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> | -conf=<file> Specify configuration file (default: bitcoin.conf) | ||
-pid=<file> | -pid=<file> Specify pid file (default: bitcoind.pid) | ||
-gen | -gen Generate coins | ||
-gen=0 | -gen=0 Don't generate coins | ||
-datadir=<dir> | -datadir=<dir> Specify data directory | ||
-timeout=<n> | -dbcache=<n> Set database cache size in megabytes (default: 25) | ||
-proxy=<ip:port> | -dblogsize=<n> Set database disk log size in megabytes (default: 100) | ||
-dns | -timeout=<n> Specify connection timeout in milliseconds (default: 5000) | ||
-port=<port> | -proxy=<ip:port> Connect through socks proxy | ||
-maxconnections=<n> | -socks=<n> Select the version of socks proxy to use (4-5, default: 5) | ||
-addnode=<ip> | -tor=<ip:port> Use proxy to reach tor hidden services (default: same as -proxy) | ||
-connect=<ip> | -dns Allow DNS lookups for -addnode, -seednode and -connect | ||
-banscore=<n> | -port=<port> Listen for connections on <port> (default: 8333 or testnet: 18333) | ||
-bantime=<n> | -maxconnections=<n> Maintain at most <n> connections to peers (default: 125) | ||
-maxreceivebuffer=<n> Maximum per-connection receive buffer, <n>*1000 bytes (default: | -addnode=<ip> Add a node to connect to and attempt to keep the connection open | ||
-maxsendbuffer=<n> | -connect=<ip> Connect only to the specified node(s) | ||
-paytxfee=<amt> | -seednode=<ip> Connect to a node to retrieve peer addresses, and disconnect | ||
-testnet | -externalip=<ip> Specify your own public address | ||
-debug | -onlynet=<net> Only connect to nodes in network <net> (IPv4, IPv6 or Tor) | ||
-logtimestamps | -discover Discover own IP address (default: 1 when listening and no -externalip) | ||
-printtoconsole | -irc Find peers using internet relay chat (default: 0) | ||
-rpcuser=<user> | -listen Accept connections from outside (default: 1 if no -proxy or -connect) | ||
-rpcpassword=<pw> | -bind=<addr> Bind to given address. Use [host]:port notation for IPv6 | ||
-rpcport=<port> | -dnsseed Find peers using DNS lookup (default: 1 unless -connect) | ||
-rpcallowip=<ip> | -banscore=<n> Threshold for disconnecting misbehaving peers (default: 100) | ||
-rpcconnect=<ip> | -bantime=<n> Number of seconds to keep misbehaving peers from reconnecting (default: 86400) | ||
-keypool=<n> | -maxreceivebuffer=<n> Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000) | ||
-rescan | -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.