Getting Started
Configuration

Configuration

You will have to open your operating system's command-line interface (CLI) in the folder where the executable is located.

Daemon

Run ./xelis_daemon --help to see all available options.

Network

Network selected by default is mainnet.
Available values are mainnet, testnet and dev.

Example: ./xelis_daemon --network testnet.

Boost Sync Mode

Boost sync mode is a faster way to sync the full blockchain. It is not enabled by default as it require more resources usage. It is requesting blocks during chain syncronization in parallel.

To enable it, use: ./xelis_daemon --allow-boost-sync.

Fast Sync Mode

Fast sync mode allows to have a faster syncronization by downloading the last chain state from any peer.
It allows to have a light node and with a really small disk usage as it's using only latest available data.

To enable it, use: ./xelis_daemon --allow-fast-sync.

Auto Pruning

Enable the auto prune mode and prune the chain at each new block by keeping at least N blocks before the top block. This is useful to keep a light node and to reduce the disk usage.

Example to keep only 1000 latest blocks: ./xelis_daemon --auto-prune-keep-n-blocks 1000.

Cache Size

Set the cache size by setting how many elements to keep in memory. Higher cache size will require more memory but can be useful for chain operations.

Default is set to 1024 elements. If you set it to 0, it will disable the cache and will not keep any.

Example to set the cache size to 1000: ./xelis_daemon --cache-size 1000.

Disable P2P Server

Disable the P2P server, this will disable the node to be connected to other nodes and will not be able to sync the chain or broadcast mined blocks.

To disable the P2P Server, use: ./xelis_daemon --disable-p2p-server.

Disable RPC Server

Disable RPC Server, this will also disable the GetWork Server as it is loaded on RPC server

To disable the RPC Server, use: ./xelis_daemon --disable-rpc-server.

P2p Bind Address

Set the bind address to use for the P2P server. By default, the bind address is set to 0.0.0.0:2125.

To set the bind address to 0.0.0.0:2126, use: ./xelis_daemon --p2p-bind-address 0.0.0.0:2126.

Max Peers

Set the maximum number of P2P peers to connect to.
By default, the maximum number of peers is set to 32.

To set the maximum number of peers to 64, use: ./xelis_daemon --max-peers 64.

Exclusive Nodes

Set the exclusive nodes to connect to. This will only connect to the given nodes and will not connect to any other nodes.
Each Socket Address must be separated by a comma.

Example to connect to two nodes: ./xelis_daemon --exclusive-nodes 0.0.0.0:2125,0.0.0.0:2126.

Priority Nodes

Set the priority nodes to connect to. This will connect to the given nodes first and then will connect to other nodes.
Connections to priority nodes will be also maintained in case of disconnection.
Each Socket Address must be separated by a comma.

Other nodes will still be connected to as long as the maximum number of peers is not reached.

Example to connect to two nodes: ./xelis_daemon --priority-nodes 0.0.0.0:2125,0.0.0.0:2126

Tag

Set the tag to use for the node. This is useful to identify the node in the network. Maximum length is 16 characters.

Example to set the tag to mytag: ./xelis_daemon --tag mytag.

Maximum Chain Response Size

Configure the maximum chain response size This is useful for low devices who want to reduce resources usage And for high-end devices who want to (or help others to) sync faster.

By default, the maximum chain response size is set to 4096.
Minimum value is 512 and maximum value is 16384.

This is used to notify others nodes about the maximum size of the chain response that you accept to receive / send per request. It can speedup the syncronization process by allowing to send more data at once.

Example to set the maximum chain response size to 8192: ./xelis_daemon --max-chain-response-size 8192.

Disable IP Sharing

Ask peers to not share our IP to others and/or through API.
This is useful for people that don't want that their IP is revealed in RPC API and/or shared to others nodes as a potential new peer to connect to.

By default, your IP is allowed to be shared across the network to others nodes.
To enable it, use: ./xelis_daemon --disable-ip-sharing.

Please note that it may prevent to have new incoming peers as your IP will not be shared to others.

Disable P2P Outgoing Connections

Disable P2P outgoing connections from peer. This is useful for seed nodes under heavy load or for nodes that don't want to connect to others.

To disable, use: ./xelis_daemon --disable-p2p-outgoing-connections.

P2P Concurrency Task Count Limit

Limit of concurrent tasks accepting new incoming connections. Default to 4.

To set limit, use: ./xelis_daemon --p2p-concurrency-task-count-limit 4.

Disable File Logging

By default, the daemon is logging to a file. To disable it, use: ./xelis_daemon --disable-file-logging.

Disable File Log Date Based

Disable the log filename date based. If disabled, the log file will be named xelis-daemon.log instead of YYYY-MM-DD.xelis-daemon.log

To disable, use: ./xelis_daemon --disable-file-log-date-based.

Disable Log Color

Disable the usage of colors in log.

To disable, use: ./xelis_daemon --disable-log-color.

Disable Interactive Mode

Disable terminal interactive mode. You will not be able to write CLI commands in it or to have an updated prompt

To disable, use: ./xelis_daemon --disable-interactive-mode.

Filename Log

Set the filename to use for logging. By default, the filename is set to xelis-daemon.log.
Every logs file are stored in the logs folder and are named with the date of the day.

To set the filename to mylog.log, use: ./xelis_daemon --filename-log mylog.log.

Logs Dir Path

Set a custom directory path to store the logs files.
By default it will be logs/ of the current directory.

To set the directory path to mylogs/, use: ./xelis_daemon --logs-path mylogs/.

NOTE: The directory will be created using the provided path if not existing and must ends with a /.

Logs Modules

Module configuration for logs.

To set, use: ./xelis_daemon --logs-modules module_name=off.

Log Level

Set the log level to use. Available values are trace, debug, info, warning, error.

By default, the log level is set to info.

Example to set the log level to debug: ./xelis_daemon --log-level debug.

Disable GetWork Server

Disable the GetWork server, this will disable the HTTP server running above the RPC Server and will prevent any miner to connect and receive new jobs.

To disable the GetWork server, use: ./xelis_daemon --disable-getwork-server.

RPC Bind Address

Set the bind address to use for the RPC server. By default, the bind address is set to 0.0.0.0:8080.

To set the bind address to 0.0.0.0:8081, use: ./xelis_daemon --rpc-bind-address 0.0.0.0:8081.

Dir Path

Set the directory path to use for the database and the blockchain. By default, the directory path is set to the name of the network at the same location of the executable.

To set the directory path to mydir, use: ./xelis_daemon --dir-path mydir.

Simulator

Enable the simulator mode. This will disable the P2P server and will simulate the blockchain based on its variant. This will generate new blocks when necessary and will not connect to any other nodes.

Availables values are:

  • blockchain: to simulate the blockchain with a new block every 15 seconds and up to 15 random transactions.
  • blockdag: to simulate the blockdag with up to 3 new block every 15 seconds and up to 15 random transactions.
  • stress: to simulate a blockDAG under attacks with heavy blocks and a lot of transactions.

To enable the stress simulator mode, use: ./xelis_daemon --simulator stress.

Skip POW Verification

Skip PoW verification. Warning: This is dangerous and should not be used in production

To skip verification, use: ./xelis_daemon --skip-pow-verification.

Version

Print the version of the daemon.

To print the version, use: ./xelis_daemon --version.

Wallet

Run ./xelis_wallet --help to see all available options.

Daemon Address

Set the daemon address to use for the wallet. This is the address of the daemon to connect to.

By default, the daemon address is set to 127.0.0.1:8080 to connect to your local node.

To set the daemon address to http://127.0.0.1:8081, use: ./xelis_wallet --daemon-address http://127.0.0.1:8081.

Enable XSWD

Enable the XSWD mode. This will enable the wallet to use the XSWD protocol to communicate with any applications securely.

By default, the XSWD mode is disabled.

To enable the XSWD mode, use: ./xelis_wallet --enable-xswd.

Wallet Path

Set the wallet path to use for the wallet.

To use the wallet file mywallet, use: ./xelis_wallet --wallet-path mywallet.

If not specified, wallet is created in wallets/ folder of the current directory with its name.

Password

Set the password to use for the wallet file.

To use the password mypassword, use: ./xelis_wallet --password mypassword.

Seed

Set the seed to use for the wallet file.

This is useful to recover a wallet from a seed.

To use the seed myseed myseed, use: ./xelis_wallet --seed "myseed myseed".

Offline Mode

Enable the offline mode. This will disable the wallet to connect to the daemon and will not be able to send transactions.

By default, the wallet open in online mode and try to connect to the daemon.

To enable the offline mode, use: ./xelis_wallet --offline-mode.

RPC Bind Address

Set the bind address to use for the RPC server. By default, the bind address is set to 127.0.0.1:8080.

To set the bind address to 127.0.0.1:8081, use: ./xelis_wallet --rpc-bind-address 127.0.0.1:8081.

RPC Password

Set the password to use for the RPC server. By default, no password is set.

In case you set a username, the password is mandatory.

To set the password to mypassword, use: ./xelis_wallet --rpc-password mypassword.

RPC Username

Set the username to use for the RPC server.

In case you set a password, the username is mandatory.

To set the username to myusername, use: ./xelis_wallet --rpc-username myusername.

Disable File Logging

By default, the daemon is logging to a file. To disable it, use: ./xelis_wallet --disable-file-logging.

Disable File Log Date Based

Disable the log filename date based. If disabled, the log file will be named xelis-daemon.log instead of YYYY-MM-DD.xelis-daemon.log

To disable, use: ./xelis_wallet --disable-file-log-date-based.

Disable Log Color

Disable the usage of colors in log.

To disable, use: ./xelis_wallet --disable-log-color.

Disable Interactive Mode

Disable terminal interactive mode. You will not be able to write CLI commands in it or to have an updated prompt

To disable, use: ./xelis_wallet --disable-interactive-mode.

Filename Log

Set the filename to use for logging. By default, the filename is set to xelis-wallet.log.
Every logs file are stored in the logs folder and are named with the date of the day.

To set the filename to mylog.log, use: ./xelis_wallet --filename-log mylog.log.

Logs Modules

Module configuration for logs.

To set, use: ./xelis_wallet --logs-modules module_name=off.

Logs Dir Path

Set a custom directory path to store the logs files.
By default it will be logs/ of the current directory.

To set the directory path to mylogs/, use: ./xelis_wallet --logs-path mylogs/.

NOTE: The directory will be created using the provided path if not existing and must ends with a /.

Log Level

Set the log level to use. Available values are trace, debug, info, warning, error.

By default, the log level is set to info.

Example to set the log level to debug: ./xelis_wallet --log-level debug.

Disable History Scan

Disable the history scan. This will prevent syncing old TXs/blocks. Only blocks / transactions caught by the network handler will be stored, not the old ones

To set, use: ./xelis_wallet --disable-history-scan.

Force Stable Balance

Force the wallet to use a stable balance only during transactions creation. This will prevent the wallet to use unstable balance and prevent any orphaned transaction due to DAG reorg. This is only working if the wallet is in online mode.

To set, use: ./xelis_wallet --force-stable-balance.

Version

Print the version of the miner.

To print the version, use: ./xelis_wallet --version.

Miner

Run ./xelis_miner --help to see all available options.

Miner Address

Set the miner address to use for the miner. This is the address that will be used to find blocks and earn rewards.

This is a mandatory option.

Example: ./xelis_miner --miner-address <YOUR_ADDRESS>.

Daemon Address

Set the daemon address to which you want to connect. By default, it is set to 127.0.0.1:8080 to connect automatically to your local node.

If you want to connect to another node (domain or ip:port format), use: ./xelis_miner --daemon-address testnet-node.xelis.io.

Benchmark

Enable the benchmark mode. This will run the miner without submitting any block and will print the hashrate of the miner.

To enable the benchmark mode, use: ./xelis_miner --benchmark.

In case you want to changes the numbers of iterations to use for the benchmark, use: ./xelis_miner --benchmark --iterations 100.

Numbers of Threads

Set the numbers of threads to use for the miner. By default, the numbers of threads is set to the number of logical cores of the CPU.

Minimum is 1 and maximum is 255.

Example to set the numbers of threads to 4: ./xelis_miner --num-threads 4.

Worker

Set the worker name to use for the miner. This is useful to identify the miner in the daemon.
Default is set to default.

Example to set the worker name to myworker: ./xelis_miner --worker myworker.

Disable File Logging

By default, the daemon is logging to a file. To disable it, use: ./xelis_miner --disable-file-logging.

Disable File Log Date Based

Disable the log filename date based. If disabled, the log file will be named xelis-daemon.log instead of YYYY-MM-DD.xelis-daemon.log

To disable, use: ./xelis_miner --disable-file-log-date-based.

Disable Log Color

Disable the usage of colors in log.

To disable, use: ./xelis_miner --disable-log-color.

Disable Interactive Mode

Disable terminal interactive mode. You will not be able to write CLI commands in it or to have an updated prompt

To disable, use: ./xelis_miner --disable-interactive-mode.

Filename Log

Set the filename to use for logging. By default, the filename is set to xelis-miner.log.
Every logs file are stored in the logs folder and are named with the date of the day.

To set the filename to mylog.log, use: ./xelis_miner --filename-log mylog.log.

Logs Modules

Module configuration for logs.

To set, use: ./xelis_miner --logs-modules module_name=off.

Logs Dir Path

Set a custom directory path to store the logs files.
By default it will be logs/ of the current directory.

To set the directory path to mylogs/, use: ./xelis_miner --logs-path mylogs/.

NOTE: The directory will be created using the provided path if not existing and must ends with a /.

Log Level

Set the log level to use. Available values are trace, debug, info, warning, error.

By default, the log level is set to info.

Example to set the log level to debug: ./xelis_miner --log-level debug.

Version

Print the version of the miner.

To print the version, use: ./xelis_miner --version.