ETH测试网全节点和BTC测试网全节点(搭建)
ETH测试链
前置条件
Geth下载: https://geth.ethereum.org/downloads
在上面网站中找到符合对应服务器的geth
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.14.7-aa55f5ea.tar.gz
测试链(sepolia)
现在开发测试环境用的是sepolia链,所以同步的时候选择sepolia
最低配置(Minimum):
- CPU with 2+ cores
- 4GB RAM
- 1TB free storage space to sync the Mainnet
- 8 MBit/sec download Internet service
建议配置(Recommended):
- Fast CPU with 4+ cores
- 16GB+ RAM
- High-performance SSD with at least 1TB of free space
- 25+ MBit/sec download Internet service
启动节点
mkdir -p ~/eth/full-node/ ~/eth/prysm/consensus ~/eth/prysm/execution ~/eth/data cd ~/eth/prysm/consensus // install Prysm curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh //这里会生成 jwt.hex 文件 ./prysm.sh beacon-chain generate-auth-secret mv jwt.hex ../jwt.hex cd ~/eth/full-node/ //checksum(md5) 4b989aebe144f6e12cc7a4e9c9c487df wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.14.7-aa55f5ea.tar.gz tar -zxvf geth-linux-amd64-1.14.7-aa55f5ea.tar.gz cd geth-linux-amd64-1.14.7-aa55f5ea //启动执行客户端 建议使用nohup 或者 开一个screen 来运行节点 ./geth --sepolia --syncmode snap --datadir ~/eth/data --http --http.port "26685" --http.addr "0.0.0.0" --http.api "db,eth,net,web3,personal" --authrpc.jwtsecret=~/eth/prysm/jwt.hex --cache "1024" //启动共识客户端 cd ~/eth/prysm/consensus ./prysm.sh beacon-chain --execution-endpoint=http://localhost:8551 --sepolia --jwt-secret=~/eth/prysm/jwt.hex --checkpoint-sync-url=https://sepolia.beaconstate.info --genesis-beacon-api-url=https://sepolia.beaconstate.info
BTC测试链
说明
启动节点是通过加载 bitcoin.conf文件的方式来启动,bitcoin.conf默认的加载路径是
$HOME/.bitcoin/bitcoin.conf
测试链(testnet)
服务器配置
最低配置(Minimum):
- CPU with 2+ cores
- 4GB RAM
- 500GB free storage space
建议配置(Recommended):
- CPU with 4+ cores
- 8GB+ RAM
- 500GB free storage space
bitcoin.conf 配置文件
testnet=1 # Options for testnet [test] discover=0 //todo 这里的 rpcuser和 rpcpassword需要修改 rpcuser=user rpcpassword=password rpcport=8332 rpcallowip=0.0.0.0/0 txindex=1 server=1 whitelistforcerelay=1 whitelist=0.0.0.0/0 daemon=1
datadir=/home/app/btc/data
启动节点
mkdir -p ~/btc/full-node ~/btc/data cd ~/btc/full-node //具体可根据服务器从 https://bitcoincore.org/bin/bitcoin-core-27.1 中选择 wget https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-linux-gnu.tar.gz tar -zxvf bitcoin-27.1-x86_64-linux-gnu.tar.gz cd bitcoin-27.1-x86_64-linux-gnu/bin // bitcoin.conf 如果是在$HOME/.bitcoin/bitcoin.conf,那么启动命令的 --conf 可以不加, -daemon 表示以守护线程的方式启动节点 ./bitcoind --conf=/home/app/bitcoin.conf -daemon
Bitcoin.conf解释说明
## ## 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> # For backwards compatibility, treat an unused bitcoin.conf file in the # datadir as a warning, not an error. #allowignoredconf=1 # 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: # 00000000000000000001a0a448d6cf2546b06801389cc030b2b18c6491266815, # testnet: # 0000000000000093bcb68c03a9a168ae252572d348a2eaeba2cdf9231d73206f, # signet: # 0000013d778ba3f914530f11f6b69869c9fab54acff85acd7b8201d111f19b7f) #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 (default: debug.log). Relative paths # will be prefixed by a net-specific datadir location. Pass # -nodebuglogfile to disable writing the log to a file. #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 (0 = auto, up to 15, <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> # If enabled, wipe chain state and block index, and rebuild them from # blk*.dat files on disk. Also wipe and rebuild other optional # indexes that are active. If an assumeutxo snapshot was loaded, # its chainstate will be wiped as well. The snapshot can then be # reloaded via RPC. #reindex=1 # If enabled, wipe chain state, and rebuild it from blk*.dat files on # disk. If an assumeutxo snapshot was loaded, its chainstate will # be wiped as well. The snapshot can then be reloaded via RPC. #reindex-chainstate=1 # 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 immediately before beginning shutdown. The need for # shutdown may be urgent, so be careful not to delay it long (if # the command doesn't require interaction with the server, consider # having it fork into the background). #shutdownnotify=<cmd> # Execute command on startup. #startupnotify=<cmd> # 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 or -maxconnections=0) #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 # Whether to accept inbound I2P connections (default: 1). Ignored if # -i2psam is not set. Listening for inbound I2P connections is done # through the SAM proxy, not by binding to a local address and # port. #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, -connect or # -maxconnections=0) #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 memory usage for the 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 host and port to use if onion listening enabled (default: # 127.0.0.1:9051). If no port is specified, the default port of # 9051 will be used. #torcontrol=<ip>:<port> # Tor control port password (default: empty) #torpassword=<pass> # Use UPnP to map the listening port (default: 1 when listening and no # -proxy) #upnp=1 # Support v2 transport (default: 0) #v2transport=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, scan, selectcoins, tor, txpackages, # txreconciliation, 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 # Relay and mine transactions whose data-carrying raw scriptPubKey is of # this size or less (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 values 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), a network/CIDR (e.g. 1.2.3.4/24), all # ipv4 (0.0.0.0/0), or all ipv6 (::/0). 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) (DEPRECATED) 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]
比特币核心守护程序版本v0.17.1
用法:bitcoind [options]启动比特币核心守护进程
选项:
- ?
打印此帮助信息并退出
-alertnotify = <CMD>
收到相关警报或我们真的看到时执行命令
long fork(cmd中的%s被消息替换)
-assumevalid = <六角>
如果该块在链中,则认为它及其祖先是有效的
并可能跳过他们的脚本验证(0来验证所有,
默认:
0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8,
testnet:
0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75)
-blocknotify = <CMD>
最佳块更改时执行命令(cmd中的%s替换为
块哈希)
-blockreconstructionextratxn = <N>
为紧凑块重建保留在内存中的额外事务
(默认值:100)
-blocksdir = <DIR>
指定块目录(默认值:<datadir> / blocks)
-conf = <文件>
指定配置文件。相对路径将以datadir为前缀
地点。 (默认:bitcoin.conf)
-datadir = <DIR>
指定数据目录
-dbcache = <N>
设置数据库缓存大小(以兆字节为单位)(4到16384,默认值:450)
-debuglogfile = <文件>
指定调试日志文件的位置。相对路径将以a为前缀
特定于网络的数据库位置。 (-nodebuglogfile禁用;
默认值:debug.log)
-includeconf = <文件>
指定相对于-datadir路径的其他配置文件
(仅可从配置文件使用,不能使用命令行)
-loadblock = <文件>
在启动时从外部blk000 ??。dat文件导入块
-maxmempool = <N>
将事务内存池保持在<n>兆字节以下(默认值:300)
-maxorphantx = <N>
在内存中保留最多<n>个不可连接的事务(默认值:100)
-mempoolexpiry = <N>
不要在mempool中保留超过<n>小时的事务(默认值:
336)
-par = <N>
设置脚本验证线程数(-4到16,0 = auto,<0 =
保留许多核心免费,默认:0)
-persistmempool
是否在关机时保存mempool并在重启时加载(默认值:1)
-prune = <N>
通过启用旧的修剪(删除)来降低存储要求
块。这允许调用pruneblockchain RPC
删除特定块,并启用旧的自动修剪
如果提供MiB中的目标大小,则阻止。这种模式是
与-txindex和-rescan不兼容。警告:还原它
设置需要重新下载整个区块链。 (默认:
0 =禁用修剪块,1 =允许通过RPC手动修剪,
> = 550 =自动修剪块文件以保持在
MiB中指定的目标尺寸)
-reindex
从磁盘上的blk * .dat文件重建链状态和块索引
-reindex-chainstate
从当前索引的块重建链状态
-txindex
维护getrawtransaction rpc使用的完整事务索引
通话(默认:0)
-版
打印版本并退出
连接选项:
-addnode = <IP>
添加要连接的节点并尝试保持连接打开(请参阅
`addnode` RPC命令帮助获取更多信息)。这个选项可以
多次指定添加多个节点。
-banscore = <N>
断开行为不端的对等体的阈值(默认值:100)
-bantime = <N>
让行为不端的同伴重新连接的秒数(默认值:
86400)
-bind = <地址>
绑定到给定地址并始终听取它。使用[host]:端口表示法
对于IPv6
-connect = <IP>
仅连接到指定的节点; -noconnect禁用自动
连接(此对等体的规则与for相同
-addnode)。可以多次指定此选项进行连接
到多个节点。
-发现
发现自己的IP地址(默认:收听时为1,没有--externalip
或者 - 代理)
-dns
允许DNS查找-addnode,-seednode和-connect(默认值:1)
-dnsseed
如果地址较低,则通过DNS查询查询对等地址(默认值:1
除非使用-connect)
-enablebip61
按BIP61发送拒绝消息(默认值:1)
-externalip = <IP>
指定您自己的公共地址
-forcednsseed
始终通过DNS查找查询对等地址(默认值:0)
-听
接受来自外部的连接(默认值:如果没有-proxy或-connect,则为1)
-listenonion
自动创建Tor隐藏服务(默认值:1)
-maxconnections = <N>
最多保持与同伴的<n>连接(默认值:125)
-maxreceivebuffer = <N>
最大每连接接收缓冲区,<n> * 1000字节(默认值:5000)
-maxsendbuffer = <N>
最大每连接发送缓冲区,<n> * 1000字节(默认值:1000)
-maxtimeadjustment
允许的最大中值对等时间偏移调整。地方视角
时间可能受到同伴向前或向后的影响
量。 (默认:4200秒)
-maxuploadtarget = <N>
试图保持给定目标下的出站流量(每24小时MiB),
0 =无限制(默认值:0)
-onion = <IP:端口>
使用单独的SOCKS5代理通过Tor隐藏服务设置到达对等体
-noonion禁用(默认值:-proxy)
-onlynet = <净>
仅通过网络<net>(ipv4,ipv6或.net)建立传出连接
洋葱)。传入连接不受此选项的影响。
可以多次指定此选项以允许多个
网络。
-peerbloomfilters
支持使用bloom过滤器过滤块和事务(默认值:
1)
-permitbaremultisig
中继非P2SH multisig(默认值:1)
-port = <端口>
侦听<port>上的连接(默认值:8333或testnet:18333)
-proxy = <IP:端口>
通过SOCKS5代理连接,将-noproxy设置为禁用(默认值:
禁用)
-proxyrandomize
随机化每个代理连接的凭据。这使Tor成为可能
流隔离(默认值:1)
-seednode = <IP>
连接到节点以检索对等地址,并断开连接。这个
可以多次指定选项以连接到多个
节点。
-timeout = <N>
以毫秒为单位指定连接超时(最小值:1,默认值:5000)
-torcontrol = <IP>:<端口>
如果启用了洋葱侦听,则使用Tor控制端口(默认值:
127.0.0.1:9051)
-torpassword = <传递>
Tor控制端口密码(默认值:空)
-upnp
使用UPnP映射侦听端口(默认值:0)
-whitebind = <地址>
绑定到给定地址并将连接到它的白名单列入白名单。使用
[host]:IPv6的端口表示法
-whitelist = <IP地址或网络>
从给定IP地址连接的白名单对等体(例如1.2.3.4)或
CIDR标记网络(例如1.2.3.0/24)。可以指定多个
倍。白名单同行不能被DoS禁止和他们的
交易总是被转发,即使它们已经在交易中
mempool,有用的例如用于网关
钱包选项:
-地址类型
要使用哪种类型的地址(“legacy”,“p2sh-segwit”或“bech32”,
默认值:“p2sh-segwit”)
-avoidpartialspends
按地址分组输出,选择全部或全部,而不是选择开
每个输出的基础。隐私得到改善,因为地址是唯一的
使用一次(除非有人在花钱后发给它),
但由于次优硬币可能导致费用略高
选择可能由于添加的限制而导致(默认值:0)
-changetype
使用什么类型的更改(“遗留”,“p2sh-segwit”或“bech32”)。
默认值与-addresstype相同,除非
-addresstype = p2sh-segwit使用本机segwit输出时
发送到本地segwit地址)
-disablewallet
不要加载钱包并禁用钱包RPC调用
-discardfee = <AMT>
费率(BTC / kB)表示您对丢弃的容忍度
通过将其添加到费用来更改(默认值:0.0001)。注意:输出
如果它是以这个速度的灰尘被丢弃,但我们将永远
丢弃灰尘接力费和高于此的丢弃费
受最长目标的费用估算限制
-fallbackfee = <AMT>
费用估算时将使用的费率(BTC / kB)
数据不足(默认值:0.0002)
-keypool = <N>
将密钥池大小设置为<n>(默认值:1000)
-mintxfee = <AMT>
小于此的费用(BTC / kB)被视为零费用
事务创建(默认值:0.00001)
-paytxfee = <AMT>
费用(以BTC / kB为单位)添加到您发送的交易中(默认值:0.00)
-rescan
在启动时重新扫描块链以查找丢失的钱包事务
-salvagewallet
尝试在启动时从损坏的钱包中恢复私钥
-spendzeroconfchange
发送事务时花费未经证实的更改(默认值:1)
-txconfirmtarget = <N>
如果未设置paytxfee,请包含足够的费用以便开始交易
n块内平均确认(默认值:6)
-upgradewallet
在启动时将钱包升级到最新格式
-wallet = <路径>
指定钱包数据库路径。可以多次指定加载
多个钱包。路径是相对于<walletdir> if解释的
它不是绝对的,如果它不存在将被创建(如
包含wallet.dat文件和日志文件的目录。对于
向后兼容性这也将接受现有的名称
<walletdir>中的数据文件。)
-walletbroadcast
制作钱包广播交易(默认值:1)
-walletdir = <DIR>
指定保存钱包的目录(默认值:<datadir> / wallets,如果它
存在,否则<datadir>)
-walletnotify = <CMD>
钱包交易发生变化时执行命令(替换cmd中的%s)
通过TxID)
-walletrbf
使用全RBF选择加入发送事务(仅限RPC,默认值:0)
-zapwallettxes = <模式>
删除所有钱包交易,只恢复那些部分
在启动时通过-rescan进行区块链(1 =保留tx元数据,例如
帐户所有者和付款请求信息,2 = drop tx meta
数据)
ZeroMQ通知选项:
-zmqpubhashblock = <地址>
在<address>中启用发布哈希块
-zmqpubhashtx = <地址>
在<address>中启用发布哈希事务
-zmqpubrawblock = <地址>
在<address>中启用发布原始块
-zmqpubrawtx = <地址>
在<address>中启用发布原始事务
调试/测试选项:
-debug = <类别>
输出调试信息(默认值:-nodebug,提供<category>是
可选的)。如果未提供<category>或<category> = 1,
输出所有调试信息。 <category>可以是:net,tor,
mempool,http,bench,zmq,db,rpc,estimatefee,addrman,
selectcoins,reindex,cmpctblock,rand,prune,proxy,mempoolrej,
libevent,coindb,qt,leveldb。
-debugexclude = <类别>
排除类别的调试信息。可以结合使用
使用-debug = 1输出除一个以外的所有类别的调试日志
或更多指定的类别。
-help调试
显示所有调试选项(用法: - help -help-debug)
-logips
在调试输出中包含IP地址(默认值:0)
-logtimestamps
使用时间戳预先调试输出(默认值:1)
-maxtxfee = <AMT>
在单个钱包交易或原始交易中使用的最大总费用(以BTC计)
交易;将此设置得太低可能会中止大型事务
(默认值:0.10)
-printtoconsole
将跟踪/调试信息发送到控制台(默认值:1,当没有-daemon时。禁用
记录到文件,设置-nodebuglogfile)
-shrinkdebugfile
在客户端启动时收缩debug.log文件(默认值:1,没有-debug时)
-uacomment = <CMT>
将注释附加到用户代理字符串
连锁选择:
-testnet
使用测试链
节点中继选项:
-bytespersigop
中继和挖掘事务中每个sigop的等效字节数
(默认值:20)
-datacarrier
中继和我的数据载体交易(默认值:1)
-datacarriersize
我们中继和挖掘的数据载体交易中的最大数据大小
(默认:83)
-mempoolreplacement
在内存池中启用事务替换(默认值:1)
-minrelaytxfee = <AMT>
小于此的费用(BTC / kB)被认为是中继的零费用,
挖掘和创建事务(默认值:0.00001)
-whitelistforcerelay
即使违反了白名单同伴的交易强制中继也是如此
本地中继政策(默认:1)
-whitelistrelay
接受从列入白名单的同行收到的中继交易,即使是
不转发交易(默认:1)
块创建选项:
-blockmaxweight = <N>
设置最大BIP141块重量(默认值:3996000)
-blockmintxfee = <AMT>
为要包含在块中的交易设置最低费率(BTC / kB)
创建。 (默认值:0.00001)
RPC服务器选项:
-rest
接受公共REST请求(默认值:0)
-rpcallowip = <IP>
允许来自指定源的JSON-RPC连接。适用于<ip>的是
单个IP(例如1.2.3.4),网络/网络掩码(例如,
1.2.3.4/255.255.255.0)或网络/ CIDR(例如1.2.3.4/24)。这个
选项可以多次指定
-rpcauth = <userpw>
JSON-RPC连接的用户名和散列密码。场
<userpw>的格式为:<USERNAME>:<SALT> $ <HASH>。一个
canonical python脚本包含在share / rpcauth中。客户端
然后通常使用
rpcuser = <USERNAME> / rpcpassword = <PASSWORD>参数对。这个
选项可以多次指定
-rpcbind = <地址> [:端口]
绑定到给定地址以侦听JSON-RPC连接。这个选项是
除非-rpcallowip也被传递,否则将被忽略。端口是可选的
覆盖-rpcport。使用[host]:IPv6的端口表示法。这个
可以多次指定选项(默认值:127.0.0.1和
:: 1即localhost,或者如果指定了-rpcallowip,
0.0.0.0和::即所有地址)
-rpccookiefile = <LOC>
身份验证cookie的位置。相对路径将以a为前缀
特定于网络的数据库位置。 (默认:数据目录)
-rpcpassword = <PW>
JSON-RPC连接的密码
-rpcport = <端口>
在<port>上侦听JSON-RPC连接(默认值:8332或testnet:
18332)
-rpcserialversion
设置返回的原始事务或块十六进制的序列化
非详细模式,非segwit(0)或segwit(1)(默认值:1)
-rpcthreads=<N>
设置服务RPC调用的线程数(默认值:4)
-rpcuser= <用户>
JSON-RPC连接的用户名
-server
接受命令行和JSON-RPC命令
转载于:https://my.oschina.net/feistel/blog/3005964