Configuration Parameters
Root-Level
chain_id required
Chain ID that must be included in each transaction. Used to prevent replay attacks.
| Type: | String |
|---|---|
| Env: | CHAIN_ID |
chain_id = "00000000-0000-0000-0000-000000000000"CHAIN_ID="00000000-0000-0000-0000-000000000000"public_key required
Public key of the peer.
| Type: | String, public key multihash |
|---|---|
| Env: | PUBLIC_KEY |
public_key = "ed0120FAFCB2B27444221717F6FCBF900D5BE95273B1B0904B08C736B32A19F16AC1F9"PUBLIC_KEY="ed0120FAFCB2B27444221717F6FCBF900D5BE95273B1B0904B08C736B32A19F16AC1F9"private_key required
Private key of the peer.
| Type: | todo private-key |
|---|---|
| Env: | PRIVATE_KEY |
private_key = "8026208F4C15E5D664DA3F13778801D23D4E89B76E94C1B94B389544168B6CB894F84F"PRIVATE_KEY="8026208F4C15E5D664DA3F13778801D23D4E89B76E94C1B94B389544168B6CB894F84F"trusted_peers
List of predefined trusted peers.
| Type: | Array of strings in format |
|---|---|
| Env: | TRUSTED_PEERS |
trusted_peers = [
"ed01201C61FAF8FE94E253B93114240394F79A607B7FA55F9E5A41EBEC74B88055768B@127.0.0.1:1337",
"ed0120CC25624D62896D3A0BFD8940F928DC2ABF27CC57CEFEB442AA96D9081AAE58A1@127.0.0.1:1338",
"ed0120FACA9E8AA83225CB4D16D67F27DD4F93FC30FFA11ADC1F5C88FD5495ECC91020@127.0.0.1:1339",
"ed01208E351A70B6A603ED285D666B8D689B680865913BA03CE29FB7D13A166C4E7F1F@127.0.0.1:1340",
]# as JSON
TRUSTED_PEERS='["ed01204EE2FCD53E1730AF142D1E23951198678295047F9314B4006B0CB61850B1DB10@irohad2:1339","ed01209897952D14BDFAEA780087C38FF3EB800CB20B882748FC95A575ADB9CD2CB21D@irohad1:1338","ed0120CACF3A84B8DC8710CE9D6B968EE95EC7EE4C93C85858F026F3B4417F569592CE@irohad3:1340"]'Genesis
genesis.file
File path to the SCALE-encoded genesis block.
| Type: | String, file path (relative to the config file or CWD) |
|---|---|
| Env: | GENESIS |
[genesis]
file = "./genesis.scale"GENESIS="./genesis.scale"genesis.public_key required
Public key of the genesis key pair.
| Type: | String, public key multihash |
|---|---|
| Env: | GENESIS_PUBLIC_KEY |
[genesis]
public_key = "ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"GENESIS_PUBLIC_KEY="ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"Network
network.address required
Address for p2p communication for consensus (sumeragi) and block synchronization (block_sync) purposes.
| Type: | String, socket address (host/IPv4/IPv6 + port) |
|---|---|
| Env: | P2P_ADDRESS |
[network]
address = "0.0.0.0:1337"P2P_ADDRESS=0.0.0.0:1337network.public_address required
Peer-to-peer address (external, as seen by other peers).
Will be gossiped to connected peers so that they can gossip it to other peers.
| Type: | String, socket address (host/IPv4/IPv6 + port) |
|---|---|
| Env: | P2P_PUBLIC_ADDRESS |
[network]
public_address = "0.0.0.0:5000"P2P_PUBLIC_ADDRESS=0.0.0.0:5000network.block_gossip_size
The amount of blocks that can be sent in a single synchronization message.
| Type: | Number |
|---|---|
| Default: | 4 |
[network]
block_gossip_size = 256network.block_gossip_period_ms
The time interval between requests to peers for the most recent block.
More frequent gossiping shortens the time to sync, but can overload the network.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 10_000 (10 seconds) |
[network]
block_gossip_period_ms = 1_000network.transaction_gossip_size
Max number of transactions in a gossip batch message.
Smaller size leads to longer time to synchronise, but useful if you have high packet loss.
| Type: | Number |
|---|---|
| Default: | 500 |
[network]
transaction_gossip_size = 256network.transaction_gossip_period_ms
Period of gossiping pending transaction between peers.
More frequent gossiping shortens the time to sync, but can overload the network.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 1_000 (1 second) |
[network]
transaction_gossip_period_ms = 5_000network.idle_timeout_ms
Duration of time after which connection with peer is terminated if peer is idle.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 60_000 (1 minute) |
[network]
idle_timeout_ms = 60_000Torii
torii.address required
Address to which the Torii server must listen and to which the client(s) make their requests.
| Type: | String, socket address (host/IPv4/IPv6 + port) |
|---|---|
| Env: | API_ADDRESS |
[torii]
address = "0.0.0.0:8080"API_ADDRESS=0.0.0.0:8080torii.max_content_len
The maximum number of bytes in a raw request body accepted by the Transaction Endpoint.
This limit is used to prevent DOS attacks.
| Type: | Number (of bytes) |
|---|---|
| Default: |
|
[torii]
max_content_len = 16_777_216torii.query_idle_time_ms
The time a query can remain in the store if unaccessed.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 10_000 (10 seconds) |
[torii]
query_idle_time_ms = 10_000torii.query_store_capacity
The upper limit of the number of live queries.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity = 128torii.query_store_capacity_per_user
The upper limit of the number of live queries for a single user.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity_per_user = 128Logger
logger.level
General logging verbosity (see logger.filter for refined configuration).
| Type: | String, possible values:
Choose the level that best suits your use case. Refer to Stack Overflow for additional details on how to use different log levels. |
|---|---|
| Default: | INFO |
| Env: | LOG_LEVEL |
[logger]
level = "INFO"LOG_LEVEL=INFORuntime update
This parameter is subject for runtime configuration update.
logger.filter
Refined log filters in addition to logger.level. Allows to customize logging verbosity per-target.
| Type: | String, consists of one or more comma-separated directives. Each directive may have a corresponding maximum verbosity level which enables (e.g., selects for) spans and events that match. Iroha considers less exclusive levels (like At a high level, the syntax for directives consists of several parts: For more details, see |
|---|---|
| Env: | LOG_FILTER |
[logger]
filter = "iroha_core=debug,iroha_p2p=debug"LOG_FILTER=iroha_core=debug,iroha_p2p=debugCompatibility with logger.level
logger.filter works together with logger.level and neither one overwrites another one.
For example, if logger.level is set to INFO and logger.filter is set to iroha_core=debug, the resulting filter set will be info,iroha_core=debug (i.e. info for all modules, debug for iroha_core).
Runtime update
This parameter is subject for runtime configuration update.
logger.format
Logs format.
| Type: | String, possible values:
For more details and sample outputs, see |
|---|---|
| Default: | full |
| Env: | LOG_FORMAT |
[logger]
format = "json"LOG_FORMAT=jsonKura
Kura is the persistent storage engine of Iroha (Japanese for warehouse).
kura.blocks_in_memory
At most N last blocks will be stored in memory.
Older blocks will be dropped from memory and loaded from the disk if they are needed.
| Type: | Number |
|---|---|
| Default: | 128 |
| Env: | KURA_BLOCKS_IN_MEMORY |
[kura]
blocks_in_memory = 256KURA_BLOCKS_IN_MEMORY=256kura.init_mode
Kura initialisation mode
| Type: | String, possible values:
|
|---|---|
| Default: | strict |
| Env: | KURA_INIT_MODE |
[kura]
init_mode = "fast"KURA_INIT_MODE=fastkura.store_dir
Specifies the directory[^paths] where the blocks are stored.
See also: snapshot.store_dir.
| Type: | String, file path (relative to the config file or CWD) |
|---|---|
| Default: | ./storage |
| Env: | KURA_STORE_DIR |
[kura]
store_dir = "/path/to/storage"KURA_STORE_DIR=/path/to/storagekura.debug.output_new_blocks debug
Flag to enable printing new blocks to console.
| Type: | todo bool |
|---|---|
| Default: | false |
| Env: | KURA_DEBUG_OUTPUT_NEW_BLOCKS |
[kura.debug]
output_new_blocks = trueKURA_DEBUG_OUTPUT_NEW_BLOCKS=trueQueue
queue.capacity
The upper limit of the number of transactions waiting in the queue.
| Type: | Number |
|---|---|
| Default: | 65_536 |
[queue]
capacity = 1_048_576queue.capacity_per_user
The upper limit of the number of transactions waiting in the queue for a single user.
Use this option to apply throttling.
| Type: | Number |
|---|---|
| Default: | 65_536 |
[queue]
capacity_per_user = 1_048_576queue.transaction_time_to_live_ms
The transaction will be dropped after this time if it is still in the queue.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 86_400_000 (24 hours) |
[queue]
transaction_time_to_live_ms = 43_200_000Sumeragi
sumeragi.debug.force_soft_fork debug
TODO
| Type: | todo bool |
|---|---|
| Default: | false |
[sumeragi.debug]
force_soft_fork = trueSnapshot
This module is responsible for reading and writing snapshots of the World State View.
TODO: explain the purpose of snapshots, file formats, etc
Wipe Snapshots
In case if something is wrong with the snapshots system, and you want to start from a blank page (in terms of snapshots), you could remove the directory specified by snapshot.store_dir.
snapshot.mode
The mode the Snapshot system functions in.
| Type: | String, possible values:
|
|---|---|
| Default: | read_write |
| Env: | SNAPSHOT_MODE |
[snapshot]
mode = "readonly"SNAPSHOT_MODE=readonlysnapshot.create_every_ms
Frequency of snapshots.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 600_000 (10 minutes) |
[snapshot]
create_every_ms = 60_000snapshot.store_dir
Directory where to store snapshots.
See also: kura.store_dir
| Type: | String, file path (relative to the config file or CWD) |
|---|---|
| Default: | ./storage/snapshot |
| Env: | SNAPSHOT_STORE_DIR |
[snapshot]
store_dir = "/path/to/storage"SNAPSHOT_STORE_DIR="/path/to/storage"Telemetry
TODO
name and url must be paired.
All telemetry section is optional.
telemetry.name
The node's name to be displayed on the telemetry.
| Type: | String |
|---|
[telemetry]
name = "iroha"telemetry.url
The url of the telemetry. TODO update example value
| Type: | String |
|---|
[telemetry]
url = "ws://substrate.telemetry.iroha"telemetry.min_retry_period_ms
The minimum period of time to wait before reconnecting.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 1_000 (1 second) |
[telemetry]
min_retry_period_ms = 5_000telemetry.max_retry_delay_exponent
The maximum exponent of 2 that is used for increasing delay between reconnections.
| Type: | Number |
|---|---|
| Default: | 4 |
[telemetry]
max_retry_delay_exponent = 4dev_telemetry.out_file
The filepath to write dev-telemetry to
| Type: | String, file path (relative to the config file or CWD) |
|---|
[dev_telemetry]
out_file = "/path/to/file.json"