====== How To Edit Qortal Core Settings ====== {{:qortal_official_logo_transparent_.png?400|}} ===== settings.json File Information ===== **Caution: The settings.json file should be left blank, unless there is a specific reason to override the defaults, which are designed to be optimal for general use.** To configure your Qortal Core settings, you can open and edit the settings.json file using any text editor. Changes are only applied when loading the Core, so it must be restarted to take effect. This file is found in the main "qortal" folder created when installing the Core. On Windows however, it would be in the "%localappdata%/Qortal" folder by default. Note: There is also a settings.json file in "C:/Program Files/Qortal". Changing that copy of the file is recommended for advanced users only, as it is just meant to specify the "userPath" setting, which tells the Core where to find your primary settings file, and database folder. Info on relocating the database folder is given below. The settings file is written using the standard JSON format. This requires a curly brace at the start and end, and each setting "key" should be enclosed in straight double quotes (do not use curly/angled “ ” quotes, or single ' ' quotes), followed by a colon, then the setting "value", which also needs quotes if it's a text value. Numerical or boolean (true/false) values do not need quotes. A comma must be placed between each key/value pair, but not after the last entry. JSON is whitespace neutral, so any spaces, tabs, or new lines are ignored and not required. Here is an example showing two equivalent layouts: { "setting1": "enabled", "setting2": true } {"setting1":"enabled","setting2":true} ===== Commonly Used Settings ===== The full list of user-customizable settings (and their default values) can be found at the following link: [[https://github.com/Qortal/qortal/blob/master/src/main/java/org/qortal/settings/Settings.java]] **Here is explanation of the most commonly used settings:** **apiDocumentationEnabled** - Setting this to true will enable the API Documentation page, found at [[http://localhost:12391/api-documentation]] by default. This page assists in using the API, also providing information and examples for available API calls. **domainMapEnabled** - This is disabled by default. It can be enabled to allow traditional websites to redirect to a Qortal hosted Website. [[https://wiki.qortal.org/doku.php?id=how_to_host_your_public_data#mapping_qdn_websites_to_a_traditional_domain_name|(More info)]] **autoUpdateEnabled** - Setting this to false will disable the Core from automatically updating when a new version is released and approved. **repositoryMaintenanceMinInterval & repositoryMaintenanceMaxInterval** - These settings determine the timeframe in which the database will be automatically "trimmed" to reduce storage space used. The value should be given in milliseconds. For example, 259200000 is the default minimum, which equals 3 days. Note: A random value between these two options is chosen when starting the Core. That means if you restart the Core daily, no maintenance will occur (unless your settings allow for values lower than one day). **bootstrap** - Setting this to false will prevent the Core from automatically downloading the bootstrap file when no database is found. This would allow syncing blocks from peers, starting at 0 (the genesis block). **isTestNet** - Setting this to true is required for anyone wanting to run a Qortal node on the test net. More information regarding this will be added to its own wiki page. **listenPort** - The default port is 12392. This can be changed if you have multiple nodes on the same network and want to enable port forwarding for all of them. [[https://wiki.qortal.org/doku.php?id=port_forwarding|(More info)]] **minBlockchainPeers** - This specifies the minimum number of connected peers which must be at a given block height to be able to sync that block to your local database. **minPeerVersion** - This is a string (so it requires quotes) that determines the minimum Core version required by peers for your node to sync with them. Other peers can still request blocks from your node, unless you disable the following setting. **allowConnectionsWithOlderPeerVersions** - Setting this to false will prevent peers running a Core version lower than that set in the previous setting from being able to request blocks from your node. **minPeerConnectionTime & maxPeerConnectionTime** - These settings determine the amount of time that any given peer will remain connected. A random value between these two is chosen upon making a connection to each peer. This regular disconnection process is intended to prevent nodes from forming into isolated "islands" of peers, and increases network diversity. The value should be given in seconds. For example, 300 is the default minimum, which equals 5 minutes. **repositoryPath** - This specifies the location where the Core can find or create the blockchain database. By default it's in the "db" folder within the same location as the settings file. The backslash is used as an "escape character" in JSON, so to include that symbol within a string, a second one should be added. For example, "repositoryPath":"D://db" will use the "db" folder on drive D. **testNtpOffset** - Recommended for advanced users only. Qubes & Whonix use "sdwdate" and may need this set to 0 to bypass using "NTP" instead. **qdnEnabled** - Setting this to false will disable all QDN / data hosting features, preventing your node from storing any associated content. **dataPath** - This is similar to the repositoryPath setting. It determines where the Core will store the data hosted using the QDN features. **storagePolicy** - The default for this setting is "FOLLOWED_OR_VIEWED" which causes the Core to store data for any Websites that you view or follow. Changing it to "ALL" will allow the Core to act as a "data node" and it will host all available QDN files shared to the network, whether they are viewed, followed, or neither. **relayModeEnabled** - By default, the Core will act as a "go between" for any peers requesting data from your node, if you are not hosting those files, but connected to another peer who is. Setting it to false will disable that behavior. The status of this setting is also visible in the Qortal UI at the bottom the Websites plugin page. **maxStorageCapacity** - This setting can be used to limit the amount of space available for QDN data hosting (in the folder specified by the dataPath setting). By default, there is no limit aside from the available drive space on your system. The value should be given in bytes. For example, 1073741824 would limit storage to 1 GB.