比特币sv节点 bitcoind 命令行参数

2020-08-03

包含了挖掘超大区块所需的最新参数。

本次使用的比特币 sv 版本为 1.0.4:bitcoin-sv

1
2
3
4
5
bitcoind [options] # 启动比特币SV守护进程

# 例如,指定配置文件,裁剪区块保持在10GB,后台运行

bitcoind -conf=/xx/bitcoin.conf -daemon -prune=10000

本章大部分参数可以写在 bitcoin.conf 配置文件中,灵活使用。

选项

参数 Description
-? 打印此帮助信息并退出
-version 打印版本并退出
-alertnotify=<cmd> 当收到相关警报或我们看到一个很长的分叉时,执行命令(cmd中由消息替换 %s)
-blocknotify=<cmd> 当最佳区块发生变化时执行命令(cmd中的%s由区块哈希值代替)
-assumevalid=<hex> 如果此块在链中,则假定它及其祖先有效,并可能跳过其脚本验证
(0 表示验证所有,
默认值:00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90
测试网:00000000000128796ee387cf110ccb9d2f36cffaf7f73079c995377)
-conf=<file> 指定配置文件(默认:bitcoin.conf)
-daemon 以守护进程的形式在后台运行,并接受命令
-datadir=<dir> 指定数据目录
-dbcache=<n> 设置数据库缓存大小,单位为兆字节(4到16384,默认值:450)
-genesisactivationheight 设置块高度,在这个高度上应该激活genesis。(默认:620538)
-loadblock=<file> 启动时从外部 blk000?.dat 文件中导入块
-maxmempool=<n> 将事务内存池保持在 n MB以下(默认:1000 MB)
建议设置为 6 GB 或更大
-mempoolexpiry=<n> 不在 mempool 中保存交易超过 n 小时(默认:336,即 14 天)
-maxmempoolnonfinal=<n> 将非最终事务内存池保持在 n MB以下(默认:50 MB)
-mempoolexpirynonfinal=<n> 非最终事务在内存池中保存交易 n 小时以下(默认:672,即 28 天)
-persistmempool 是否在关机时保存 mempool,并在重启时加载(默认:1)
-threadsperblock=<n> 设置验证单个区块时使用的脚本验证线程数(0 到 64,0 为自动,默认:0)
-scriptvalidatormaxbatchsize=<n> 设置每个线程的脚本验证批处理大小(1 到 255,默认:128)
-maxparallelblocks=<n> 设置所有节点可并行验证的块数。如果有额外的区块到达。终止对旧块的验证。(1到100,默认值:4)
-maxparallelblocksperpeer=<n> 设置可以从单个 peer 并行验证的块数。如果 peer 发送另一个块,它的验证被延迟。(1 到 maxparallelblocks,默认:3)
-pid=<file> 指定 pid 文件(默认:bitcoind.pid)
-preload=<n> 如果 n 设置为 1,则区块链状态将被预加载到内存中。如果 n 为 0,则不会发生预加载。n 不允许为其他值。默认值为0。Windows 操作系统不支持此选项。
-prune=<n> 通过启用旧块的修剪(删除)来减少存储需求。 这允许调用 pruneblockchain RPC 删除特定的块,并且如果提供了MiB中的目标大小,则可以自动修剪旧块。 此模式与 -txindex 和 -rescan 不兼容。 警告:还原此设置需要重新下载整个区块链。 (默认值:0 =禁用修剪块,1 =允许通过 RPC 手动修剪,> 550 =自动修剪块文件以使其保持在MiB中指定的目标大小以下)
-reindex-chainstate 从当前的索引块中重建链状态。
-reindex 从磁盘上的 blk*.dat 文件中重建链状态和块索引。
-rejectmempoolrequest 拒绝所有来自非白名单节点的 mempool 请求。
-sysperms 使用系统默认权限而不是 umask 的 077 创建新文件(仅对禁用的钱包功能有效)
-txindex 保持一个完整的事务索引,由 getrawtransaction rpc 调用使用(默认:0)

连接选项

参数 意义
-addnode=<ip> 在原有的种子节点中新增节点
-connect=<ip> 只会连接到指定节点,不会连接到种子节点和其他节点。单独使用 -noconnect 或 -connect=0 来禁用自动连接
-banscore=<n> 断开行为非法的节点的的阈值(默认值:100)
-bantime=<n> 防止行为非法的节点重新连接的秒数(默认:86400)
-bind=<addr> 绑定到给定的节点地址并始终监听。对IPv6使用[host]:port符号
-blockstallingmindownloadspeed=<n> 在 IBD 期间,允许处于停滞状态的同级设备降至最低平均下载速度(KB / s)。
值 0 表示禁用失速检测(默认值:100Kb / s)
-discover 发现自己的 IP 地址(默认:监听时为 1,没有 -externalip 或 -proxy)
-dns 允许 -addnode、-seednode 和 -connect 进行DNS查询(默认:1)
-dnsseed 如果节点地址较少,通过 DNS 查找查询节点地址(默认:1,除非 -connect / -noconnect)
-externalip=<ip> 指定自己的 IP 地址
-forcednsseed 始终通过 DNS 查找来查询节点地址(默认:1)
-listen 接受来自外部的连接(默认:1,如果没有 -proxy 或 -connect / -noconnect)
-listenonion 自动创建Tor隐藏服务(默认:1)
-maxconnections=<n> 最多保持 n 个节点连接(默认:125)
-maxreceivebuffer=<n> 每个连接的最大接收缓冲区,n*1000 字节,(默认:5000)
-maxsendbuffer=<n> 每个连接的最大发送缓冲区,n*1000 字节,(默认:1000)
-factormaxsendqueuesbytes=<n> 将与 excessiveBlockSize 相乘的系数,以限制所有发送队列中的最大字节数。
如果超过这个大小,则不会发送与块相关的P2P消息的响应。 (默认系数: 4)
-maxtimeadjustment 允许的最大中位数 peer 的时间偏移调整。本地时间的角度可能会受到同行向前或向后移动此数量的影响。(默认值:4200秒)
-broadcastdelay=<n> 设置库存(inventory)广播延迟时间,单位为毫秒(min: 0, max: 50000)
-onion=<ip:port> 使用单独的 SOCKS5 代理,通过 Tor 隐藏服务与节点连接(默认:-proxy)
-onlynet=<net> 只连接到网络 net 的节点(nodes)(ipv4、ipv6 或 onion)
-permitbaremultisig 是否中继非 P2SH 多协议(默认:1)
-peerbloomfilters 是否支持使用 bloom 过滤器过滤区块和交易(默认:1)
-port=<port> 监听端口上的连接(默认:8333,testnet:18333)
-proxy=<ip:port> 通过 SOCKS5 代理连接
-proxyrandomize 随机化每个代理连接的凭证。这将启用 Tor 流隔离(默认:1)
-seednode=<ip> 连接到节点(node)以检索 peer 地址,并断开连接
-timeout=<n> 指定连接超时时间,单位为毫秒(最小值:1,默认值:5000)
-torcontrol=<ip>:<port> 如果启用了 onion 监听,要使用的 Tor 控制端口(默认:127.0.0.1:9051)
-torpassword=<pass> Tor 控制端口密码(默认:空)
-upnp 使用 UPnP 映射监听端口(默认:0)
-whitebind=<addr> 绑定到给定的地址并将连接到该地址的 peers 列入白名单。对IPv6 使用 [host]:port 格式
-whitelist=<IP address or network> 从给定IP地址(例如1.2.3.4)或 CIDR 标记网络(例如1.2.3.0/24)连接的白名单对等方。
列入白名单的对等方不能被 DoS 禁止,即使它们已经在内存池中,它们的事务也总是被中继,这对网关来说很有用。
可以多次指定
-whitelistforcerelay 即使已列入白名单的 peers 违反本地中继策略,也强制进行中继处理(默认值:1)
-maxuploadtarget=<n> 将出站流量控制在给定的目标范围内(以每 24 小时 MiB 为单位),0=无限制(默认值:0)

钱包选项

参数 意义
-disablewallet 不要加载钱包,禁用钱包RPC调用
-keypool=<n> 设置密钥池大小为 n(默认:1000)
-fallbackfee=<amt> 当费用估算数据不足时使用的费用率(单位:BSV/kB)(默认:0.0002)
-mintxfee=<amt> 小于此值的费用(单位:BSV/kB)被认为是交易创建的零费用(默认:0.00001)
-paytxfee=<amt> 费用(单位:BSV/kB)添加到您发送的交易中(默认:0.00)
-rescan 在启动时重新扫描区块链,查找丢失的钱包交易
-salvagewallet 试图在启动时从损坏的钱包中恢复私钥。
-spendzeroconfchange 发送交易时,花费未确认的零钱(默认:1)
-usehd 在 BIP32 之后使用分层确定性密钥生成(HD)。 仅在钱包创建/首次启动期间有效(默认值:1)
-upgradewallet 启动时将钱包升级到最新格式
-wallet=<file> 指定钱包文件(在数据目录内)(默认:wallet.dat)
-walletbroadcast 让钱包广播交易(默认:1)
-walletnotify=<cmd> 当钱包交易发生变化时执行命令(cmd 中的 %s 由 TxID 代替)
-zapwallettxes=<mode> 删除所有钱包交易,仅在启动时通过 -rescan 来恢复区块链的这些部分(1 =保留tx元数据,例如账户所有者和付款请求信息,2 =丢弃tx元数据)

ZeroMQ 通知选项

参数 意义
-zmqpubhashblock=<address> 在地址中启用发布哈希块。
-zmqpubhashtx=<address> 在地址中启用发布哈希事务。
-zmqpubrawblock=<address> 在地址中启用发布原始块
-zmqpubrawtx=<address> 在地址中启用发布原始交易

调试/测试选项

参数 意义
-uacomment=<cmt> 将注释添加到用户代理字符串中
-debug=<category> 输出调试信息(默认值:0,提供<category>是可选的)。
如果未提供<category>或<category> = 1,则输出所有调试信息。
<category>可以是:
net,tor,mempool,http,bench,zmq,db,rpc,addrman,
selectcoins,reindex,cmpctblock, rand,prune,proxy,
mempoolrej,libevent,coindb,leveldb,txnprop,txnsrc,
journal,txnval
-debugexclude=<category> 排除类别的调试信息。 可以与 -debug = 1 结合使用,以输出除一个或多个指定类别以外的所有类别的调试日志
-help-debug 显示所有调试选项(用法:–help -help-debug)
-debugp2pthreadstalls 记录暂停请求处理循环超过指定毫秒的 P2P 请求(默认值:禁用)
-logips 在调试输出中包含 IP 地址(默认:0)
-logtimestamps 在调试输出中加入时间戳(默认:1)
-minrelaytxfee=<amt> 小于此费用(BSV / kB)的中继,挖掘和交易创建费用为零(默认值:0.0000025)
-maxtxfee=<amt> 用于单个钱包交易或原始交易的最高总费用(以BSV为单位),将此值设置得太低可能会中止大笔交易(默认值:0.10)
-printtoconsole 将跟踪/调试信息发送到控制台,而不是 bitcoind.log 文件
-shrinkdebugfile 在客户端启动时收缩 bitcoind.log 文件(默认:1,当没有-debug时)

使用测试链

参数 意义
-testnet 使用测试链
-regtest 进入回归测试模式,该模式使用一条特殊的链,在该链中可以立即求解块。
这旨在用于回归测试工具和应用程序开发。
-stn 使用巨块测试网络

节点中继选项

参数 意义
-excessiveblocksize=<n> 设置可以从任何来源接受的最大块大小(以字节为单位)。
这是有效的块大小硬限制,并且是必需的参数(0 =无限)。
-datacarrier 中继和挖矿数据载体交易(默认值:1)
-datacarriersize 中继和挖掘的数据载体交易中的最大数据量(默认:4294967295)
-maxstackmemoryusageconsensus 脚本在运算时允许使用的最大栈内存,如果脚本尝试使用超过参数定义值的内存量,将中止脚本的运行,导致脚本失败。脚本失败将导致交易无效,并且包含了这笔无效交易的区块也会成为无效区块。
建议设置为 100000000 # 100MB
这是一个必需的参数。(0 =无限)
-maxstackmemoryusagepolicy 设置在 Genesis 激活后,在单个事务中中继/挖掘的脚本验证所使用的最大堆栈内存使用量(默认值:100000000字节(100MB),0 =无限)
必须小于或等于-maxstackmemoryusageconsensus 的值
-maxopsperscriptpolicy=<n> 设置 Genesis 后,为每个脚本中继/消除的非推送操作的最大数量(默认值:无限制,0 =无限制)
-maxtxsigopscountspolicy=<n> 设置激活 Genesis 后,在单个事务中中继/删除的签名操作的最大允许数量(默认值:无限制,0 =无限制)
-maxstdtxvalidationduration=<n> 设置单个标准事务验证持续时间阈值(以毫秒为单位),在此阈值之后,标准事务验证将错误终止并且不接受该事务进入内存池(最小5ms,默认值:10ms)
-maxnonstdtxvalidationduration=<n> 设置单个非标准事务验证持续时间阈值(以毫秒为单位),在此阈值之后,非标准事务验证将错误终止并且不接受该事务进入内存池(最小10ms,默认值:1000ms)
-maxtxsizepolicy=<n> 在 Genesis 激活后,设置我们中继和挖掘的最大事务大小(以字节为单位)(默认值:10000000(10M),最小值:99999,0 =无限)
-maxscriptsizepolicy 在激活 Genesis 之后中继/删除每个脚本的大小(以字节为单位) ,(默认值:10000(100KB),0 =无限)。
-maxscriptnumlengthpolicy=<n> Genesis 激活后,在脚本中中继/挖掘的最大允许数字长度(默认值:250000(2.5MB),0 =无限)
-maxsigcachesize 签名缓存大小。单位为 MB。可向节点指明可在缓存中保存多少可接受的交易,通过减少对运行中重新计算签名和脚本的昂贵调用来提高性能。建议将这些设置为 250 MB 或更高。
-maxscriptcachesize 脚本缓存大小。单位为 MB。建议 250 MB
参数 意义

块创建选项

参数 意义
-blockmaxsize=<n> 矿工打包生成的最大区块体积(以字节为单位)。 挖出的块的大小将永远不会超过我们将接受的最大块大小(-excessiveblocksize)
-blockprioritypercentage=<n> 设置保留给高优先级/低费用交易的区块的最大百分比(默认:5)
-blockmintxfee=<amt> 设置在创建区块时包含的最低费用率(单位:BSV/kB)。(默认:0.000005)
-invalidateblock=<hash> 将现有块永久标记为无效,就好像它违反了共识规则(与 Invalidate-Block RPC函数相同)。 如果尚未收到指定的块标头,则从 peer 收到标头时将忽略该标头。 可以多次指定此选项
-banclientua=<ua> 禁止用户代理包含指定字符串(不区分大小写)的客户端。 可以多次指定此选项。
-blockassembler=<type> 设置用于挖掘的块汇编器的类型。 支持的选项为“LEGACY”或“JOURNALING”。 (默认值:LEGACY)

RPC服务器选项

参数 意义
-server bitcoind 是否接受 JSON-RPC 命令,0=否,1=是
-rest 是否接受公共 REST 请求,0=否,1=是(默认:0)
-rpcbind=<addr> 绑定到给定地址以侦听 JSON-RP C连接。可以指定多次(默认:绑定到所有接口)
-rpccookiefile=<loc> auth cookie 的位置(默认:data dir)
-rpcuser=<user> JSON-RPC 连接的用户名
-rpcpassword=<pw> JSON-RPC 连接的密码
-rpcauth=<userpw> JSON-RPC 连接的用户名和哈希密码。 字段<userpw>的格式为:<USER‐NAME>:<SALT> $ <HASH>。 共享/ rpcuse r中包含一个规范的 python 脚本。 然后,客户端使用 rpcuser =<USERNAME> / rpcpassword = <PASSWORD>对参数正常连接。 可以多次指定此选项
-rpcport=<port> 监听端口上的 JSON-RPC 连接(默认:8332,testnet:18332)
-rpcallowip=<ip> 默认情况下,仅允许来自本地主机的 RPC 连接。根据需要指定 rpcallowip 以允许来自其他主机的连接,作为单个 IPv4 / IPv6 或带有子网规范。
-magicbytes=<hexcode> 允许用户通过更改本参数来拆分测试网。 此选项仅在不同于主网的网络上工作。 默认值:0f0f0f0f
-rpcthreads=<n> 设置服务 RPC 调用的线程数(默认:4)
-rpccorsdomain=value 接受跨源请求的域(浏览器强制执行)
-invalidcsinterval=<n> 以毫秒为单位,设置从单个节点接收无效报文校验和的时间限制。
(默认:500ms)
-invalidcsfreq=<n> 设置在给定时间段内从单个 node 收到的无效校验和的数量限制
(默认:100)

孤块 TXNS 选项

参数 意义
-blockreconstructionextratxn=<n> 额外的事务要保留在内存中,以便进行紧凑的块重构(默认:100)
-maxorphantxsize=<n> 在内存中最多保留 n MB的不可连接事务(默认:100 MB)
-maxcollectedoutpoints=<n> 在内存中最多保留 n 个收集的输出点(默认:300000)
-maxorphantx 指定了内存中可暂存的孤交易数量,建议 10000。
如果节点收到一条交易信息,但尚未收到这条交易的前序交易(父交易),那么节点会将本交易(子交易)暂存起来,直至发现其前序交易(父交易)或达到 20 分钟的有效期

Txn验证程序选项

参数 意义
-numstdtxvalidationthreads=<n> 设置用于验证标准 txns 的高优先级线程的数量(动态计算,默认:9)
-numnonstdtxvalidationthreads=<n> 设置用于验证非标准 txns 的低优先级线程的数量(动态计算,默认:3)
-maxstdtxnsperthreadratio=<n> 设置每个高优先级线程的标准 txns 的最大比率(默认值:1000)
-maxnonstdtxnsperthreadratio=<n> 设置每个低优先级线程的非标准 txns 的最大比率(默认值:1000)
-txnvalidationasynchrunfreq=<n> 在异步模式下设置运行频率(默认值:100ms)
-maxtxnvalidatorasynctasksrunduration=<n> 设置单次运行异步任务的最大验证时间(默认:10000ms)
-maxcoinsviewcachesize=<n> 设置硬币缓存中可接受的交易输入的最大累积大小(默认值:0,无限制)
-txnvalidationqueuesmaxmemory=<n> 设置事务队列的最大内存使用量,单位为 MB(默认:2048 )
-maxpubkeyspermultisigpolicy=<n> 在激活 Genesis 后,设置在单个 CHECKMULTISIG(VERIFY)操作中中继/挖掘的最大允许公共密钥数量(默认值:0,0 =无限制)
-maxgenesisgracefulperiod=<n> 设置 Genesis 宽限期的最大允许块数(默认值:72),其中在调用节点尚未达到创世高的情况下,不会因违反创世规则而禁止节点。 设置为 0 将禁用 Genesis 宽限期。
Copyright (C) 2009-2020 The Bitcoin Association