比特币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 | addnode = 69.164.218.197 |
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 | rpcuser =用户名 |
rpcclienttimeout:RPC 客户端超时秒数。
1 | rpcclienttimeout = 30 |
rpcallowip:默认情况下,仅允许来自本地主机的RPC连接。根据需要指定 rpcallowip 以允许来自其他主机的连接,作为单个IPv4 / IPv6或带有子网规范。
建议开启 RPC 访问白名单。
1 | rpcallowip=10.1.1.34/255.255.255.0 |
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 |
参考: