原始可用的比特币程序有两个版本; 一个带有图形化用户界面(通常被称为“比特币”),和一个“无头”版本(被称为 bitcoind,这里的“无头”指的是没有图形化界面,只有命令行)。 它们完全互相兼容,并使用相同的命令行参数,读取相同的配置文件,且读写相同的数据文件。 你可以在你的系统上运行比特币或 bitcoind 的一个副本一次(如果你不小心启动来另一个,该副本将让你知道:比特币或 bitcoind 已经启动并该程序将要退出)。
比特币相关的解读目前均采用 bitcoin v0.12.1,此版本为官方内置挖矿算法的最后一版。
目前比特币的最新版本为 bitcoin v0.16.0,离区块链 1.0 落地还有些距离。
jc@jc-desktop:~$ bitcoind --help -help-debug # 获取以下详细帮助。
Bitcoin Core Daemon version v0.16.2
比特币核心守护进程版本 v0.16.2
Usage:
bitcoind [options] Start Bitcoin Core Daemon
#比特币核心 [选项] 启动比特币核心守护进程
Options:
-?
Print this help message and exit
#显示帮助信息并退出,使用 -h 或 -help 效果相同
-version
Print version and exit #打印版本信息并退出
-alertnotify=<cmd>
Execute command when a relevant alert is received or we see a really
long fork (%s in cmd is replaced by message)
-blocknotify=<cmd>
Execute command when the best block changes (%s in cmd is replaced by
block hash)
-blocksonly
Whether to operate in a blocks only mode (default: 0)
-assumevalid=<hex>
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:
0000000000000000005214481d2d96f898e3d5416e43359c145944a909d242e0,
testnet:
0000000002e9e7b00e1f6dc5123a04aad68dd0f0968d8c7aa45f6640795c37b1)
-conf=<file>
Specify configuration file (default: bitcoin.conf)
-daemon
Run in the background as a daemon and accept commands
-datadir=<dir>
Specify data directory
-dbbatchsize
Maximum database write batch size in bytes (default: 16777216)
-dbcache=<n>
Set database cache size in megabytes (4 to 16384, default: 450)
-feefilter
Tell other nodes to filter invs to us by our mempool min fee (default:
1)
-loadblock=<file>
Imports blocks from external blk000??.dat file on startup
-debuglogfile=<file>
Specify location of debug log file: this can be an absolute path or a
path relative to the data directory (default: debug.log)
-maxorphantx=<n>
Keep at most <n> unconnectable transactions in memory (default: 100)
-maxmempool=<n>
Keep the transaction memory pool below <n> megabytes (default: 300)
-mempoolexpiry=<n>
Do not keep transactions in the mempool longer than <n> hours (default:
336)
-minimumchainwork=<hex>
Minimum work assumed to exist on a valid chain in hex (default:
000000000000000000000000000000000000000000f91c579d57cad4bc5278cc,
testnet:
00000000000000000000000000000000000000000000002830dab7f76dbb7d63)
-persistmempool
Whether to save the mempool on shutdown and load on restart (default: 1)
-blockreconstructionextratxn=<n>
Extra transactions to keep in memory for compact block reconstructions
(default: 100)
-par=<n>
Set the number of script verification threads (-4 to 16, 0 = auto, <0 =
leave that many cores free, default: 0)
-pid=<file>
Specify pid file (default: bitcoind.pid)
-prune=<n>
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 and -rescan. 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)
-reindex-chainstate
Rebuild chain state from the currently indexed blocks
-reindex
Rebuild chain state and block index from the blk*.dat files on disk
-sysperms
Create new files with system default permissions, instead of umask 077
(only effective with disabled wallet functionality)
-txindex
Maintain a full transaction index, used by the getrawtransaction rpc
call (default: 0)
Connection options:
-addnode=<ip>
Add a node to connect to and attempt to keep the connection open (see
the `addnode` RPC command help for more info)
-banscore=<n>
Threshold for disconnecting misbehaving peers (default: 100)
-bantime=<n>
Number of seconds to keep misbehaving peers from reconnecting (default:
86400)
-bind=<addr>
Bind to given address and always listen on it. Use [host]:port notation
for IPv6
-connect=<ip>
Connect only to the specified node(s); -connect=0 disables automatic
connections (the rules for this peer are the same as for
-addnode)
-discover
Discover own IP addresses (default: 1 when listening and no -externalip
or -proxy)
-dns
Allow DNS lookups for -addnode, -seednode and -connect (default: 1)
-dnsseed
Query for peer addresses via DNS lookup, if low on addresses (default: 1
unless -connect used)
-externalip=<ip>
Specify your own public address
-forcednsseed
Always query for peer addresses via DNS lookup (default: 0)
-listen
Accept connections from outside (default: 1 if no -proxy or -connect)
-listenonion
Automatically create Tor hidden service (default: 1)
-maxconnections=<n>
Maintain at most <n> connections to peers (default: 125)
-maxreceivebuffer=<n>
Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000)
-maxsendbuffer=<n>
Maximum per-connection send buffer, <n>*1000 bytes (default: 1000)
-maxtimeadjustment
Maximum allowed median peer time offset adjustment. Local perspective of
time may be influenced by peers forward or backward by this
amount. (default: 4200 seconds)
-onion=<ip:port>
Use separate SOCKS5 proxy to reach peers via Tor hidden services
(default: -proxy)
-onlynet=<net>
Only connect to nodes in network <net> (ipv4, ipv6 or onion)
-permitbaremultisig
Relay non-P2SH multisig (default: 1)
-peerbloomfilters
Support filtering of blocks and transaction with bloom filters (default:
1)
-port=<port>
Listen for connections on <port> (default: 8333 or testnet: 18333)
-proxy=<ip:port>
Connect through SOCKS5 proxy
-proxyrandomize
Randomize credentials for every proxy connection. This enables Tor
stream isolation (default: 1)
-seednode=<ip>
Connect to a node to retrieve peer addresses, and disconnect
-timeout=<n>
Specify connection timeout in milliseconds (minimum: 1, default: 5000)
-torcontrol=<ip>:<port>
Tor control port to use if onion listening enabled (default:
127.0.0.1:9051)
-torpassword=<pass>
Tor control port password (default: empty)
-upnp
Use UPnP to map the listening port (default: 0)
-whitebind=<addr>
Bind to given address and whitelist peers connecting to it. Use
[host]:port notation for IPv6
-whitelist=<IP address or network>
Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or
CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple
times. Whitelisted peers cannot be DoS banned and their
transactions are always relayed, even if they are already in the
mempool, useful e.g. for a gateway
-maxuploadtarget=<n>
Tries to keep outbound traffic under the given target (in MiB per 24h),
0 = no limit (default: 0)
Wallet options:
-addresstype
What type of addresses to use ("legacy", "p2sh-segwit", or "bech32",
default: "p2sh-segwit")
-changetype
What type of change to use ("legacy", "p2sh-segwit", or "bech32").
Default is same as -addresstype, except when
-addresstype=p2sh-segwit a native segwit output is used when
sending to a native segwit address)
-disablewallet
Do not load the wallet and disable wallet RPC calls
-keypool=<n>
Set key pool size to <n> (default: 1000)
-fallbackfee=<amt>
A fee rate (in BTC/kB) that will be used when fee estimation has
insufficient data (default: 0.0002)
-discardfee=<amt>
The fee rate (in BTC/kB) 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
-mintxfee=<amt>
Fees (in BTC/kB) smaller than this are considered zero fee for
transaction creation (default: 0.00001)
-paytxfee=<amt>
Fee (in BTC/kB) to add to transactions you send (default: 0.00)
-rescan
Rescan the block chain for missing wallet transactions on startup
-salvagewallet
Attempt to recover private keys from a corrupt wallet on startup
-spendzeroconfchange
Spend unconfirmed change when sending transactions (default: 1)
-txconfirmtarget=<n>
If paytxfee is not set, include enough fee so transactions begin
confirmation on average within n blocks (default: 6)
-walletrbf
Send transactions with full-RBF opt-in enabled (RPC only, default: 0)
-upgradewallet
Upgrade wallet to latest format on startup
-wallet=<file>
Specify wallet file (within data directory) (default: wallet.dat)
-walletbroadcast
Make the wallet broadcast transactions (default: 1)
-walletdir=<dir>
Specify directory to hold wallets (default: <datadir>/wallets if it
exists, otherwise <datadir>)
-walletnotify=<cmd>
Execute command when a wallet transaction changes (%s in cmd is replaced
by TxID)
-zapwallettxes=<mode>
Delete all wallet transactions and only recover those parts of the
blockchain through -rescan on startup (1 = keep tx meta data e.g.
account owner and payment request information, 2 = drop tx meta
data)
Wallet debugging/testing options:
-dblogsize=<n>
Flush wallet database activity from memory to disk log every <n>
megabytes (default: 100)
-flushwallet
Run a thread to flush wallet periodically (default: 1)
-privdb
Sets the DB_PRIVATE flag in the wallet db environment (default: 1)
-walletrejectlongchains
Wallet will not create transactions that violate mempool chain limits
(default: 0)
ZeroMQ notification options:
-zmqpubhashblock=<address>
Enable publish hash block in <address>
-zmqpubhashtx=<address>
Enable publish hash transaction in <address>
-zmqpubrawblock=<address>
Enable publish raw block in <address>
-zmqpubrawtx=<address>
Enable publish raw transaction in <address>
Debugging/Testing options:
-uacomment=<cmt>
Append comment to the user agent string
-checkblocks=<n>
How many blocks to check at startup (default: 6, 0 = all)
-checklevel=<n>
How thorough the block verification of -checkblocks is (0-4, default: 3)
-checkblockindex
Do a full consistency check for mapBlockIndex, setBlockIndexCandidates,
chainActive and mapBlocksUnlinked occasionally. Also sets
-checkmempool (default: 0)
-checkmempool=<n>
Run checks every <n> transactions (default: 0)
-checkpoints
Disable expensive verification for known chain history (default: 1)
-disablesafemode
Disable safemode, override a real safe mode event (default: 1)
-deprecatedrpc=<method>
Allows deprecated RPC method(s) to be used
-testsafemode
Force safe mode (default: 0)
-dropmessagestest=<n>
Randomly drop 1 of every <n> network messages
-fuzzmessagestest=<n>
Randomly fuzz 1 of every <n> network messages
-stopafterblockimport
Stop running after importing blocks from disk (default: 0)
-stopatheight
Stop running after reaching the given height in the main chain (default:
0)
-limitancestorcount=<n>
Do not accept transactions if number of in-mempool ancestors is <n> or
more (default: 25)
-limitancestorsize=<n>
Do not accept transactions whose size with all in-mempool ancestors
exceeds <n> kilobytes (default: 101)
-limitdescendantcount=<n>
Do not accept transactions if any ancestor would have <n> or more
in-mempool descendants (default: 25)
-limitdescendantsize=<n>
Do not accept transactions if any ancestor would have more than <n>
kilobytes of in-mempool descendants (default: 101).
-vbparams=deployment:start:end
Use given start/end times for specified version bits deployment
(regtest-only)
-debug=<category>
Output debugging information (default: 0, supplying <category> is
optional). If <category> is not supplied or if <category> = 1,
output all debugging information. <category> can be: net, tor,
mempool, http, bench, zmq, db, rpc, estimatefee, addrman,
selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej,
libevent, coindb, qt, leveldb.
-debugexclude=<category>
Exclude debugging information for a category. Can be used in conjunction
with -debug=1 to output debug logs for all categories except one
or more specified categories.
-help-debug
Show all debugging options (usage: --help -help-debug)
-logips
Include IP addresses in debug output (default: 0)
-logtimestamps
Prepend debug output with timestamp (default: 1)
-logtimemicros
Add microsecond precision to debug timestamps (default: 0)
-mocktime=<n>
Replace actual time with <n> seconds since epoch (default: 0)
-maxsigcachesize=<n>
Limit sum of signature cache and script execution cache sizes to <n> MiB
(default: 32)
-maxtipage=<n>
Maximum tip age in seconds to consider node in initial block download
(default: 86400)
-maxtxfee=<amt>
Maximum total fees (in BTC) to use in a single wallet transaction or raw
transaction; setting this too low may abort large transactions
(default: 0.10)
-printtoconsole
Send trace/debug info to console instead of debug.log file
-printpriority
Log transaction fee per kB when mining blocks (default: 0)
-shrinkdebugfile
Shrink debug.log file on client startup (default: 1 when no -debug)
Chain selection options:
-testnet
Use the test chain
-regtest
Enter regression test mode, which uses a special chain in which blocks
can be solved instantly. This is intended for regression testing
tools and app development.
Node relay options:
-acceptnonstdtxn
Relay and mine "non-standard" transactions (testnet/regtest only;
default: 1)
-incrementalrelayfee=<amt>
Fee rate (in BTC/kB) used to define cost of relay, used for mempool
limiting and BIP 125 replacement. (default: 0.00001)
-dustrelayfee=<amt>
Fee rate (in BTC/kB) used to defined dust, the value of an output such
that it will cost more than its value in fees at this fee rate to
spend it. (default: 0.00003)
-bytespersigop
Equivalent bytes per sigop in transactions for relay and mining
(default: 20)
-datacarrier
Relay and mine data carrier transactions (default: 1)
-datacarriersize
Maximum size of data in data carrier transactions we relay and mine
(default: 83)
-mempoolreplacement
Enable transaction replacement in the memory pool (default: 1)
-minrelaytxfee=<amt>
Fees (in BTC/kB) smaller than this are considered zero fee for relaying,
mining and transaction creation (default: 0.00001)
-whitelistrelay
Accept relayed transactions received from whitelisted peers even when
not relaying transactions (default: 1)
-whitelistforcerelay
Force relay of transactions from whitelisted peers even if they violate
local relay policy (default: 1)
Block creation options:
-blockmaxweight=<n>
Set maximum BIP141 block weight (default: 3996000)
-blockmintxfee=<amt>
Set lowest fee rate (in BTC/kB) for transactions to be included in block
creation. (default: 0.00001)
-blockversion=<n>
Override block version to test forking scenarios
RPC server options:
-server
Accept command line and JSON-RPC commands
-rest
Accept public REST requests (default: 0)
-rpcbind=<addr>[:port]
Bind to given address to listen for JSON-RPC connections. 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, or if -rpcallowip has been specified,
0.0.0.0 and :: i.e., all addresses)
-rpccookiefile=<loc>
Location of the auth cookie (default: data dir)
-rpcuser=<user>
Username for JSON-RPC connections
-rpcpassword=<pw>
Password for JSON-RPC connections
-rpcauth=<userpw>
Username and hashed password for JSON-RPC connections. The field
<userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
canonical python script is included in share/rpcuser. The client
then connects normally using the
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
option can be specified multiple times
-rpcport=<port>
Listen for JSON-RPC connections on <port> (default: 8332 or testnet:
18332)
-rpcallowip=<ip>
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
-rpcserialversion
Sets the serialization of raw transaction or block hex returned in
non-verbose mode, non-segwit(0) or segwit(1) (default: 1)
-rpcthreads=<n>
Set the number of threads to service RPC calls (default: 4)
-rpcworkqueue=<n>
Set the depth of the work queue to service RPC calls (default: 16)
-rpcservertimeout=<n>
Timeout during HTTP requests (default: 30)
网友评论