Introduction
xelis_daemon is the core service that runs the XELIS blockchain on your machine. It is responsible for maintaining a full copy of the distributed ledger, validating incoming blocks, and relaying transactions across the network.
When the daemon is running, your node actively participates in the XELIS peer-to-peer system, helping to secure the network and keep it synchronized in real time.
The daemon also provides the foundation for other components, such as the wallet and the miner, by exposing an interface through which they can interact with the blockchain. Running the daemon is an essential step for users who want to operate a full node, mine directly on the network, or simply ensure they are working with the most up-to-date state of the chain.
Running a local node is highly recommended, as it ensures you remain fully trustless and independent of third parties, enhances your privacy, and helps spread and secure the XELIS network.
Configuration
XELIS daemon node. Synchronizes and validates the blockchain, participates in the P2P network, and serves RPC and mining work.
disable-getwork-server
Disable the GetWork websocket server used by miners
| Field | Value |
|---|---|
| Usage | --disable-getwork-server |
| Required | No |
| Value | No |
| Value name | disable-getwork-server |
| Default value | false |
| Possible values | true, false |
getwork-rate-limit-ms
Minimum delay, in milliseconds, between GetWork job notifications.
New jobs can be produced quickly when the mempool changes. Use this to coalesce updates before notifying miners. Set to 0 to send every new job immediately.
| Field | Value |
|---|---|
| Usage | --getwork-rate-limit-ms <getwork-rate-limit-ms> |
| Required | No |
| Value | Yes |
| Value name | getwork-rate-limit-ms |
| Default value | 500 |
getwork-notify-job-concurrency
Maximum number of miners notified concurrently for each new job.
Defaults to the detected CPU parallelism. Set to 0 to remove the limit and spawn one notification task per miner.
| Field | Value |
|---|---|
| Usage | --getwork-notify-job-concurrency <getwork-notify-job-concurrency> |
| Required | No |
| Value | Yes |
| Value name | getwork-notify-job-concurrency |
| Default value | 32 |
enable
Enable the Prometheus metrics endpoint.
The endpoint is served by the RPC server, so RPC must also be enabled.
| Field | Value |
|---|---|
| Usage | --enable-prometheus |
| Required | No |
| Value | No |
| Value name | ENABLE |
| Default value | false |
| Possible values | true, false |
prometheus-route
HTTP route used to expose Prometheus metrics
| Field | Value |
|---|---|
| Usage | --prometheus-route <prometheus-route> |
| Required | No |
| Value | Yes |
| Value name | prometheus-route |
| Default value | /metrics |
disable-rpc-server
Disable the RPC server.
This also disables GetWork and Prometheus because both are served through the RPC server.
| Field | Value |
|---|---|
| Usage | --disable-rpc-server |
| Required | No |
| Value | No |
| Value name | disable-rpc-server |
| Default value | false |
| Possible values | true, false |
rpc-bind-address
Address and port where the RPC server listens for HTTP and websocket requests
| Field | Value |
|---|---|
| Usage | --rpc-bind-address <rpc-bind-address> |
| Required | No |
| Value | Yes |
| Value name | rpc-bind-address |
| Default value | 0.0.0.0:8080 |
rpc-threads
Number of worker threads used by the RPC HTTP server.
Defaults to the detected CPU parallelism.
| Field | Value |
|---|---|
| Usage | --rpc-threads <rpc-threads> |
| Required | No |
| Value | Yes |
| Value name | rpc-threads |
| Default value | 32 |
rpc-notify-events-concurrency
Maximum number of concurrent RPC event notification tasks.
Defaults to the detected CPU parallelism. Set to 0 to remove the concurrency limit.
| Field | Value |
|---|---|
| Usage | --rpc-notify-events-concurrency <rpc-notify-events-concurrency> |
| Required | No |
| Value | Yes |
| Value name | rpc-notify-events-concurrency |
| Default value | 32 |
rpc-json-rpc-batch-limit
Maximum number of calls accepted in one JSON-RPC batch request.
This limits large batches to reduce denial-of-service risk.
| Field | Value |
|---|---|
| Usage | --rpc-json-rpc-batch-limit <rpc-json-rpc-batch-limit> |
| Required | No |
| Value | Yes |
| Value name | rpc-json-rpc-batch-limit |
| Default value | 20 |
rpc-max-websocket-sessions
Maximum number of websocket sessions accepted by each RPC websocket server
| Field | Value |
|---|---|
| Usage | --rpc-max-websocket-sessions <rpc-max-websocket-sessions> |
| Required | No |
| Value | Yes |
| Value name | rpc-max-websocket-sessions |
| Default value | 1024 |
rpc-websocket-session-channel-size
Maximum number of outbound messages queued per websocket session
| Field | Value |
|---|---|
| Usage | --rpc-websocket-session-channel-size <rpc-websocket-session-channel-size> |
| Required | No |
| Value | Yes |
| Value name | rpc-websocket-session-channel-size |
| Default value | 256 |
rpc-websocket-session-work-queue-size
Maximum number of inbound RPC work items queued per websocket session
| Field | Value |
|---|---|
| Usage | --rpc-websocket-session-work-queue-size <rpc-websocket-session-work-queue-size> |
| Required | No |
| Value | Yes |
| Value name | rpc-websocket-session-work-queue-size |
| Default value | 64 |
rpc-cors-allowed-origins
Browser origins allowed to call the RPC server through CORS.
Leave empty to avoid adding CORS allow-origin rules.
| Field | Value |
|---|---|
| Usage | --rpc-cors-allowed-origins <rpc-cors-allowed-origins> |
| Required | No |
| Value | Yes |
| Value name | rpc-cors-allowed-origins |
| Multiple | Yes |
rpc-allow-private-methods
Allow private RPC methods intended only for trusted environments.
Do not expose this on a public RPC endpoint.
| Field | Value |
|---|---|
| Usage | --rpc-allow-private-methods |
| Required | No |
| Value | No |
| Value name | rpc-allow-private-methods |
| Default value | false |
| Possible values | true, false |
rpc-allow-contract-vm-executions
Allow RPC methods to execute the contract VM against current chain state.
Currently used by simulate_contract_invoke.
| Field | Value |
|---|---|
| Usage | --rpc-allow-contract-vm-executions |
| Required | No |
| Value | No |
| Value name | rpc-allow-contract-vm-executions |
| Default value | false |
| Possible values | true, false |
p2p-proxy-address
Proxy address used for outbound P2P peer connections.
Also set p2p-proxy so the daemon knows which proxy protocol to use.
| Field | Value |
|---|---|
| Usage | --p2p-proxy-address <p2p-proxy-address> |
| Required | No |
| Value | Yes |
| Value name | p2p-proxy-address |
p2p-proxy
Proxy protocol used for outbound P2P peer connections
| Field | Value |
|---|---|
| Usage | --p2p-proxy <p2p-proxy> |
| Required | No |
| Value | Yes |
| Value name | p2p-proxy |
| Possible values | socks5, socks4 |
p2p-proxy-username
Username used to authenticate to the configured P2P proxy
| Field | Value |
|---|---|
| Usage | --p2p-proxy-username <p2p-proxy-username> |
| Required | No |
| Value | Yes |
| Value name | p2p-proxy-username |
p2p-proxy-password
Password used to authenticate to the configured P2P proxy
| Field | Value |
|---|---|
| Usage | --p2p-proxy-password <p2p-proxy-password> |
| Required | No |
| Value | Yes |
| Value name | p2p-proxy-password |
tag
Optional label advertised by this node on the P2P network
| Field | Value |
|---|---|
| Usage | --tag <TAG> |
| Required | No |
| Value | Yes |
| Value name | TAG |
p2p-bind-address
Address and port where the P2P server listens for incoming peers
| Field | Value |
|---|---|
| Usage | --p2p-bind-address <p2p-bind-address> |
| Required | No |
| Value | Yes |
| Value name | p2p-bind-address |
| Default value | 0.0.0.0:2125 |
max_peers
Maximum total number of connected P2P peers
| Field | Value |
|---|---|
| Usage | --max-peers <MAX_PEERS> |
| Required | No |
| Value | Yes |
| Value name | MAX_PEERS |
| Default value | 32 |
p2p-max-outgoing-peers
Maximum number of outbound P2P peer connections
| Field | Value |
|---|---|
| Usage | --p2p-max-outgoing-peers <p2p-max-outgoing-peers> |
| Required | No |
| Value | Yes |
| Value name | p2p-max-outgoing-peers |
| Default value | 8 |
priority_nodes
Priority peer addresses to connect to when P2P starts.
Priority peers are attempted in addition to normal peer discovery and are not continuously reconnected unless they are also exclusive peers.
| Field | Value |
|---|---|
| Usage | --priority-nodes <PRIORITY_NODES> |
| Required | No |
| Value | Yes |
| Value name | PRIORITY_NODES |
| Multiple | Yes |
exclusive_nodes
Exclusive peer addresses that replace normal peer discovery.
Connections to exclusive peers are maintained after disconnects. When at least one exclusive peer is configured, seed nodes and non-exclusive inbound peers are not accepted.
| Field | Value |
|---|---|
| Usage | --exclusive-nodes <EXCLUSIVE_NODES> |
| Required | No |
| Value | Yes |
| Value name | EXCLUSIVE_NODES |
| Multiple | Yes |
disable-p2p-server
Disable the P2P server.
The daemon will not accept peer connections or participate in network propagation.
| Field | Value |
|---|---|
| Usage | --disable-p2p-server |
| Required | No |
| Value | No |
| Value name | disable-p2p-server |
| Default value | false |
| Possible values | true, false |
allow_fast_sync
Allow fast sync from a bootstrapped chain state.
Fast sync does not store all historical blocks or transactions and does not locally verify the full history. Use only with trusted peers.
| Field | Value |
|---|---|
| Usage | --allow-fast-sync |
| Required | No |
| Value | No |
| Value name | ALLOW_FAST_SYNC |
| Default value | false |
| Possible values | true, false |
allow_boost_sync
Allow boosted chain sync by requesting blocks in parallel.
This can improve sync speed, but requests blocks before previous blocks have been validated.
| Field | Value |
|---|---|
| Usage | --allow-boost-sync |
| Required | No |
| Value | No |
| Value name | ALLOW_BOOST_SYNC |
| Default value | false |
| Possible values | true, false |
allow_priority_blocks
Forward blocks received from priority peers before local verification.
This reduces propagation latency for trusted priority peers, such as a pool operating several nodes in different regions.
| Field | Value |
|---|---|
| Usage | --allow-priority-blocks |
| Required | No |
| Value | No |
| Value name | ALLOW_PRIORITY_BLOCKS |
| Default value | false |
| Possible values | true, false |
max_chain_response_size
Maximum number of blocks returned in one chain sync response.
Lower values reduce memory and bandwidth spikes. Higher values can help well-provisioned nodes sync peers faster.
| Field | Value |
|---|---|
| Usage | --max-chain-response-size <MAX_CHAIN_RESPONSE_SIZE> |
| Required | No |
| Value | Yes |
| Value name | MAX_CHAIN_RESPONSE_SIZE |
| Default value | 4096 |
disable_ip_sharing
Ask peers not to share this node’s IP address.
This helps keep the node out of peer lists and RPC peer responses, but it can reduce incoming peer discovery.
| Field | Value |
|---|---|
| Usage | --disable-ip-sharing |
| Required | No |
| Value | No |
| Value name | DISABLE_IP_SHARING |
| Default value | false |
| Possible values | true, false |
p2p-concurrency-task-count-limit
Maximum number of concurrent tasks accepting new P2P connections
| Field | Value |
|---|---|
| Usage | --p2p-concurrency-task-count-limit <p2p-concurrency-task-count-limit> |
| Required | No |
| Value | Yes |
| Value name | p2p-concurrency-task-count-limit |
| Default value | 4 |
p2p-on-dh-key-change
Action to take when a peer’s stored Diffie-Hellman key changes.
By default the key change is accepted and the stored key is updated.
| Field | Value |
|---|---|
| Usage | --p2p-on-dh-key-change <p2p-on-dh-key-change> |
| Required | No |
| Value | Yes |
| Value name | p2p-on-dh-key-change |
| Default value | ignore |
| Possible values | warn, reject, ignore |
p2p-dh-private-key
Static P2P Diffie-Hellman private key.
When unset, a fresh key is generated. Reusing a key preserves the same public identity across restarts and avoids peer re-verification, but it can also make the node easier to track across IP changes.
| Field | Value |
|---|---|
| Usage | --p2p-dh-private-key <p2p-dh-private-key> |
| Required | No |
| Value | Yes |
| Value name | p2p-dh-private-key |
p2p-stream-concurrency
Maximum number of concurrent tasks used to process P2P streams.
Defaults to the detected CPU parallelism. Set to 0 to remove the concurrency limit.
| Field | Value |
|---|---|
| Usage | --p2p-stream-concurrency <p2p-stream-concurrency> |
| Required | No |
| Value | Yes |
| Value name | p2p-stream-concurrency |
| Default value | 32 |
p2p-temp-ban-duration
Duration of a temporary peer ban after the fail-count limit is reached
| Field | Value |
|---|---|
| Usage | --p2p-temp-ban-duration <p2p-temp-ban-duration> |
| Required | No |
| Value | Yes |
| Value name | p2p-temp-ban-duration |
| Default value | 15m |
p2p-outgoing-connection-timeout
Timeout used when initiating outbound P2P peer connections
| Field | Value |
|---|---|
| Usage | --p2p-outgoing-connection-timeout <p2p-outgoing-connection-timeout> |
| Required | No |
| Value | Yes |
| Value name | p2p-outgoing-connection-timeout |
| Default value | 30s |
p2p-fail-count-limit
Number of peer failures allowed before applying a temporary ban
| Field | Value |
|---|---|
| Usage | --p2p-fail-count-limit <p2p-fail-count-limit> |
| Required | No |
| Value | Yes |
| Value name | p2p-fail-count-limit |
| Default value | 50 |
disable-p2p-reexecute-blocks-on-sync
Disable re-execution of orphaned blocks during P2P chain sync.
When enabled, orphaned blocks are not removed and re-added to trigger execution again.
| Field | Value |
|---|---|
| Usage | --disable-p2p-reexecute-blocks-on-sync |
| Required | No |
| Value | No |
| Value name | disable-p2p-reexecute-blocks-on-sync |
| Default value | false |
| Possible values | true, false |
p2p-block-propagation-log-level
Log level used for P2P block propagation messages
| Field | Value |
|---|---|
| Usage | --p2p-block-propagation-log-level <p2p-block-propagation-log-level> |
| Required | No |
| Value | Yes |
| Value name | p2p-block-propagation-log-level |
| Default value | debug |
| Possible values | off, error, warn, info, debug, trace |
disable-p2p-fetching-txs-propagated
Disable fetching transactions announced through P2P propagation.
The daemon will ignore propagated transaction announcements, which can leave the mempool unsynchronized on smaller networks.
| Field | Value |
|---|---|
| Usage | --disable-p2p-fetching-txs-propagated |
| Required | No |
| Value | No |
| Value name | disable-p2p-fetching-txs-propagated |
| Default value | false |
| Possible values | true, false |
p2p-handle-peer-packets-in-dedicated-task
Handle eligible peer packets in dedicated tasks.
Order-dependent packets still use a sequential executor. This can reduce latency during heavy network activity, but may increase resource usage under high load.
| Field | Value |
|---|---|
| Usage | --p2p-handle-peer-packets-in-dedicated-task |
| Required | No |
| Value | No |
| Value name | p2p-handle-peer-packets-in-dedicated-task |
| Default value | false |
| Possible values | true, false |
enable-p2p-compression
Enable Snappy compression for large P2P packets.
Only packets larger than 1 KiB are compressed. This can reduce bandwidth usage at the cost of additional CPU work.
| Field | Value |
|---|---|
| Usage | --enable-p2p-compression |
| Required | No |
| Value | No |
| Value name | enable-p2p-compression |
| Default value | false |
| Possible values | true, false |
disable-fast-sync-support
Disable serving fast sync data to other nodes
| Field | Value |
|---|---|
| Usage | --disable-fast-sync-support |
| Required | No |
| Value | No |
| Value name | disable-fast-sync-support |
| Default value | false |
| Possible values | true, false |
p2p-sync-from-priority-only
Sync chain data only from configured priority peers
| Field | Value |
|---|---|
| Usage | --p2p-sync-from-priority-only |
| Required | No |
| Value | No |
| Value name | p2p-sync-from-priority-only |
| Default value | false |
| Possible values | true, false |
p2p-reorg-from-priority-only
During reorganizations, accept blocks only from configured priority peers
| Field | Value |
|---|---|
| Usage | --p2p-reorg-from-priority-only |
| Required | No |
| Value | No |
| Value name | p2p-reorg-from-priority-only |
| Default value | false |
| Possible values | true, false |
min_fee_per_kb
Minimum transaction fee per kB accepted by the mempool.
The value is expressed in atomic units.
| Field | Value |
|---|---|
| Usage | --mempool-min-fee-per-kb <MIN_FEE_PER_KB> |
| Required | No |
| Value | Yes |
| Value name | MIN_FEE_PER_KB |
| Default value | 10000 |
tx_expiration_time
Maximum time a transaction may stay in the mempool before expiration
| Field | Value |
|---|---|
| Usage | --mempool-tx-expiration-time <TX_EXPIRATION_TIME> |
| Required | No |
| Value | Yes |
| Value name | TX_EXPIRATION_TIME |
| Default value | 1day |
max_memory_usage
Maximum memory the mempool may use before evicting transactions.
Accepts raw bytes or human-readable values such as 800 MB or 1.5 GiB.
| Field | Value |
|---|---|
| Usage | --mempool-max-memory-usage <MAX_MEMORY_USAGE> |
| Required | No |
| Value | Yes |
| Value name | MAX_MEMORY_USAGE |
| Default value | 800000000 |
dir_path
Base directory used for blockchain storage.
The network name is appended to this path. The path must end with / or \.
| Field | Value |
|---|---|
| Usage | --dir-path <DIR_PATH> |
| Required | No |
| Value | Yes |
| Value name | DIR_PATH |
simulator
Enable simulator mode with the selected simulator settings.
Simulator mode skips proof-of-work verification and generates blocks at the configured block interval.
| Field | Value |
|---|---|
| Usage | --simulator <SIMULATOR> |
| Required | No |
| Value | Yes |
| Value name | SIMULATOR |
skip_pow_verification
Skip proof-of-work verification.
This is unsafe for production nodes.
| Field | Value |
|---|---|
| Usage | --skip-pow-verification |
| Required | No |
| Value | No |
| Value name | SKIP_POW_VERIFICATION |
| Default value | false |
| Possible values | true, false |
enable_contracts_logging
Print contract logs while contracts execute
| Field | Value |
|---|---|
| Usage | --enable-contracts-logging |
| Required | No |
| Value | No |
| Value name | ENABLE_CONTRACTS_LOGGING |
| Default value | false |
| Possible values | true, false |
auto_prune_keep_n_blocks
Enable automatic pruning while keeping at least this many blocks below the tip.
Pruning runs after new blocks are applied.
| Field | Value |
|---|---|
| Usage | --auto-prune-keep-n-blocks <AUTO_PRUNE_KEEP_N_BLOCKS> |
| Required | No |
| Value | Yes |
| Value name | AUTO_PRUNE_KEEP_N_BLOCKS |
skip_block_template_txs_verification
Skip transaction verification while building block templates
| Field | Value |
|---|---|
| Usage | --skip-block-template-txs-verification |
| Required | No |
| Value | No |
| Value name | SKIP_BLOCK_TEMPLATE_TXS_VERIFICATION |
| Default value | false |
| Possible values | true, false |
genesis_block_hex
Hex-encoded genesis block used in development networks
| Field | Value |
|---|---|
| Usage | --genesis-block-hex <GENESIS_BLOCK_HEX> |
| Required | No |
| Value | Yes |
| Value name | GENESIS_BLOCK_HEX |
checkpoints
Block hash checkpoints that prevent rewinding below known states
| Field | Value |
|---|---|
| Usage | --checkpoints <CHECKPOINTS> |
| Required | No |
| Value | Yes |
| Value name | CHECKPOINTS |
| Multiple | Yes |
txs_verification_threads_count
Number of threads used for transaction verification.
Defaults to the detected CPU parallelism. Set to 1 to run on the main verification thread.
| Field | Value |
|---|---|
| Usage | --txs-verification-threads-count <TXS_VERIFICATION_THREADS_COUNT> |
| Required | No |
| Value | Yes |
| Value name | TXS_VERIFICATION_THREADS_COUNT |
| Default value | 32 |
pre_verify_block_threads_count
Number of threads used for block pre-verification.
Defaults to the detected CPU parallelism.
| Field | Value |
|---|---|
| Usage | --pre-verify-block-threads-count <PRE_VERIFY_BLOCK_THREADS_COUNT> |
| Required | No |
| Value | Yes |
| Value name | PRE_VERIFY_BLOCK_THREADS_COUNT |
| Default value | 32 |
check_db_integrity
Check database integrity during chain initialization.
This scans versioned data to ensure no pointer or version is above the current topoheight. It can take a long time on large databases and is skipped when recovery mode is enabled.
| Field | Value |
|---|---|
| Usage | --check-db-integrity |
| Required | No |
| Value | No |
| Value name | CHECK_DB_INTEGRITY |
| Default value | false |
| Possible values | true, false |
recovery_mode
Start the daemon in recovery mode.
Recovery mode skips database integrity checks and startup pre-computations such as tip difficulty and stable height.
| Field | Value |
|---|---|
| Usage | --recovery-mode |
| Required | No |
| Value | No |
| Value name | RECOVERY_MODE |
| Default value | false |
| Possible values | true, false |
flush_db_every_n_blocks
Flush storage to disk every N blocks, based on topoheight.
With RocksDB, this also compacts pending changes.
| Field | Value |
|---|---|
| Usage | --flush-db-every-n-blocks <FLUSH_DB_EVERY_N_BLOCKS> |
| Required | No |
| Value | Yes |
| Value name | FLUSH_DB_EVERY_N_BLOCKS |
disable_zkp_cache
Disable the transaction zero-knowledge proof cache.
The cache is enabled by default to avoid verifying the same proofs more than once.
| Field | Value |
|---|---|
| Usage | --disable-zkp-cache |
| Required | No |
| Value | No |
| Value name | DISABLE_ZKP_CACHE |
| Default value | false |
| Possible values | true, false |
concurrency
Maximum concurrency for general daemon tasks.
Defaults to the detected CPU parallelism.
| Field | Value |
|---|---|
| Usage | --concurrency <CONCURRENCY> |
| Required | No |
| Value | Yes |
| Value name | CONCURRENCY |
| Default value | 32 |
enable_snapshot_on_reorg
Enable snapshot buffering during DAG reorganizations.
Before applying a reorg, the daemon snapshots the current state, applies the reorg through an in-memory buffer, then flushes the final state to storage.
| Field | Value |
|---|---|
| Usage | --enable-snapshot-on-reorg |
| Required | No |
| Value | No |
| Value name | ENABLE_SNAPSHOT_ON_REORG |
| Default value | false |
| Possible values | true, false |
sled-cache-size
Set LRUCache size (0 = disabled)
| Field | Value |
|---|---|
| Usage | --sled-cache-size <sled-cache-size> |
| Required | No |
| Value | Yes |
| Value name | sled-cache-size |
| Default value | 1024 |
sled-internal-cache-size
DB cache size in bytes
| Field | Value |
|---|---|
| Usage | --sled-internal-cache-size <sled-internal-cache-size> |
| Required | No |
| Value | Yes |
| Value name | sled-internal-cache-size |
| Default value | 67108864 |
sled-internal-db-mode
Internal DB mode to use
| Field | Value |
|---|---|
| Usage | --sled-internal-db-mode <sled-internal-db-mode> |
| Required | No |
| Value | Yes |
| Value name | sled-internal-db-mode |
| Default value | low-space |
| Possible values | high-throughput, low-space |
rocksdb-background-threads
How many background threads RocksDB should use for parallelism. Default set to the available parallelism detected
| Field | Value |
|---|---|
| Usage | --rocksdb-background-threads <rocksdb-background-threads> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-background-threads |
| Default value | 32 |
rocksdb-max-background-jobs
Sets maximum number of concurrent background jobs (compactions and flushes). Default set to the available parallelism detected
| Field | Value |
|---|---|
| Usage | --rocksdb-max-background-jobs <rocksdb-max-background-jobs> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-max-background-jobs |
| Default value | 32 |
rocksdb-max-subcompaction-jobs
Sets maximum number of threads that will concurrently perform a compaction job by breaking it into multiple, smaller ones that are run simultaneously. Default set to the available parallelism detected
| Field | Value |
|---|---|
| Usage | --rocksdb-max-subcompaction-jobs <rocksdb-max-subcompaction-jobs> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-max-subcompaction-jobs |
| Default value | 32 |
rocksdb-low-priority-background-threads
Sets the size of the low priority thread pool that can be used to prevent compactions from stalling memtable flushes. Default set to the available parallelism detected
| Field | Value |
|---|---|
| Usage | --rocksdb-low-priority-background-threads <rocksdb-low-priority-background-threads> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-low-priority-background-threads |
| Default value | 32 |
rocksdb-max-open-files
Sets the number of open files that can be used by the DB. You may need to increase this if your database has a large working set. Value -1 means files opened are always kept open
| Field | Value |
|---|---|
| Usage | --rocksdb-max-open-files <rocksdb-max-open-files> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-max-open-files |
| Default value | 256 |
rocksdb-keep-max-log-files
Specify the maximal number of info log files to be kept
| Field | Value |
|---|---|
| Usage | --rocksdb-keep-max-log-files <rocksdb-keep-max-log-files> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-keep-max-log-files |
| Default value | 4 |
rocksdb-compression-mode
Compression mode to use for RocksDB
| Field | Value |
|---|---|
| Usage | --rocksdb-compression-mode <rocksdb-compression-mode> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-compression-mode |
| Default value | snappy |
| Possible values | none, snappy, zlib, bz2, lz4, lz4hc, zstd |
rocksdb-cache-mode
RocksDB block based cache mode to use
| Field | Value |
|---|---|
| Usage | --rocksdb-cache-mode <rocksdb-cache-mode> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-cache-mode |
| Default value | lru |
| Possible values | none, lru, hyper_clock |
rocksdb-cache-size
Size in bytes for the RocksDB block based to cache use if mode is not None
| Field | Value |
|---|---|
| Usage | --rocksdb-cache-size <rocksdb-cache-size> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-cache-size |
| Default value | 67108864 |
rocksdb-write-buffer-size
Write buffer to use for the amount of data to build up in memtables
| Field | Value |
|---|---|
| Usage | --rocksdb-write-buffer-size <rocksdb-write-buffer-size> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-write-buffer-size |
| Default value | 67108864 |
rocksdb-write-buffer-shared
Enforces a limit for a single memtable using the above write buffer size. Disabled by default, each column will have its own buffer
| Field | Value |
|---|---|
| Usage | --rocksdb-write-buffer-shared |
| Required | No |
| Value | No |
| Value name | rocksdb-write-buffer-shared |
| Default value | false |
| Possible values | true, false |
rocksdb-bloom-filter-bits-per-key
Bloom filter bits per key for column families that use a prefix extractor. Higher values reduce false positives but increase memory usage
| Field | Value |
|---|---|
| Usage | --rocksdb-bloom-filter-bits-per-key <rocksdb-bloom-filter-bits-per-key> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-bloom-filter-bits-per-key |
rocksdb-target-file-size-base
Override for target SST file size in bytes. None (default) uses the RocksDB default of 64 MiB
| Field | Value |
|---|---|
| Usage | --rocksdb-target-file-size-base <rocksdb-target-file-size-base> |
| Required | No |
| Value | Yes |
| Value name | rocksdb-target-file-size-base |
rocksdb-disable-compaction-on-flush
Disable compaction on flush. This can be useful to speed up shutdown time at the cost of increased storage usage and potentially slower read performance
| Field | Value |
|---|---|
| Usage | --rocksdb-disable-compaction-on-flush |
| Required | No |
| Value | No |
| Value name | rocksdb-disable-compaction-on-flush |
| Default value | false |
| Possible values | true, false |
use_db_backend
Storage backend used by the daemon.
Existing data is not migrated when switching backends. Select the backend that matches the data directory you intend to use.
| Field | Value |
|---|---|
| Usage | --use-db-backend <USE_DB_BACKEND> |
| Required | No |
| Value | Yes |
| Value name | USE_DB_BACKEND |
| Default value | rocksdb |
| Possible values | sled, rocksdb, memory |
log_level
Minimum log level printed to the terminal
| Field | Value |
|---|---|
| Usage | --log-level <LOG_LEVEL> |
| Required | No |
| Value | Yes |
| Value name | LOG_LEVEL |
| Default value | info |
| Possible values | off, error, warn, info, debug, trace |
file_log_level
Minimum log level written to the log file.
Defaults to the terminal log level.
| Field | Value |
|---|---|
| Usage | --file-log-level <FILE_LOG_LEVEL> |
| Required | No |
| Value | Yes |
| Value name | FILE_LOG_LEVEL |
| Possible values | off, error, warn, info, debug, trace |
disable_file_logging
Disable writing logs to a file
| Field | Value |
|---|---|
| Usage | --disable-file-logging |
| Required | No |
| Value | No |
| Value name | DISABLE_FILE_LOGGING |
| Default value | false |
| Possible values | true, false |
disable_file_log_date_based
Disable date-based log filenames.
When enabled, the log file is named xelis-daemon.log instead of YYYY-MM-DD.xelis-daemon.log.
| Field | Value |
|---|---|
| Usage | --disable-file-log-date-based |
| Required | No |
| Value | No |
| Value name | DISABLE_FILE_LOG_DATE_BASED |
| Default value | false |
| Possible values | true, false |
disable_log_color
Disable colors in terminal logs
| Field | Value |
|---|---|
| Usage | --disable-log-color |
| Required | No |
| Value | No |
| Value name | DISABLE_LOG_COLOR |
| Default value | false |
| Possible values | true, false |
disable_interactive_mode
Disable the interactive terminal prompt.
CLI commands and live prompt updates are unavailable in this mode.
| Field | Value |
|---|---|
| Usage | --disable-interactive-mode |
| Required | No |
| Value | No |
| Value name | DISABLE_INTERACTIVE_MODE |
| Default value | false |
| Possible values | true, false |
auto_compress_logs
Compress rotated log files automatically.
This only applies when file logging is enabled.
| Field | Value |
|---|---|
| Usage | --auto-compress-logs |
| Required | No |
| Value | No |
| Value name | AUTO_COMPRESS_LOGS |
| Default value | false |
| Possible values | true, false |
filename_log
Log filename stored inside logs_path.
Unless date-based filenames are disabled, daily log files are named YYYY-MM-DD.xelis-daemon.log.
| Field | Value |
|---|---|
| Usage | --filename-log <FILENAME_LOG> |
| Required | No |
| Value | Yes |
| Value name | FILENAME_LOG |
| Default value | xelis-daemon.log |
logs_path
Directory where log files are written.
Defaults to logs/. The path must end with / or \.
| Field | Value |
|---|---|
| Usage | --logs-path <LOGS_PATH> |
| Required | No |
| Value | Yes |
| Value name | LOGS_PATH |
| Default value | logs/ |
logs_modules
Per-module log filters
| Field | Value |
|---|---|
| Usage | --logs-modules <LOGS_MODULES> |
| Required | No |
| Value | Yes |
| Value name | LOGS_MODULES |
| Multiple | Yes |
disable_ascii_art
Disable the ASCII art shown at startup
| Field | Value |
|---|---|
| Usage | --disable-ascii-art |
| Required | No |
| Value | No |
| Value name | DISABLE_ASCII_ART |
| Default value | false |
| Possible values | true, false |
datetime_format
Datetime format used in log entries
| Field | Value |
|---|---|
| Usage | --datetime-format <DATETIME_FORMAT> |
| Required | No |
| Value | Yes |
| Value name | DATETIME_FORMAT |
| Default value | \[%Y-%m-%d\] (%H:%M:%S%.3f) |
network
Network to run and validate
| Field | Value |
|---|---|
| Usage | --network <NETWORK> |
| Required | No |
| Value | Yes |
| Value name | NETWORK |
| Default value | mainnet |
| Possible values | mainnet, testnet, stagenet, devnet |
config_file
JSON configuration file to load
| Field | Value |
|---|---|
| Usage | --config-file <CONFIG_FILE> |
| Required | No |
| Value | Yes |
| Value name | CONFIG_FILE |
generate_config_template
Generate a configuration template at config_file
| Field | Value |
|---|---|
| Usage | --generate-config-template |
| Required | No |
| Value | No |
| Value name | GENERATE_CONFIG_TEMPLATE |
| Default value | false |
| Possible values | true, false |