docs.waku.org/docs/guides/reference/node-config-options.md
LordGhostX 81d104c0e5
nwaku config guides (#116)
* add config examples guide

* add domain name config

* add store config

* add node key config

* add websocket config

* update nwaku config options

* add REST API config

* add light push config

* add filter config

* add feedback updates
2023-09-15 21:08:15 +01:00

8.4 KiB

title
Node Configuration Options

Here are the available node configuration options, along with their default values and descriptions:

Application-Level Config

Name Default Value Description
config-file Loads configuration from a TOML file (cmd-line parameters take precedence)
protected-topic newSeq[ProtectedTopic](0) Topics and its public key to be used for message validation, topic:pubkey. Argument may be repeated

Log Config

Name Default Value Description
log-level logging.LogLevel.INFO Sets the log level for process. Supported levels: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR or FATAL
log-format logging.LogFormat.TEXT Specifies what kind of logs should be written to stdout. Supported formats: TEXT, JSON

General Node Config

Name Default Value Description
agent-string nwaku Node agent string which is used as identifier in network
nodekey P2P node private key as 64-char hex string
listen-address defaultListenAddress() Listening address for LibP2P (and Discovery v5, if enabled) traffic
tcp-port 60000 TCP listening port
ports-shift 0 Add a shift to all port numbers
nat any Specify method to use for determining public address. Must be one of: any, none, upnp, pmp, extip:<IP>
ext-multiaddr External multiaddresses to advertise to the network. Argument may be repeated
max-connections 50 Maximum allowed number of libp2p connections
max-relay-peers Maximum allowed number of relay peers
peer-store-capacity Maximum stored peers in the peerstore
peer-persistence false Enable peer persistence

DNS Addrs Config

Name Default Value Description
dns-addrs true Enable resolution of dnsaddr, dns4 or dns6 multiaddrs
dns-addrs-name-server ["1.1.1.1", "1.0.0.1"] DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated
dns4-domain-name The domain name resolving to the node's public IPv4 address

Relay Config

Name Default Value Description
relay true Enable relay protocol: true|false
relay-peer-exchange false Enable gossipsub peer exchange in relay protocol: true|false
rln-relay false Enable spam protection through rln-relay: true|false
rln-relay-cred-path The path for persisting rln-relay credential
rln-relay-membership-index The index of the onchain commitment to use
rln-relay-dynamic false Enable waku-rln-relay with on-chain dynamic group management: true|false
rln-relay-id-key Rln relay identity secret key as a Hex string
rln-relay-id-commitment-key Rln relay identity commitment key as a Hex string
rln-relay-eth-client-address ws://localhost:8540/ WebSocket address of an Ethereum testnet client e.g., ws://localhost:8540/
rln-relay-eth-contract-address Address of membership contract on an Ethereum testnet
rln-relay-cred-password Password for encrypting RLN credentials
rln-relay-tree-path Path to the RLN merkle tree sled db (https://github.com/spacejam/sled)
rln-relay-bandwidth-threshold 0 # to maintain backwards compatibility Message rate in bytes/sec after which verification of proofs should happen
staticnode Peer multiaddr to directly connect with. Argument may be repeated
keep-alive false Enable keep-alive for idle connections: true|false
topic ["/waku/2/default-waku/proto"] Default topic to subscribe to. Argument may be repeated. Deprecated! Please use pubsub-topic and/or content-topic instead
pubsub-topic Default pubsub topic to subscribe to. Argument may be repeated
content-topic Default content topic to subscribe to. Argument may be repeated

Store and Message Store Config

Name Default Value Description
store false Enable/disable waku store protocol
storenode Peer multiaddress to query for storage
store-message-retention-policy time:172800 Message store retention policy. Time retention policy: 'time:<seconds>'. Capacity retention policy: 'capacity:<count>'. Set to 'none' to disable
store-message-db-url sqlite://store.sqlite3 The database connection URL for persistent storage
store-message-db-vacuum false Enable database vacuuming at start. Only supported by SQLite database engine
store-message-db-migration true Enable database migration at start

Filter Config

Name Default Value Description
filter false Enable filter protocol: true|false
filternode Peer multiaddr to request content filtering of messages
filter-timeout 14400 # 4 hours Timeout for filter node in seconds

Light Push Config

Name Default Value Description
lightpush false Enable lightpush protocol: true|false
lightpushnode Peer multiaddr to request lightpush of published messages

JSON-RPC Config

Name Default Value Description
rpc true Enable Waku JSON-RPC server: true|false
rpc-address 127.0.0.1 Listening address of the JSON-RPC server
rpc-port 8545 Listening port of the JSON-RPC server
rpc-admin false Enable access to JSON-RPC Admin API: true|false
rpc-private false Enable access to JSON-RPC Private API: true|false

REST HTTP Config

Name Default Value Description
rest false Enable Waku REST HTTP server: true|false
rest-address 127.0.0.1 Listening address of the REST HTTP server
rest-port 8645 Listening port of the REST HTTP server
rest-relay-cache-capacity 30 Capacity of the Relay REST API message cache
rest-admin false Enable access to REST HTTP Admin API: true|false
rest-private false Enable access to REST HTTP Private API: true|false

Metrics Config

Name Default Value Description
metrics-server false Enable the metrics server: true|false
metrics-server-address 127.0.0.1 Listening address of the metrics server
metrics-server-port 8008 Listening HTTP port of the metrics server
metrics-logging true Enable metrics logging: true|false

DNS Discovery Config

Name Default Value Description
dns-discovery false Enable discovering nodes via DNS
dns-discovery-url URL for DNS node list in format 'enrtree://<key>@<fqdn>'
dns-discovery-name-server ["1.1.1.1", "1.0.0.1"] DNS name server IPs to query. Argument may be repeated

Discv5 Config

Name Default Value Description
discv5-discovery false Enable discovering nodes via Node Discovery v5
discv5-udp-port 9000 Listening UDP port for Node Discovery v5
discv5-bootstrap-node Text-encoded ENR for bootstrap node. Used when connecting to the network. Argument may be repeated
discv5-enr-auto-update false Discovery can automatically update its ENR with the IP address
discv5-table-ip-limit 10 Maximum amount of nodes with the same IP in discv5 routing tables
discv5-bucket-ip-limit 2 Maximum amount of nodes with the same IP in discv5 routing table buckets
discv5-bits-per-hop 1 Kademlia's b variable, increase for less hops per lookup

Waku Peer Exchange Config

Name Default Value Description
peer-exchange false Enable waku peer exchange protocol (responder side): true|false
peer-exchange-node Peer multiaddr to send peer exchange requests to. (enables peer exchange protocol requester side)

WebSocket Config

Name Default Value Description
websocket-support false Enable websocket: true|false
websocket-port 8000 WebSocket listening port
websocket-secure-support false Enable secure websocket: true|false
websocket-secure-key-path Secure websocket key path: '/path/to/key.txt'
websocket-secure-cert-path Secure websocket Certificate path: '/path/to/cert.txt'

:::tip To configure your node using the provided configuration options, have a look at the Node Configuration Methods guide. :::