HSD 配置

默认情况下,hsd主网配置文件位于 ~/.hsd/hsd.conf~/.hsd/hsw.conf中,启动时传递给hsd的任何参数都将优先于配置文件。即使您只是在hs-client未安装hsd的情况下运行(例如,访问远程服务器),配置文件仍将驻留在其中~/.hsd/

例:

hsd --network=regtest --api-key=menace --daemon

将从 ~/.hsd/regtest/hsd.conf 读取配置,并且忽略 networkapi-key 参数。

所有的hsd配置选项都可以在配置文件、CLI参数、进程环境变量、实例化node对象的构造参数中使用。 每种方法的格式略有不同。请特别注意连字符和大写字母的用法。请参阅以下示例:

配置文件CLI 参数环境变量JS 对象构造函数
network: testnet--network=testnetHSD_NETWORK=testnet{network: 'testnet'}
log-level: debug--log-level=debugHSD_LOG_LEVEL=debug{logLevel: 'debug'}
max-outbound: 8--max-outbound=8HSD_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:每秒最大getproofDNS请求数(默认值: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: testnet
wallet-auth: true
api-key: hunter2
http-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: 8
max-outbound: 8
log-level: debug
prune: false
checkpoints: true
rs-port: 5350