Skip to main content

QRL Node Configuration

The QRL node allows custom configurable settings to be established by user directives. These configuration settings guide how the node functions and allows for custom integration.

Download the full example config file and un-comment options needed, or choose from the example configuration at the bottom of this page.

Configuration Directives

The QRL Node can be configured using a config file (~.qrl/config.yml)saved in the local root QRL directory.

This file allows modification of user configurable directives to be set such as changing the port in which the node listens for incoming transactions.

tip

The node must be restarted to pick up any modifications to the configuration if already running.

QRL Mining Config

This section covers all of the required settings needed to setup and mine QRL on a local node. This will use the local processor of the machine the node is running on.

mining_enabled

Set this to enable mining on the local node. Must also pass a QRL address to the mining_address directive.

DirectiveDefaultDescription
mining_enabledFalseAllows the QRL node to mine blocks on the network

mining_address

DirectiveDefaultDescription
mining_addressNoneAddress of the wallet to mine to (where mining rewards will be sent upon winning a block)

mining_thread_count

DirectiveDefaultDescription
mining_thread_count00 to auto detect thread count based on CPU/GPU number of processors

Mining Config Example

##======================================
## Mining Configuration
##======================================
mining_enabled: False
mining_address: 'Q01050040b1f8b6e87e3c114f61f921f25b9e392f5ae90b7a1e8bbc0551dabd23c76abf27c3f508'
mining_thread_count: 0

Ephemeral Config

Ephemeral messaging configuration details are shown below.

This function is still in development and may change at a later date

accept_ephemeral

Set this to true to enable ephemeral traffic on the node.

DirectiveDefaultDescription
accept_ephemeralTrueAllow ephemeral traffic

outgoing_message_expiry

Set the time before outgoing messages expire.

DirectiveDefaultDescription
outgoing_message_expiry90Outgoing message expires after XX (90) seconds

Ephemeral Config Example

##======================================
## Ephemeral Configuration
##======================================
accept_ephemeral: True
outgoing_message_expiry: 90

P2P Config

Configure the Peer to Peer settings.

max_redundant_connections

DirectiveDefaultDescription
max_redundant_connections5Number of connections allowed from nodes having same IP

enable_peer_discovery

If set to False node will only connect to the list of peers given in the peer_list directive.

DirectiveDefaultDescription
enable_peer_discoveryTrueAllows to discover new peers from the connected peers

peer_list

List of reachable peers to connect P2P functions. The default node list is managed and operated by the QRL foundation.

DirectiveDefaultDescription
peer_list35.178.79.137 35.177.182.85 18.130.119.29 18.130.25.64List of available peers with open public API ports

p2p_local_port

Local P2P port

DirectiveDefaultDescription
p2p_local_port19000Locally bound port the node will listen on for a connection

p2p_public_port

Public P2P port forwarding connections to the server.

Port Forwarding

May require additional firewall port forward settings depending on the network configuration.

DirectiveDefaultDescription
p2p_public_port19000Public port forwarding connections to server

p2p_q_size

DirectiveDefaultDescription
p2p_q_size10000

peer_rate_limit

Maximum number of messages that can be sent between peers.

DirectiveDefaultDescription
peer_rate_limit500Max Number of messages per minute per peer

ban_minutes

Number of minutes to ban offending peer IP addresses.

DirectiveDefaultDescription
ban_minutes20Allows to ban a peer's IP who is breaking protocol

monitor_connections_interval

DirectiveDefaultDescription
monitor_connections_interval30Monitor connection every 30 seconds

max_peers_limit

Maximum number of allowed peers to connect.

DirectiveDefaultDescription
max_peers_limit100Number of allowed peers

ntp_refresh

Refresh interval for syncing to NTP servers.

DirectiveDefaultDescription
ntp_refresh12Refresh NTP every (12) hours

ntp_request_timeout

Timeout for unavailable network or NTP server.

DirectiveDefaultDescription
ntp_request_timeout10seconds before accepting NTP timeout
ntp_servers

List of NTP servers for the node to use

DirectiveDefaultDescription
ntp_servers'pool.ntp.org' 'ntp.ubuntu.com'Default NTP servers to synchronize clocks to

chain_state_timeout

DirectiveDefaultDescription
chain_state_timeout180

chain_state_broadcast_period

DirectiveDefaultDescription
chain_state_broadcast_period180must be less than ping_timeout

transaction_pool_size

DirectiveDefaultDescription
transaction_pool_size25000

transaction_minimum_fee

Minimum fee allowed by the node to be accepted into a block.

DirectiveDefaultDescription
transaction_minimum_fee1000000000in shor int(0 * dev.shor_per_quanta)

pending_transaction_pool_size

DirectiveDefaultDescription
pending_transaction_pool_size750001% of the pending_transaction_pool will be reserved for moving stale txn

pending_transaction_pool_reserve

DirectiveDefaultDescription
pending_transaction_pool_reserve75int(self.pending_transaction_pool_size * 0.01)

stale_transaction_threshold

Threshold before considering a transaction stale and rejecting.

DirectiveDefaultDescription
stale_transaction_threshold1515 blocks threshold

P2P Config Example

##======================================
## PEER Configuration
##======================================
max_redundant_connections: 5
enable_peer_discovery: True
peer_list:
- 35.178.79.137
- 35.177.182.85
- 18.130.119.29
- 18.130.25.64
p2p_local_port: 19000
p2p_public_port: 19000
p2p_q_size: 10000
peer_rate_limit: 500
ban_minutes: 20
monitor_connections_interval: 30
max_peers_limit: 100
ntp_refresh: 12
ntp_request_timeout: 10
ntp_servers:
- 'pool.ntp.org'
- 'ntp.ubuntu.com'
chain_state_timeout: 180
chain_state_broadcast_period: 180
transaction_pool_size: 25000
transaction_minimum_fee: 1000000000
pending_transaction_pool_size: 75000
pending_transaction_pool_reserve: 75
stale_transaction_threshold: 15

Admin API Config

admin_api_enabled

DirectiveDefaultDescription
admin_api_enabledfalse

admin_api_host

DirectiveDefaultDescription
admin_api_host"127.0.0.1"

admin_api_port

DirectiveDefaultDescription
admin_api_port19008

admin_api_threads

DirectiveDefaultDescription
admin_api_threads1

admin_api_max_concurrent_rpc

DirectiveDefaultDescription
admin_api_max_concurrent_rpc100

Admin Config Example

##======================================
## ADMIN API CONFIGURATION
##======================================
admin_api_enabled: False
admin_api_host: "127.0.0.1"
admin_api_port: 19008
admin_api_threads: 1
admin_api_max_concurrent_rpc: 100

Public API Config

public_api_enabled

DirectiveDefaultDescription
public_api_enabledTrueEnable the public API

public_api_host

DirectiveDefaultDescription
public_api_host"0.0.0.0"

public_api_port

DirectiveDefaultDescription
public_api_port19009

public_api_threads

DirectiveDefaultDescription
public_api_threads1

public_api_max_concurrent_rpc

DirectiveDefaultDescription
public_api_max_concurrent_rpc100

Public API Config Example

##======================================
## PUBLIC API CONFIGURATION
##======================================
public_api_enabled: True
public_api_host: "0.0.0.0"
public_api_port: 19009
public_api_threads: 1
public_api_max_concurrent_rpc: 100

Mining API Config

mining_api_enabled

DirectiveDefaultDescription
mining_api_enabledFalse

mining_api_host

DirectiveDefaultDescription
mining_api_host"127.0.0.1"

mining_api_port

DirectiveDefaultDescription
mining_api_port19007

mining_api_threads

DirectiveDefaultDescription
mining_api_threads1

mining_api_max_concurrent_rpc

DirectiveDefaultDescription
mining_api_max_concurrent_rpc100

Mining API Config Example

##======================================
## Mining API Configuration
##======================================
mining_api_enabled: False
mining_api_host: "127.0.0.1"
mining_api_port: 19007
mining_api_threads: 1
mining_api_max_concurrent_rpc: 100

Debug API Config

debug_api_enabled

DirectiveDefaultDescription
debug_api_enabledFalse

debug_api_host

DirectiveDefaultDescription
debug_api_host"127.0.0.1"

debug_api_port

DirectiveDefaultDescription
debug_api_port52134

debug_api_threads

DirectiveDefaultDescription
debug_api_threads1

debug_api_max_concurrent_rpc

DirectiveDefaultDescription
debug_api_max_concurrent_rpc100

Debug API Config Example

##======================================
## DEBUG API CONFIGURATION
##======================================
debug_api_enabled: False
debug_api_host: "127.0.0.1"
debug_api_port: 52134
debug_api_threads: 1
debug_api_max_concurrent_rpc: 100

GRPC Proxy Config

grpc_proxy_host

DirectiveDefaultDescription
grpc_proxy_host"127.0.0.1"

grpc_proxy_port

DirectiveDefaultDescription
grpc_proxy_port18090

GRPC Proxy Config Example

##======================================
## GRPC PROXY CONFIGURATION
##======================================
grpc_proxy_host: "127.0.0.1"
grpc_proxy_port: 18090

Wallet Daemon Config

public_api_server

DirectiveDefaultDescription
public_api_server"127.0.0.1:19009"

wallet_daemon_host

DirectiveDefaultDescription
wallet_daemon_host"127.0.0.1"

wallet_daemon_port

DirectiveDefaultDescription
wallet_daemon_port18091

number_of_slaves

DirectiveDefaultDescription
number_of_slaves3

Wallet Daemon Config Example

##======================================
## WALLET DAEMON CONFIGURATION
##======================================
public_api_server: "127.0.0.1:19009"
wallet_daemon_host: "127.0.0.1"
wallet_daemon_port: 18091
number_of_slaves: 3

Wallet API Config

wallet_api_host

DirectiveDefaultDescription
wallet_api_host"127.0.0.1"

wallet_api_port

DirectiveDefaultDescription
wallet_api_port19010

wallet_api_threads

DirectiveDefaultDescription
wallet_api_threads1

wallet_api_max_concurrent_rpc

DirectiveDefaultDescription
wallet_api_max_concurrent_rpc100

Wallet API Config Example

##======================================
## WALLET API CONFIGURATION
##======================================
wallet_api_host: "127.0.0.1"
wallet_api_port: 19010
wallet_api_threads: 1
wallet_api_max_concurrent_rpc: 100

Example QRL Config

## qrl conf.yml file
##
## This is the configuration file for qrl.
## It is typically found in the ~/.qrl/ directory
## Default settings are shown below.
## All commands begin with single(#)
## Un-comment and adjust to suit your needs

##======================================
## Mining Configuration
##======================================
# mining_enabled: False
# mining_address: 'Q01050040b1f8b6e87e3c114f61f921f25b9e392f5ae90b7a1e8bbc0551dabd23c76abf27c3f508'
# mining_thread_count: 0 # 0 to auto detect thread count based on CPU/GPU number of processors

##======================================
## Ephemeral Configuration
##======================================
# accept_ephemeral: True

##======================================
## PEER Configuration
##======================================
# max_redundant_connections: 5 # Number of connections allowed from nodes having same IP
# enable_peer_discovery: True # Allows to discover new peers from the connected peers
# peer_list:
# - 35.178.79.137
# - 35.177.182.85
# - 18.130.119.29
# - 18.130.25.64
# p2p_local_port: 19000
# p2p_public_port: 19000
# peer_rate_limit: 500 # Max Number of messages per minute per peer
# p2p_q_size: 10000
# outgoing_message_expiry: 90 # Outgoing message expires after 90 seconds
# ntp_servers:
# - pool.ntp.org
# - ntp.ubuntu.com
# ntp_refresh: 12 * 60 * 60 # 12 hours
# ntp_request_timeout: 10 # 10 seconds NTP timeout
# ban_minutes: 20 # Allows to ban a peer's IP who is breaking protocol
# monitor_connections_interval: 30
# max_peers_limit: 100 # Number of allowed peers
# chain_state_timeout: 180
# chain_state_broadcast_period: 30 # must be less than ping_timeout
# transaction_minimum_fee: 1000000000
# transaction_pool_size: 25000
# pending_transaction_pool_size: 75000
# pending_transaction_pool_reserve: 75
# stale_transaction_threshold: 15 # 15 Blocks

##======================================
## ADMIN API CONFIGURATION
##======================================
# admin_api_enabled: False
# admin_api_host: "127.0.0.1"
# admin_api_port: 19008
# admin_api_threads: 1
# admin_api_max_concurrent_rpc: 100

##======================================
## PUBLIC API CONFIGURATION
##======================================
# public_api_enabled: True
# public_api_host: "127.0.0.1"
# public_api_port: 19009
# public_api_threads: 1
# public_api_max_concurrent_rpc: 100

##======================================
## MINING API CONFIGURATION
##======================================
# mining_api_enabled: False
# mining_api_host: "127.0.0.1"
# mining_api_port: 19007
# mining_api_threads: 1
# mining_api_max_concurrent_rpc: 100

##======================================
## DEBUG API CONFIGURATION
##======================================
# debug_api_enabled: False
# debug_api_host: "127.0.0.1"
# debug_api_port: 52134
# debug_api_threads: 1
# debug_api_max_concurrent_rpc: 100

##======================================
## GRPC PROXY CONFIGURATION
##======================================
# grpc_proxy_host: "127.0.0.1"
# grpc_proxy_port: 18090

##======================================
## WALLET DAEMON CONFIGURATION
##======================================
# public_api_server: "127.0.0.1:19009"
# wallet_daemon_host: "127.0.0.1"
# wallet_daemon_port: 18091
# number_of_slaves: 3

##======================================
## WALLET API CONFIGURATION
##======================================
# wallet_api_host: "127.0.0.1"
# wallet_api_port: 19010
# wallet_api_threads: 1
# wallet_api_max_concurrent_rpc: 100