HSD 配置
默认情况下,hsd主网配置文件位于 ~/.hsd/hsd.conf
和 ~/.hsd/hsw.conf
中,启动时传递给hsd的任何参数都将优先于配置文件。即使您只是在hs-client
未安装hsd的情况下运行(例如,访问远程服务器),配置文件仍将驻留在其中~/.hsd/
例:
hsd --network=regtest --api-key=menace --daemon
将从 ~/.hsd/regtest/hsd.conf
读取配置,并且忽略 network
或 api-key
参数。
所有的hsd配置选项都可以在配置文件、CLI参数、进程环境变量、实例化node
对象的构造参数中使用。
每种方法的格式略有不同。请特别注意连字符和大写字母的用法。请参阅以下示例:
配置文件 | CLI 参数 | 环境变量 | JS 对象构造函数 |
---|---|---|---|
network: testnet | --network=testnet | HSD_NETWORK=testnet | {network: 'testnet'} |
log-level: debug | --log-level=debug | HSD_LOG_LEVEL=debug | {logLevel: 'debug'} |
max-outbound: 8 | --max-outbound=8 | HSD_MAX_OUTBOUND=8 | {maxOutbound: 8} |
数据目录/前缀
hsd 数据路径由 prefix
选项决定。下面的示例将创建一个目录 ~/.hsd_spv,包含一个链的数据、钱包数据和日志文件。
$ hsd --prefix ~/.hsd_spv --spv
常用选项
config
:指向自定义配置文件,而不是前缀目录中的文件。network
:用于节点 (main, testnet, regtest, or simnet) 的网络的链参数(默认值: main).workers
:是否使用工作进程池进行交易验证(默认值: true).workers-size
:要生成以进行交易验证的工作进程数。默认情况下,工作池的大小将根据计算机中的CPU /内核数来确定。workers-timeout
:工作进程执行超时(以毫秒为单位)(默认值:120000)。
节点选项
prefix
:数据目录(存储数据库,日志和配置)(默认值=〜/ .hsd)。max-files
:leveldb的最大打开文件数。通常,较高的值意味着更多的磁盘页面缓存优势,但也有更多的内存使用量(默认值:64)。cache-size
:leveldb高速缓存和写缓冲区的大小(以MB为单位)(默认值:32mb)。spv
:启用简化付款验证(SPV)模式
日志选项
log-level
:error,warning,info,debug,或者spam(默认值: debug).log-console
:true或false - if foregrounded,是否实际写入stdout / stderr(默认值: true)。log-file
:是否使用日志文件(默认值:true)。
链选项
请注意,某些链选项会影响链数据库的格式和索引,并且每次都必须一致地传递。
prune
:重新同步时删除最近的288个区块(默认值:false)。checkpoints
:对初始同步使用checkpoints和getheaders(默认值:true)coin-cache
:内存中UTXO缓存的大小(以MB为单位)。默认情况下,没有启用UTXO缓存。为了获得每个块足够数量的缓存命中,硬币缓存必须相当大(至少建议60-100mb)。index-tx
:索引交易(在REST API中启用事务端点)(默认值:false)。index-address
:按地址索引交易和utxos(默认值:false)。
内存池选项
mempool-size
:最大内存池大小(MB)(默认值:100)。persistent-mempool
:将mempool保存到磁盘并在启动时读取(默认值:false)。
Pool选项
selfish
:启用“selfish”模式(不广播交易或区块)(默认值:false)。compact
:启用压缩块中继(默认值:true)。bip37
:启用bip37 merkleblocks服务(默认值:false)。listen
:接受传入连接(默认值:false)。max-outbound
:最大出站连接数(默认值:8)。max-inbound
:最大入站连接数(默认值:30)。max-proof-rps
:每秒最大getproof
DNS请求数(默认值:100)。seeds
:DNS种子的自定义列表(以逗号分隔)。host
:要监听的主机(默认值:0.0.0.0)。port
:要监听的端口(默认值:主网为12038)。brontide-port
:加密的p2p服务器用于监听的端口(默认值: 主网为44806)。public-host
:对外公开的节点IP。public-port
:对外公开的节点端口。nodes
:要连接的目标节点列表(以逗号分隔)。
矿工选项
coinbase-flags
:Coinbase标志(默认值:mined by hsd)。coinbase-address
:付款地址列表,在创建区块期间随机选择(以逗号分隔)。max-weight
:要开采的最大区块重量(默认值:4000000)。reserved-weight
:为coinbase保留的空间量(默认值:4000)。reserved-sigops
:为coinbase预留的sigops数量(默认值:400)。
HTTP
http-host
:要监听的HTTP主机(默认值:127.0.0.1)。http-port
:用于监听的HTTP端口(默认值:主网为12037)。ssl
:是否使用SSL(默认值:false)ssl-cert
:SSL证书的路径。ssl-key
:SSL密钥的路径。api-key
:API密钥(用于访问所有节点API,可能与钱包服务器的API密钥不同)。cors
:启用“跨域资源共享” HTTP标头(默认值:false)。
注意:为了安全起见,请勿将cors和no-auth搭配使用。 如果启用,则还应该启用wallet-auth和设置api-key。
DNS解析选项
ns-host
:用于托管权威名称服务器的主机(默认值:127.0.0.1)ns-port
:用于权威名称服务器侦听的端口(默认值:主网为5349)public-host
:(与矿池选项相同)适用于权威名称服务器rs-host
:用于递归名称服务器侦听的主机(默认值:127.0.0.1)rs-port
:递归名称服务器侦听的端口(默认值:主网为5350)rs-no-unbound
:是否将hsd JavaScript解析器用作递归解析器(默认值:false)
钱包选项
这些选项必须保存在hsw.conf中。 如果它们前面带有wallet-前缀(WALLET_作为环境变量),也可以作为环境变量或命令行变量传递。
例如,要在可以从本地计算机访问的远程服务器上运行hsd和wallet节点,可以使用以下示例:
使用hsw.conf的示例:
network: testnetwallet-auth: trueapi-key: hunter2http-host: 0.0.0.0
使用CLI选项的示例:
$ ./bin/hsd --network=testnet --http-host=0.0.0.0 --wallet-http-host=0.0.0.0 --wallet-api-key=hunter2 --wallet-wallet-auth=true
使用ENV的示例:
$ HSD_NETWORK=testnet HSD_HTTP_HOST=0.0.0.0 HSD_WALLET_HTTP_HOST=0.0.0.0 HSD_WALLET_API_KEY=hunter2 HSD_WALLET_WALLET_AUTH=true ./bin/hsd
hsd 客户端:
node-host
:hsd节点HTTP服务器的位置(默认值:localhost)。node-port
:hsd节点HTTP服务器的端口(默认为网络的RPC端口)。node-ssl
:是否使用SSL(默认值:false)。node-api-key
:HSD HTTP服务器的API密钥。
钱包数据库
max-files
:leveldb的最大打开文件数。cache-size
:leveldb缓存和写缓冲区的大小(以MB为单位)。
钱包http服务器:
ssl
:是否使用SSL(默认值:false)。ssl-key
:SSL密钥的路径。ssl-cert
:SSL证书的路径。http-host
:要侦听的HTTP主机(默认值:127.0.0.1)。http-port
:要侦听的HTTP端口(默认值:主网为12039)。api-key
:API密钥(用于访问所有钱包API的API密钥,可能与节点服务器的API密钥不同)。cors
:启用“跨域资源共享” HTTP标头(默认值:false)。no-auth
:禁用对API服务器和钱包的身份验证(默认值:false)。wallet-auth
:为钱包启用令牌身份验证(默认值:false)。admin-token
:如果wallet-auth启用,则需要令牌:限制对 all wallet admin routes.的访问。
示例配置文件
可以将以下文件放置在 ~/.hsd/hsd.conf
与主网hsd节点一起使用的位置。如果节点以hsd --network=testnet
启动, 则可以将其放置在~/.hsd/testnet/hsd.conf
中。 以下示例中的所有设置均为默认设置,这意味着如果您未更改任何值,则无需使用hsd.conf
.它仅作为配置文件语法的示例提供:
- 配置选项用换行符分隔。
- 键/值对由冒号分隔。
- 可以通过命令行,环境变量或配置文件设置所有选项。(请参阅页面顶部)
max-inbound: 8max-outbound: 8log-level: debugprune: falsecheckpoints: truers-port: 5350