美文网首页
比特币源码分析系列1---命令与使用

比特币源码分析系列1---命令与使用

作者: JC86 | 来源:发表于2019-07-16 14:41 被阅读0次

    原始可用的比特币程序有两个版本; 一个带有图形化用户界面(通常被称为“比特币”),和一个“无头”版本(被称为 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)
    

    参考来源:https://mistydew.github.io/2018/05/04/running-bitcoin

    相关文章

      网友评论

          本文标题:比特币源码分析系列1---命令与使用

          本文链接:https://www.haomeiwen.com/subject/jdcdiftx.html