Default bitcoin.conf
Jump to navigation
Jump to search
## ## bitcoin.conf configuration file. ## Generated by contrib/devtools/gen-bitcoin-conf.sh. ## ## Lines beginning with # are comments. ## All possible configuration options are provided. To use, copy this file ## to your data directory (default or specified by -datadir), uncomment ## options you would like to change, and save the file. ## ### Options # Execute command when an alert is raised (%s in cmd is replaced by # message) #alertnotify=<cmd> # If this block is in the chain assume that it and its ancestors are valid # and potentially skip their script verification (0 to verify all, # default: # 00000000000000000009c97098b5295f7e5f183ac811fb5d1534040adb93cabd, # testnet: # 0000000000000004877fa2d36316398528de4f347df2f8a96f76613a298ce060, # signet: # 000000d1a0e224fa4679d2fb2187ba55431c284fa1b74cbc8cfda866fd4d2c09) #assumevalid=<hex> # Maintain an index of compact filters by block (default: 0, values: # basic). If <type> is not supplied or if <type> = 1, indexes for # all known types are enabled. #blockfilterindex=<type> # Execute command when the best block changes (%s in cmd is replaced by # block hash) #blocknotify=<cmd> # Extra transactions to keep in memory for compact block reconstructions # (default: 100) #blockreconstructionextratxn=<n> # Specify directory to hold blocks subdirectory for *.dat files (default: # <datadir>) #blocksdir=<dir> # Whether to reject transactions from network peers. Automatic broadcast # and rebroadcast of any transactions from inbound peers is # disabled, unless the peer has the 'forcerelay' permission. RPC # transactions are not affected. (default: 0) #blocksonly=1 # Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0) #coinstatsindex=1 # Specify path to read-only configuration file. Relative paths will be # prefixed by datadir location (only useable from command line, not # configuration file) (default: bitcoin.conf) #conf=<file> # Run in the background as a daemon and accept commands (default: 0) #daemon=1 # Wait for initialization to be finished before exiting. This implies # -daemon (default: 0) #daemonwait=1 # Specify data directory #datadir=<dir> # Maximum database cache size <n> MiB (4 to 16384, default: 450). In # addition, unused mempool memory is shared for this cache (see # -maxmempool). #dbcache=<n> # Specify location of debug log file. Relative paths will be prefixed by a # net-specific datadir location. (-nodebuglogfile to disable; # default: debug.log) #debuglogfile=<file> # Specify additional configuration file, relative to the -datadir path # (only useable from configuration file, not command line) #includeconf=<file> # Imports blocks from external file on startup #loadblock=<file> # Keep the transaction memory pool below <n> megabytes (default: 300) #maxmempool=<n> # Keep at most <n> unconnectable transactions in memory (default: 100) #maxorphantx=<n> # Do not keep transactions in the mempool longer than <n> hours (default: # 336) #mempoolexpiry=<n> # Set the number of script verification threads (-10 to 15, 0 = auto, <0 = # leave that many cores free, default: 0) #par=<n> # Whether to save the mempool on shutdown and load on restart (default: 1) #persistmempool=1 # Specify pid file. Relative paths will be prefixed by a net-specific # datadir location. (default: bitcoind.pid) #pid=<file> # Reduce storage requirements by enabling pruning (deleting) of old # blocks. This allows the pruneblockchain RPC to be called to # delete specific blocks and enables automatic pruning of old # blocks if a target size in MiB is provided. This mode is # incompatible with -txindex. Warning: Reverting this setting # requires re-downloading the entire blockchain. (default: 0 = # disable pruning blocks, 1 = allow manual pruning via RPC, >=550 = # automatically prune block files to stay under the specified # target size in MiB) #prune=<n> # Rebuild chain state and block index from the blk*.dat files on disk. # This will also rebuild active optional indexes. #reindex=1 # Rebuild chain state from the currently indexed blocks. When in pruning # mode or if blocks on disk might be corrupted, use full -reindex # instead. Deactivate all optional indexes before running this. #reindex-chainstate=1 # Use the experimental syscall sandbox in the specified mode # (-sandbox=log-and-abort or -sandbox=abort). Allow only expected # syscalls to be used by bitcoind. Note that this is an # experimental new feature that may cause bitcoind to exit or crash # unexpectedly: use with caution. In the "log-and-abort" mode the # invocation of an unexpected syscall results in a debug handler # being invoked which will log the incident and terminate the # program (without executing the unexpected syscall). In the # "abort" mode the invocation of an unexpected syscall results in # the entire process being killed immediately by the kernel without # executing the unexpected syscall. #sandbox=<mode> # Specify path to dynamic settings data file. Can be disabled with # -nosettings. File is written at runtime and not meant to be # edited by users (use bitcoin.conf instead for custom settings). # Relative paths will be prefixed by datadir location. (default: # settings.json) #settings=<file> # Execute command on startup. #startupnotify=<cmd> # Create new files with system default permissions, instead of umask 077 # (only effective with disabled wallet functionality) #sysperms=1 # Maintain a full transaction index, used by the getrawtransaction rpc # call (default: 0) #txindex=1 # Print version and exit #version=1 ### Connection options # Add a node to connect to and attempt to keep the connection open (see # the addnode RPC help for more info). This option can be specified # multiple times to add multiple nodes; connections are limited to # 8 at a time and are counted separately from the -maxconnections # limit. #addnode=<ip> # Specify asn mapping used for bucketing of the peers (default: # ip_asn.map). Relative paths will be prefixed by the net-specific # datadir location. #asmap=<file> # Default duration (in seconds) of manually configured bans (default: # 86400) #bantime=<n> # Bind to given address and always listen on it (default: 0.0.0.0). Use # [host]:port notation for IPv6. Append =onion to tag any incoming # connections to that address and port as incoming Tor connections # (default: 127.0.0.1:8334=onion, testnet: 127.0.0.1:18334=onion, # signet: 127.0.0.1:38334=onion, regtest: 127.0.0.1:18445=onion) #bind=<addr>[:<port>][=onion] # If set, then this host is configured for CJDNS (connecting to fc00::/8 # addresses would lead us to the CJDNS network, see doc/cjdns.md) # (default: 0) #cjdnsreachable=1 # Connect only to the specified node; -noconnect disables automatic # connections (the rules for this peer are the same as for # -addnode). This option can be specified multiple times to connect # to multiple nodes. #connect=<ip> # Discover own IP addresses (default: 1 when listening and no -externalip # or -proxy) #discover=1 # Allow DNS lookups for -addnode, -seednode and -connect (default: 1) #dns=1 # Query for peer addresses via DNS lookup, if low on addresses (default: 1 # unless -connect used) #dnsseed=1 # Specify your own public address #externalip=<ip> # Allow fixed seeds if DNS seeds don't provide peers (default: 1) #fixedseeds=1 # Always query for peer addresses via DNS lookup (default: 0) #forcednsseed=1 # If set and -i2psam is also set then incoming I2P connections are # accepted via the SAM proxy. If this is not set but -i2psam is set # then only outgoing connections will be made to the I2P network. # Ignored if -i2psam is not set. Listening for incoming I2P # connections is done through the SAM proxy, not by binding to a # local address and port (default: 1) #i2pacceptincoming=1 # I2P SAM proxy to reach I2P peers and accept I2P connections (default: # none) #i2psam=<ip:port> # Accept connections from outside (default: 1 if no -proxy or -connect) #listen=1 # Automatically create Tor onion service (default: 1) #listenonion=1 # Maintain at most <n> connections to peers (default: 125). This limit # does not apply to connections manually added via -addnode or the # addnode RPC, which have a separate limit of 8. #maxconnections=<n> # Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000) #maxreceivebuffer=<n> # Maximum per-connection send buffer, <n>*1000 bytes (default: 1000) #maxsendbuffer=<n> # Maximum allowed median peer time offset adjustment. Local perspective of # time may be influenced by outbound peers forward or backward by # this amount (default: 4200 seconds). #maxtimeadjustment=1 # Tries to keep outbound traffic under the given target per 24h. Limit # does not apply to peers with 'download' permission or blocks # created within past week. 0 = no limit (default: 0M). Optional # suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 # base while uppercase is 1024 base #maxuploadtarget=<n> # Use NAT-PMP to map the listening port (default: 0) #natpmp=1 # Enable all P2P network activity (default: 1). Can be changed by the # setnetworkactive RPC command #networkactive=1 # Use separate SOCKS5 proxy to reach peers via Tor onion services, set # -noonion to disable (default: -proxy) #onion=<ip:port> # Make automatic outbound connections only to network <net> (ipv4, ipv6, # onion, i2p, cjdns). Inbound and manual connections are not # affected by this option. It can be specified multiple times to # allow multiple networks. #onlynet=<net> # Serve compact block filters to peers per BIP 157 (default: 0) #peerblockfilters=1 # Support filtering of blocks and transaction with bloom filters (default: # 0) #peerbloomfilters=1 # Listen for connections on <port>. Nodes not using the default ports # (default: 8333, testnet: 18333, signet: 38333, regtest: 18444) # are unlikely to get incoming connections. Not relevant for I2P # (see doc/i2p.md). #port=<port> # Connect through SOCKS5 proxy, set -noproxy to disable (default: # disabled) #proxy=<ip:port> # Randomize credentials for every proxy connection. This enables Tor # stream isolation (default: 1) #proxyrandomize=1 # Connect to a node to retrieve peer addresses, and disconnect. This # option can be specified multiple times to connect to multiple # nodes. #seednode=<ip> # Specify socket connection timeout in milliseconds. If an initial attempt # to connect is unsuccessful after this amount of time, drop it # (minimum: 1, default: 5000) #timeout=<n> # Tor control port to use if onion listening enabled (default: # 127.0.0.1:9051) #torcontrol=<ip>:<port> # Tor control port password (default: empty) #torpassword=<pass> # Use UPnP to map the listening port (default: 0) #upnp=1 # Bind to the given address and add permission flags to the peers # connecting to it. Use [host]:port notation for IPv6. Allowed # permissions: bloomfilter (allow requesting BIP37 filtered blocks # and transactions), noban (do not ban for misbehavior; implies # download), forcerelay (relay transactions that are already in the # mempool; implies relay), relay (relay even in -blocksonly mode, # and unlimited transaction announcements), mempool (allow # requesting BIP35 mempool contents), download (allow getheaders # during IBD, no disconnect after maxuploadtarget limit), addr # (responses to GETADDR avoid hitting the cache and contain random # records with the most up-to-date info). Specify multiple # permissions separated by commas (default: # download,noban,mempool,relay). Can be specified multiple times. #whitebind=<[permissions@]addr> # Add permission flags to the peers connecting from the given IP address # (e.g. 1.2.3.4) or CIDR-notated network (e.g. 1.2.3.0/24). Uses # the same permissions as -whitebind. Can be specified multiple # times. #whitelist=<[permissions@]IP address or network> ### Wallet options # What type of addresses to use ("legacy", "p2sh-segwit", "bech32", or # "bech32m", default: "bech32") #addresstype=1 # Group outputs by address, selecting many (possibly all) or none, instead # of selecting on a per-output basis. Privacy is improved as # addresses are mostly swept with fewer transactions and outputs # are aggregated in clean change addresses. It may result in higher # fees due to less optimal coin selection caused by this added # limitation and possibly a larger-than-necessary number of inputs # being used. Always enabled for wallets with "avoid_reuse" # enabled, otherwise default: 0. #avoidpartialspends=1 # What type of change to use ("legacy", "p2sh-segwit", "bech32", or # "bech32m"). Default is "legacy" when -addresstype=legacy, else it # is an implementation detail. #changetype=1 # The maximum feerate (in BTC/kvB) at which transaction building may use # more inputs than strictly necessary so that the wallet's UTXO # pool can be reduced (default: 0.0001). #consolidatefeerate=<amt> # Do not load the wallet and disable wallet RPC calls #disablewallet=1 # The fee rate (in BTC/kvB) that indicates your tolerance for discarding # change by adding it to the fee (default: 0.0001). Note: An output # is discarded if it is dust at this rate, but we will always # discard up to the dust relay fee and a discard fee above that is # limited by the fee estimate for the longest target #discardfee=<amt> # A fee rate (in BTC/kvB) that will be used when fee estimation has # insufficient data. 0 to entirely disable the fallbackfee feature. # (default: 0.00) #fallbackfee=<amt> # Set key pool size to <n> (default: 1000). Warning: Smaller sizes may # increase the risk of losing funds when restoring from an old # backup, if none of the addresses in the original keypool have # been used. #keypool=<n> # Spend up to this amount in additional (absolute) fees (in BTC) if it # allows the use of partial spend avoidance (default: 0.00) #maxapsfee=<n> # Fee rates (in BTC/kvB) smaller than this are considered zero fee for # transaction creation (default: 0.00001) #mintxfee=<amt> # Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00) #paytxfee=<amt> # External signing tool, see doc/external-signer.md #signer=<cmd> # Spend unconfirmed change when sending transactions (default: 1) #spendzeroconfchange=1 # If paytxfee is not set, include enough fee so transactions begin # confirmation on average within n blocks (default: 6) #txconfirmtarget=<n> # Specify wallet path to load at startup. Can be used multiple times to # load multiple wallets. Path is to a directory containing wallet # data and log files. If the path is not absolute, it is # interpreted relative to <walletdir>. This only loads existing # wallets and does not create new ones. For backwards compatibility # this also accepts names of existing top-level data files in # <walletdir>. #wallet=<path> # Make the wallet broadcast transactions (default: 1) #walletbroadcast=1 # Specify directory to hold wallets (default: <datadir>/wallets if it # exists, otherwise <datadir>) #walletdir=<dir> # Execute command when a wallet transaction changes. %s in cmd is replaced # by TxID, %w is replaced by wallet name, %b is replaced by the # hash of the block including the transaction (set to 'unconfirmed' # if the transaction is not included) and %h is replaced by the # block height (-1 if not included). %w is not currently # implemented on windows. On systems where %w is supported, it # should NOT be quoted because this would break shell escaping used # to invoke the command. #walletnotify=<cmd> # Send transactions with full-RBF opt-in enabled (RPC only, default: 1) #walletrbf=1 ### ZeroMQ notification options # Enable publish hash block in <address> #zmqpubhashblock=<address> # Set publish hash block outbound message high water mark (default: 1000) #zmqpubhashblockhwm=<n> # Enable publish hash transaction in <address> #zmqpubhashtx=<address> # Set publish hash transaction outbound message high water mark (default: # 1000) #zmqpubhashtxhwm=<n> # Enable publish raw block in <address> #zmqpubrawblock=<address> # Set publish raw block outbound message high water mark (default: 1000) #zmqpubrawblockhwm=<n> # Enable publish raw transaction in <address> #zmqpubrawtx=<address> # Set publish raw transaction outbound message high water mark (default: # 1000) #zmqpubrawtxhwm=<n> # Enable publish hash block and tx sequence in <address> #zmqpubsequence=<address> # Set publish hash sequence message high water mark (default: 1000) #zmqpubsequencehwm=<n> ### Debugging/Testing options # Output debug and trace logging (default: -nodebug, supplying <category> # is optional). If <category> is not supplied or if <category> = 1, # output all debug and trace logging. <category> can be: addrman, # bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p, # ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune, # qt, rand, reindex, rpc, selectcoins, tor, util, validation, # walletdb, zmq. This option can be specified multiple times to # output multiple categories. #debug=<category> # Exclude debug and trace logging for a category. Can be used in # conjunction with -debug=1 to output debug and trace logging for # all categories except the specified category. This option can be # specified multiple times to exclude multiple categories. #debugexclude=<category> # Print help message with debugging options and exit #help-debug=1 # Include IP addresses in debug output (default: 0) #logips=1 # Prepend debug output with name of the originating source location # (source file, line number and function name) (default: 0) #logsourcelocations=1 # Prepend debug output with name of the originating thread (only available # on platforms supporting thread_local) (default: 0) #logthreadnames=1 # Prepend debug output with timestamp (default: 1) #logtimestamps=1 # Maximum total fees (in BTC) to use in a single wallet transaction; # setting this too low may abort large transactions (default: 0.10) #maxtxfee=<amt> # Send trace/debug info to console (default: 1 when no -daemon. To disable # logging to file, set -nodebuglogfile) #printtoconsole=1 # Shrink debug.log file on client startup (default: 1 when no -debug) #shrinkdebugfile=1 # Append comment to the user agent string #uacomment=<cmt> ### Chain selection options # Use the chain <chain> (default: main). Allowed values: main, test, # signet, regtest #chain=<chain> # Use the signet chain. Equivalent to -chain=signet. Note that the network # is defined by the -signetchallenge parameter #signet=1 # Blocks must satisfy the given script to be considered valid (only for # signet networks; defaults to the global default signet test # network challenge) #signetchallenge=1 # Specify a seed node for the signet network, in the hostname[:port] # format, e.g. sig.net:1234 (may be used multiple times to specify # multiple seed nodes; defaults to the global default signet test # network seed node(s)) #signetseednode=1 # Use the test chain. Equivalent to -chain=test. #testnet=1 ### Node relay options # Equivalent bytes per sigop in transactions for relay and mining # (default: 20) #bytespersigop=1 # Relay and mine data carrier transactions (default: 1) #datacarrier=1 # Maximum size of data in data carrier transactions we relay and mine # (default: 83) #datacarriersize=1 # Accept transaction replace-by-fee without requiring replaceability # signaling (default: 0) #mempoolfullrbf=1 # Fees (in BTC/kvB) smaller than this are considered zero fee for # relaying, mining and transaction creation (default: 0.00001) #minrelaytxfee=<amt> # Relay non-P2SH multisig (default: 1) #permitbaremultisig=1 # Add 'forcerelay' permission to whitelisted inbound peers with default # permissions. This will relay transactions even if the # transactions were already in the mempool. (default: 0) #whitelistforcerelay=1 # Add 'relay' permission to whitelisted inbound peers with default # permissions. This will accept relayed transactions even when not # relaying transactions (default: 1) #whitelistrelay=1 ### Block creation options # Set maximum BIP141 block weight (default: 3996000) #blockmaxweight=<n> # Set lowest fee rate (in BTC/kvB) for transactions to be included in # block creation. (default: 0.00001) #blockmintxfee=<amt> ### RPC server options # Accept public REST requests (default: 0) #rest=1 # Allow JSON-RPC connections from specified source. Valid for <ip> are a # single IP (e.g. 1.2.3.4), a network/netmask (e.g. # 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This # option can be specified multiple times #rpcallowip=<ip> # Username and HMAC-SHA-256 hashed password for JSON-RPC connections. The # field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A # canonical python script is included in share/rpcauth. The client # then connects normally using the # rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This # option can be specified multiple times #rpcauth=<userpw> # Bind to given address to listen for JSON-RPC connections. Do not expose # the RPC server to untrusted networks such as the public internet! # This option is ignored unless -rpcallowip is also passed. Port is # optional and overrides -rpcport. Use [host]:port notation for # IPv6. This option can be specified multiple times (default: # 127.0.0.1 and ::1 i.e., localhost) #rpcbind=<addr>[:port] # Location of the auth cookie. Relative paths will be prefixed by a # net-specific datadir location. (default: data dir) #rpccookiefile=<loc> # Password for JSON-RPC connections #rpcpassword=<pw> # Listen for JSON-RPC connections on <port> (default: 8332, testnet: # 18332, signet: 38332, regtest: 18443) #rpcport=<port> # Sets the serialization of raw transaction or block hex returned in # non-verbose mode, non-segwit(0) or segwit(1) (default: 1) #rpcserialversion=1 # Set the number of threads to service RPC calls (default: 4) #rpcthreads=<n> # Username for JSON-RPC connections #rpcuser=<user> # Set a whitelist to filter incoming RPC calls for a specific user. The # field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc # 2>,...,<rpc n>. If multiple whitelists are set for a given user, # they are set-intersected. See -rpcwhitelistdefault documentation # for information on default whitelist behavior. #rpcwhitelist=<whitelist> # Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault # is set to 0, if any -rpcwhitelist is set, the rpc server acts as # if all rpc users are subject to empty-unless-otherwise-specified # whitelists. If rpcwhitelistdefault is set to 1 and no # -rpcwhitelist is set, rpc server acts as if all rpc users are # subject to empty whitelists. #rpcwhitelistdefault=1 # Accept command line and JSON-RPC commands #server=1 # [Sections] # Most options will apply to all networks. To confine an option to a specific # network, add it under the relevant section below. # # Note: If not specified under a network section, the options addnode, connect, # port, bind, rpcport, rpcbind, and wallet will only apply to mainnet. # Options for mainnet [main] # Options for testnet [test] # Options for signet [signet] # Options for regtest [regtest]
bitcoind, .bitcoin/, bitcoin.conf, Dockerfile, Bitcoind ports( 8332 18332 18443 8333 18333 18444 ), -chain, -datadir, -server, --help
, Bitcoind logs, Bitcoind changelog
Bitcoin Core: bitcoind, bitcoin-cli, bitcoin.conf
Bitcoind ports
Advertising: