DLT Node Configuration

Introduction

The Ixian DLT node's behavior is configured through a combination of a configuration file (ixian.cfg by default) and command-line arguments. Settings from the configuration file are loaded on startup, and any arguments provided on the command line will override the file's settings.

This document serves as a comprehensive guide to all available configuration options for running and managing an Ixian DLT node.


Configuration File (ixian.cfg)

The configuration file uses a simple key = value format. Each directive must be on a new line. Lines starting with a semicolon (;) or hash (#) are treated as comments and are ignored.

Example ixian.cfg:

; Set the P2P port for the mainnet
dltPort = 10234

; Set the JSON-RPC API port
apiPort = 8081

; Allow API access only from the local machine
apiAllowIp = 127.0.0.1

; Specify a custom data folder path
dataFolderPath = /opt/ixian/data

General Options

ParameterTypeDescription
networkTypestringSets the network to operate on. Can be mainnet, testnet, or regtest.
externalIpstringThe node's public IP address. Overrides automatic detection.
checksumLockstringA custom string for the seeding checksum, used only for private networks.

Network & API Options

ParameterTypeDescription
dltPortintegerThe TCP port for peer-to-peer (P2P) network communication.
dltBindstringBinds the P2P server to a specific local IP address.
testnetDltPortintegerThe P2P port to use when in testnet mode.
apiPortintegerThe TCP port for the JSON-RPC API server.
testnetApiPortintegerThe API port to use when in testnet mode.
apiAllowIpstringWhitelists an IP address for API access. Can be specified multiple times.
apiBindstringBinds the API server to a specific local IP address. Can be specified multiple times.
addApiUserstringAdds a required user:password credential for API access. Can be specified multiple times.
addPeerstringAdds a seed node for the mainnet. Can be used multiple times.
addTestnetPeerstringAdds a seed node for the testnet. Can be used multiple times.

Logging & Storage Options

ParameterTypeDescription
maxLogSizeintegerThe maximum size of a single log file in Megabytes (MB).
maxLogCountintegerThe maximum number of rotated log files to keep.
logVerbosityintegerA bitmask for logging detail: Trace=1, Info=2, Warn=4, Error=8. Add numbers for combined verbosity (e.g., 14 for Info+Warn+Error).
dataFolderPathfilepathSpecifies the directory to store blockchain data and the wallet state.
logFolderPathfilepathSpecifies the directory to store log files.
activityFolderPathfilepathSpecifies the directory to store activity data.
blockStoragestringThe storage engine for blocks and transactions. Can be SQLite or RocksDB.
maxDatabaseCacheulongThe maximum RAM in bytes to allocate for the RocksDB cache.

Node Behavior Options

ParameterTypeDescription
disableWebStartintegerSet to 1 to prevent the node from opening the API URL in a browser on startup.
blockNotifystringA command to execute when a new block is accepted by the node.

Command-Line Arguments

Command-line arguments are processed after the configuration file and will override its settings.

General Flags

FlagParameterDescription
-h, --help-Displays the help screen and exits.
-v, --version-Displays the node version and exits.
-t, --testnet-Starts the node in testnet mode.
--networkTypestringExplicitly sets the network type: mainnet, testnet, or regtest.
--configfilepathSpecifies the path to the configuration file (default: ixian.cfg).

Node Operation Flags

FlagParameterDescription
-c, --clean-Prompts to clear all blockchain data, logs, and cache before starting. Use with -f to force clean without a prompt.
-x, --changepass-Prompts to change the password of the wallet specified with -w.
-p, --portportSets the P2P network port.
-a, --apiportportSets the JSON-RPC API port.
-i, --ipip_addressSets the external IP address.
-w, --walletfilepathSpecifies the path to the wallet file (default: ixian.wal).
-n, --nodeip:portConnects to a specific seed node, ignoring the default list.
--worker-Disables masternode capabilities, running as a non-signing node.
--threadscountSets the number of threads to use for mining (default: 1).
--cpuThreadscountForce sets the number of CPU threads for general processing.
--lastGoodBlockblock_numLoads the blockchain from storage only up to the specified block height.
--disableWebStart-Disables opening the API URL in a browser on startup.
--onlyShowAddresses-Displays the addresses in the wallet and exits.
--maxTxPerBlockcountSets the maximum number of transactions the node will include in a new block.
--disableSetTitle-Prevents the node from setting the console window title.
--disableFastBlockLoading-Disables the optimized block loading process during startup.
--forceSyncToBlockblock_numForces the node to synchronize with the network up to the specified block height.
--maxOutgoingConnectionscountSets the maximum number of outbound peer connections.
--maxIncomingMasterNodescountSets the maximum number of inbound connections from other Master Nodes.
--maxIncomingClientNodescountSets the maximum number of inbound connections from clients.
--minActivityBlockHeightblock_numPrunes activity data older than the specified block height. 0 disables pruning.

Logging & Storage Flags

FlagParameterDescription
--maxLogSizemegabytesSets the maximum log file size in MB.
--maxLogCountcountSets the maximum number of rotated log files.
--logVerbosityintegerSets the logging verbosity using the bitmask (Trace=1, Info=2, Warn=4, Error=8).
--verboseOutput-Enables verbose logging directly to the console.
--blockStoragestringSets the storage engine (SQLite or RocksDB).
--dataFolderPathfilepathSpecifies the directory for blockchain data.
--logFolderPathfilepathSpecifies the directory for log files.
--activityFolderPathfilepathSpecifies the directory for activity data.
--maxDatabaseCachebytesSets the maximum RAM in bytes to use for the RocksDB cache.
--verifyStorage-Performs a full integrity check of the local blockchain storage on startup.
--optimizeDBStorage-Manually triggers a compaction of all databases before the node starts. This can take a significant amount of time.

Developer & Debug Flags

FlagParameterDescription
--walletPasswordpassword(UNSAFE) Provides the wallet password on the command line. Avoid using in production environments.
--genesis-Starts the node in genesis mode to create a new private network.
--recover-Recovers the network from a file (developer-only feature).
--generateWallet-Generates a new wallet file and exits. Testnet only.
--offline-Starts the node in offline mode, preventing all P2P network operations.
--disableChainReorg-Disables the node's ability to perform a blockchain reorganization.
--chainReorgTest-Enables a specific test for the chain reorganization logic.
--netdumpfilepathDumps network message details to the specified file for debugging.
--benchmarktypeRuns a specific performance benchmark and exits.