比特币sv节点 bitcoin.conf 配置内容

2020-08-01

bitcoin.conf 是比特币核心程序 bitcoind 的配置文件,可以在配置文件中指定所有命令行选项(-conf 除外),也可以在命令行上指定所有配置文件选项。命令行选项会覆盖在配置文件中设置的值。

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

本章所配置的参数是常用参数,更加详细的设置参看:比特币sv节点-bitcoind

文中参数都是示例,需要根据自己的情况取消注释并设置相应的值。

bitcoin.conf 配置文件

bitcoin.conf 是比特币核心程序 bitcoind 的配置文件,可以在配置文件中指定所有命令行选项(-conf 除外),也可以在命令行上指定所有配置文件选项。命令行选项 会覆盖在配置文件中设置的值。

配置文件需要手动创建。默认情况下,bitcoind 将在 bitcoind 数据目录中查找名为“ bitcoin.conf”的文件,但可以使用 -datadir 和 -conf 命令行参数来更改数据目录和配置文件路径。

操作系统 默认节点目录 配置文件的默认路径
Windows %APPDATA%\Bitcoin\ C:\Users\username\AppData\Roaming\Bitcoin\bitcoin.conf
Linux $HOME/.bitcoin/ /home/username/.bitcoin/bitcoin.conf
Mac OSX $HOME/Library/Application Support/Bitcoin/ /Users/username/Library/Application Support/Bitcoin/bitcoin.conf

若以测试网模式运行比特币,则子文件夹 testnet3 将自动添加到数据目录。

设置参数

若不设置某参数而使用默认值,则用 # 注释掉。

与网络相关的设置

testnet:在测试网络而不是真实的比特币网络上运行。0=主网,1=测试网。

1
testnet = 0

stn:在 snt 测试网络上运行。

1
stn=1

regtest:私有链模式运行,0=否,1=是。

例如:bitcoin-cli gererate 1000 生成1000 个区块。

1
regtest = 0

proxy:是否使用 SOCKS5 代理。

1
proxy = 127.0.0.1:9050

bind:本地监听地址。使用[host]:port表示IPv6。

1
bind = <地址>

whitebind:本地白名单监听地址。使用[host]:port表示IPv6。

1
whitebind = <地址>

addnode:在原有的种子节点中新增节点。
connect:只会连接到指定节点,不会连接到种子节点和其他节点

1
2
3
4
5
addnode = 69.164.218.197
addnode = 10.0.0.2:8333

connect = 69.164.218.197
connect = 10.0.0.1:8333

listen:监听模式,不挖矿,只监听区块。

1
listen = 1

maxconnections:最大入站+出站连接数。

1
maxconnections = 数量

JSON-RPC选项(用于控制正在运行的比特币/ bitcoind进程)

server:bitcoind 是否接受 JSON-RPC 命令,0=否,1=是。

1
server = 1

rpcbind:绑定到给定地址以侦听 JSON-RP C连接。

对 IPv6 使用 [host]:port 表示法。可以多次指定此选项(默认值:绑定到所有接口).

1
rpcbind = <地址>

rpcuser 和 rpcpassword:设置 rpcuser 和 rpcpassword 来保护 JSON-RPC api。

必须设置。

1
2
rpcuser =用户名
rpcpassword =密码

rpcclienttimeout:RPC 客户端超时秒数。

1
rpcclienttimeout = 30

rpcallowip:默认情况下,仅允许来自本地主机的RPC连接。根据需要指定 rpcallowip 以允许来自其他主机的连接,作为单个IPv4 / IPv6或带有子网规范。

建议开启 RPC 访问白名单。

1
2
3
rpcallowip=10.1.1.34/255.255.255.0
rpcallowip=1.2.3.4/24
rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96

rpcport:侦听此 TCP 端口上的 RPC 连接。

testnet 网络默认为 18332 和 18333,主网默认为 8332 和 8333.

1
rpcport = 8332

rpcconnect:bitcoin-cli 的连接地址。

1
rpcconnect = 127.0.0.1

其他选项

prune:修剪保留的数据大小。

例如:同步全网数据,超过10g之后,会删除旧的数据,保持10G。

1
prune=10000 # 10G

说明

  • “创世纪升级”删除了“最大区块体积”这项默认设置,并将其定义为“必要共识参数”。
  • 可以把任意必要共识参数的值设置为“0”,可以将其定义为“无限”。如果这样配置,就没有被网络分叉的风险。但是,当网络中挖出了超大区块,您的节点可能会因内存耗尽而崩溃。如果您已遵循最佳实践并分配了较大的 Swap 交换分区,并且内存不低于最低建议值,则只有在遭受攻击时才可能出现上述情况。如果发生这种情况,解决方法是将您的参数设置为与大多数矿工相近似,然后重启节点。

blockmaxsize:矿工打包生成的最大区块体积。

1
blockmaxsize=100000000 # 1000 MB

excessiveblocksize:是矿工允许接受的最大区块体积。

blockmaxsize 的参数值通常比 excessiveblocksize 小。

1
excessiveblocksize=1000000000 # 1GB

maxstackmemoryusageconsensus:定义了脚本在运算时允许使用的最大栈内存,如果脚本尝试使用超过参数定义值的内存量,将中止脚本的运行,导致脚本失败。脚本失败将导致交易无效,并且包含了这笔无效交易的区块也会成为无效区块。

1
maxstackmemoryusageconsensus=100000000 # 100MB

preload:重启会从硬盘加载最后一次状态,1 为打开,0 为关闭

1
preload=1

maxmempool:表明应向节点分配用于存储未确认交易的内存大小,应设置为 6GB 或更大

1
maxmempool=150000 # 15GB

maxsigcachesize:签名缓存大小。

可向节点指明可在缓存中保存多少可接受的交易,通过减少对运行中重新计算签名和脚本的昂贵调用来提高性能。建议将这些设置为 250MB 或更高。

1
maxsigcachesize=500 # 500MB

maxscriptcachesize:脚本缓存大小。

1
maxscriptcachesize=250 # 250M

maxorphantx 指定了内存中可暂存的孤交易数量。

如果节点收到一条交易信息,但尚未收到这条交易的前序交易(父交易),那么节点会将本交易(子交易)暂存起来,直至发现其前序交易(父交易)或达到 20 分钟的有效期

1
maxorphantx = 10000 # 10G

参考:

bitcoin-sv 软件开源地址

bitcoin-sv 节点系统要求