description | keywords | ||||||
---|---|---|---|---|---|---|---|
This section describes the configuration parameters and their types for your IOTA core node. |
|
IOTA core node uses a JSON standard format as a config file. If you are unsure about JSON syntax, you can find more information in the official JSON specs.
You can change the path of the config file by using the -c
or --config
argument while executing iota-core
executable.
For example:
iota-core -c config_example.json
You can always get the most up-to-date description of the config parameters by running:
iota-core -h --full
Name | Description | Type | Default value |
---|---|---|---|
checkForUpdates | Whether to check for updates of the application or not | boolean | true |
shutdown | Configuration for shutdown | object |
Name | Description | Type | Default value |
---|---|---|---|
stopGracePeriod | The maximum time to wait for background processes to finish during shutdown before terminating the app | string | "5m" |
log | Configuration for log | object |
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether to store self-shutdown events to a log file | boolean | true |
filePath | The file path to the self-shutdown log | string | "shutdown.log" |
Example:
{
"app": {
"checkForUpdates": true,
"shutdown": {
"stopGracePeriod": "5m",
"log": {
"enabled": true,
"filePath": "shutdown.log"
}
}
}
}
Name | Description | Type | Default value |
---|---|---|---|
name | The optional name of the logger instance. All log messages are prefixed with that name. | string | "" |
level | The minimum enabled logging level | string | "info" |
timeFormat | Sets the logger's timestamp format. (options: "rfc3339", "rfc3339nano", "datetime", "timeonly", and "iso8601") | string | "rfc3339" |
outputPaths | A list of file paths or stdout/stderr to write logging output to | array | stdout |
Example:
{
"logger": {
"name": "",
"level": "info",
"timeFormat": "rfc3339",
"outputPaths": [
"stdout"
]
}
}
Name | Description | Type | Default value |
---|---|---|---|
bindMultiAddresses | The bind multi addresses for p2p connections | array | /ip4/0.0.0.0/tcp/15600 /ip6/::/tcp/15600 |
connectionManager | Configuration for connectionManager | object | |
identityPrivateKey | Private key used to derive the node identity (optional) | string | "" |
identityPrivateKeyFilePath | The file path to the private key used to derive the node identity | string | "testnet/p2p/identity.key" |
autopeering | Configuration for autopeering | object |
Name | Description | Type | Default value |
---|---|---|---|
highWatermark | The threshold up on which connections count truncates to the lower watermark | int | 10 |
lowWatermark | The minimum connections count to hold after the high watermark was reached | int | 5 |
Name | Description | Type | Default value |
---|---|---|---|
maxPeers | The max number of auto-peer connections. Set to 0 to disable auto-peering. | int | 5 |
bootstrapPeers | Peers to be used as discovery for other peers | array | |
allowLocalIPs | Allow local IPs to be used for autopeering | boolean | false |
externalMultiAddresses | External reacheable multi addresses advertised to the network | array |
Example:
{
"p2p": {
"bindMultiAddresses": [
"/ip4/0.0.0.0/tcp/15600",
"/ip6/::/tcp/15600"
],
"connectionManager": {
"highWatermark": 10,
"lowWatermark": 5
},
"identityPrivateKey": "",
"identityPrivateKeyFilePath": "testnet/p2p/identity.key",
"autopeering": {
"maxPeers": 5,
"bootstrapPeers": [],
"allowLocalIPs": false,
"externalMultiAddresses": []
}
}
}
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether the profiling component is enabled | boolean | false |
bindAddress | The bind address on which the profiler listens on | string | "localhost:6060" |
Example:
{
"profiling": {
"enabled": false,
"bindAddress": "localhost:6060"
}
}
Name | Description | Type | Default value |
---|---|---|---|
bindAddress | The bind address on which the REST API listens on | string | "0.0.0.0:14265" |
publicRoutes | The HTTP REST routes which can be called without authorization. Wildcards using * are allowed | array | /health /api/routes /api/core/v3/info /api/core/v3/network* /api/core/v3/blocks* /api/core/v3/transactions* /api/core/v3/commitments* /api/core/v3/outputs* /api/core/v3/accounts* /api/core/v3/validators* /api/core/v3/rewards* /api/core/v3/committee* /api/debug/v2/* /api/indexer/v2/* /api/mqtt/v2 /api/blockissuer/v1/* |
protectedRoutes | The HTTP REST routes which need to be called with authorization. Wildcards using * are allowed | array | /api/* |
debugRequestLoggerEnabled | Whether the debug logging for requests should be enabled | boolean | false |
maxPageSize | The maximum number of results per page | uint | 100 |
maxCacheSize | The maximum size of cache for results | string | "50MB" |
jwtAuth | Configuration for JWT Auth | object | |
limits | Configuration for limits | object |
Name | Description | Type | Default value |
---|---|---|---|
salt | Salt used inside the JWT tokens for the REST API. Change this to a different value to invalidate JWT tokens not matching this new value | string | "IOTA" |
Name | Description | Type | Default value |
---|---|---|---|
maxBodyLength | The maximum number of characters that the body of an API call may contain | string | "1M" |
maxResults | The maximum number of results that may be returned by an endpoint | int | 1000 |
Example:
{
"restAPI": {
"bindAddress": "0.0.0.0:14265",
"publicRoutes": [
"/health",
"/api/routes",
"/api/core/v3/info",
"/api/core/v3/network*",
"/api/core/v3/blocks*",
"/api/core/v3/transactions*",
"/api/core/v3/commitments*",
"/api/core/v3/outputs*",
"/api/core/v3/accounts*",
"/api/core/v3/validators*",
"/api/core/v3/rewards*",
"/api/core/v3/committee*",
"/api/debug/v2/*",
"/api/indexer/v2/*",
"/api/mqtt/v2",
"/api/blockissuer/v1/*"
],
"protectedRoutes": [
"/api/*"
],
"debugRequestLoggerEnabled": false,
"maxPageSize": 100,
"maxCacheSize": "50MB",
"jwtAuth": {
"salt": "IOTA"
},
"limits": {
"maxBodyLength": "1M",
"maxResults": 1000
}
}
}
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether the DebugAPI component is enabled | boolean | false |
db | Configuration for Database | object |
Name | Description | Type | Default value |
---|---|---|---|
path | The path to the database folder | string | "testnet/debug" |
maxOpenDBs | Maximum number of open database instances | int | 2 |
granularity | How many slots should be contained in a single DB instance | int | 100 |
pruning | Configuration for pruning | object |
Name | Description | Type | Default value |
---|---|---|---|
threshold | How many epochs should be retained | uint | 1 |
Example:
{
"debugAPI": {
"enabled": false,
"db": {
"path": "testnet/debug",
"maxOpenDBs": 2,
"granularity": 100,
"pruning": {
"threshold": 1
}
}
}
}
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether the Metrics Tracker plugin is enabled | boolean | true |
Example:
{
"metricsTracker": {
"enabled": true
}
}
Name | Description | Type | Default value |
---|---|---|---|
engine | The used database engine (rocksdb/mapdb) | string | "rocksdb" |
path | The path to the database folder | string | "testnet/database" |
maxOpenDBs | Maximum number of open database instances | int | 5 |
pruning | Configuration for pruning | object |
Name | Description | Type | Default value |
---|---|---|---|
threshold | How many finalized epochs should be retained | uint | 30 |
size | Configuration for size | object |
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether to delete old block data from the database based on maximum database size | boolean | true |
targetSize | Target size of the database | string | "30GB" |
reductionPercentage | The percentage the database size gets reduced if the target size is reached | float | 10.0 |
cooldownTime | Cooldown time between two pruning by database size events | string | "5m" |
Example:
{
"db": {
"engine": "rocksdb",
"path": "testnet/database",
"maxOpenDBs": 5,
"pruning": {
"threshold": 30,
"size": {
"enabled": true,
"targetSize": "30GB",
"reductionPercentage": 10,
"cooldownTime": "5m"
}
}
}
}
Name | Description | Type | Default value |
---|---|---|---|
snapshot | Configuration for snapshot | object | |
commitmentCheck | Specifies whether commitment and ledger checks should be enabled | boolean | true |
filter | Configuration for filter | object | |
protocolParametersPath | The path of the protocol parameters file | string | "testnet/protocol_parameters.json" |
baseToken | Configuration for baseToken | object |
Name | Description | Type | Default value |
---|---|---|---|
path | The path of the snapshot file | string | "testnet/snapshot.bin" |
depth | Defines how many slot diffs are stored in the snapshot, starting from the full ledgerstate | int | 5 |
Name | Description | Type | Default value |
---|---|---|---|
maxAllowedClockDrift | The maximum drift our wall clock can have to future blocks being received from the network | string | "5s" |
Name | Description | Type | Default value |
---|---|---|---|
name | The base token name | string | "Shimmer" |
tickerSymbol | The base token ticker symbol | string | "SMR" |
unit | The base token unit | string | "SMR" |
subunit | The base token subunit | string | "glow" |
decimals | The base token amount of decimals | uint | 6 |
Example:
{
"protocol": {
"snapshot": {
"path": "testnet/snapshot.bin",
"depth": 5
},
"commitmentCheck": true,
"filter": {
"maxAllowedClockDrift": "5s"
},
"protocolParametersPath": "testnet/protocol_parameters.json",
"baseToken": {
"name": "Shimmer",
"tickerSymbol": "SMR",
"unit": "SMR",
"subunit": "glow",
"decimals": 6
}
}
}
Name | Description | Type | Default value |
---|---|---|---|
debugStoreErrorMessages | Whether to store debug error messages in the database | boolean | false |
Example:
{
"retainer": {
"debugStoreErrorMessages": false
}
}
Name | Description | Type | Default value |
---|---|---|---|
alias | Set an alias to identify a node | string | "IOTA-Core node" |
Example:
{
"node": {
"alias": "IOTA-Core node"
}
}
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether the Metrics component is enabled | boolean | true |
bindAddress | Bind address on which the Prometheus exporter server | string | "0.0.0.0:9311" |
goMetrics | Include go metrics | boolean | false |
processMetrics | Include process metrics | boolean | false |
promhttpMetrics | Include promhttp metrics | boolean | false |
Example:
{
"prometheus": {
"enabled": true,
"bindAddress": "0.0.0.0:9311",
"goMetrics": false,
"processMetrics": false,
"promhttpMetrics": false
}
}
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether the INX plugin is enabled | boolean | false |
bindAddress | The bind address on which the INX can be accessed from | string | "localhost:9029" |
Example:
{
"inx": {
"enabled": false,
"bindAddress": "localhost:9029"
}
}