Skip to content

Paramètres de configuration

[toc]

Niveau de la racine

chain required

Chaîne ID qui doit être incluse dans chaque transaction. Utilisé pour prévenir les attaques de répétition.

Une attaque de répétition est une tentative de soumettre une transaction valide à un réseau différent de celui pour lequel elle était destinée. Étant donné que le chain fait partie de la charge utile des transactions signées, une transaction signée pour une chaîne est rejetée par des pairs utilisant une autre chaîne ID.

Type: String
Env:CHAIN
toml
chain = "00000000-0000-0000-0000-000000000000"
shell
CHAIN="00000000-0000-0000-0000-000000000000"

public_key required

La clé publique du coéquipier. Les coéquipiers validateurs de consensus doivent utiliser les clés BLS-Normales.

Type: String, public key multihash
Env:PUBLIC_KEY
toml
public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2"
shell
PUBLIC_KEY="ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2"

private_key required

La clé privée du pair doit correspondre à public_key; les pairs validateurs de consensus doivent utiliser BLS-Les clés normales.

Type:todo private-key
Env:PRIVATE_KEY
toml
private_key = "8926201CA347641228C3B79AA43839DEDC85FA51C0E8B9B6A00F6B0D6B0423E902973F"
shell
PRIVATE_KEY="8926201CA347641228C3B79AA43839DEDC85FA51C0E8B9B6A00F6B0D6B0423E902973F"

trusted_peers

Liste des pairs de confiance prédéfinis.

Les validateurs de consensus doivent utiliser des clés BLS-normales. Pour chaque validateur, fournissez également une entrée correspondante trusted_peers_pop.

Type:

Array of peer strings. Utilisez PUBLIC_KEY@ADDRESS lorsque l'adresse P2P est connue; le bare PUBLIC_KEY est également accepté et permet de découvrir l'adresse des pairs à partir du bavardage.

Env:TRUSTED_PEERS
toml
trusted_peers = [
    "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2@127.0.0.1:1337",
    "ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77@127.0.0.1:1338",
]
shell
# as JSON
TRUSTED_PEERS='[
  "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2@127.0.0.1:1337",
  "ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77@127.0.0.1:1338"
]'

trusted_peers_pop

BLS les entrées de preuve de possession pour les pairs de confiance du validateur.

Type:

Array d'objets avec les champs public_key et pop_hex

Env:TRUSTED_PEERS_POP
toml
trusted_peers_pop = [
  { public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2", pop_hex = "8515da750f81182aaba5c22fc9f03a01e81ed85e4495a2ca6b29a71c0c8549537e31e79cddf6ff285b9e22d0d9dc17ce0f46e7d0cf78b2ef9feab50c849a1ea8e1e4f07e966f6113faa8a999317545d9f111b8e08a7273913710b43a20b19c08" },
  { public_key = "ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77", pop_hex = "a14eb180f0d78c55d2c034e91ccf691378e9c3ceed8e0b81d3e4b7c215c0dbb633bb9f1c5063911c31af4610016c164015f0f93db3c7df6a2ad0c39338fe7695b976a59fd13797615f229fbd77276a8bb2842e4e44fadcafdb7b37f4a143b913" },
]
shell
# as JSON
TRUSTED_PEERS_POP='[
  {"public_key":"ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2","pop_hex":"0x8515da750f81182aaba5c22fc9f03a01e81ed85e4495a2ca6b29a71c0c8549537e31e79cddf6ff285b9e22d0d9dc17ce0f46e7d0cf78b2ef9feab50c849a1ea8e1e4f07e966f6113faa8a999317545d9f111b8e08a7273913710b43a20b19c08"},
  {"public_key":"ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77","pop_hex":"0xa14eb180f0d78c55d2c034e91ccf691378e9c3ceed8e0b81d3e4b7c215c0dbb633bb9f1c5063911c31af4610016c164015f0f93db3c7df6a2ad0c39338fe7695b976a59fd13797615f229fbd77276a8bb2842e4e44fadcafdb7b37f4a143b913"}
]'

Genèse

genesis.file

Chemin de fichier vers la charge utile du bloc génèse signé générée par kagami genesis sign. Les profils générés écrivent généralement ceci comme un fichier Norito .nrt.

Type: String, file path (relative to the config file or CWD)
Env:GENESIS
toml
[genesis]
file = "./genesis.signed.nrt"
shell
GENESIS="./genesis.signed.nrt"

genesis.public_key required

La clé publique de la paire de clés génèse.

Type: String, public key multihash
Env:GENESIS_PUBLIC_KEY
toml
[genesis]
public_key = "ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"
shell
GENESIS_PUBLIC_KEY="ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"

Réseau

network.address required

Adresse pour la communication p2p à des fins de consensus (sumeragi) et de synchronisation par bloc (bloc_sync).

Type: String, socket address (host/IPv4/IPv6 + port)
Env:P2P_ADDRESS
toml
[network]
address = "0.0.0.0:1337"
shell
P2P_ADDRESS=0.0.0.0:1337

network.public_address required

Adresse de pair à pair (externe, telle que vue par les autres pairs).

Il sera bavardé à des pairs liés afin qu'ils puissent le bavarder à d'autres pairs.

Type: String, socket address (host/IPv4/IPv6 + port)
Env:P2P_PUBLIC_ADDRESS
toml
[network]
public_address = "0.0.0.0:5000"
shell
P2P_PUBLIC_ADDRESS=0.0.0.0:5000

network.block_gossip_size

Le nombre de blocs qui peuvent être envoyés dans un seul message de synchronisation.

Type: Number
Default:4
toml
[network]
block_gossip_size = 256

network.block_gossip_period_ms

L'intervalle de temps entre les demandes à des pairs pour le bloc le plus récent.

Le bavardage plus fréquent réduit le temps de synchronisation, mais peut surcharger le réseau.

Type: Number, duration in milliseconds
Default:10_000 (10 seconds)
toml
[network]
block_gossip_period_ms = 1_000

network.transaction_gossip_size

Nombre maximal de transactions dans un message de plaisanterie.

Une taille plus petite entraîne un temps de synchronisation plus long, mais utile si vous avez une perte élevée de paquets.

Type: Number
Default:500
toml
[network]
transaction_gossip_size = 256

network.transaction_gossip_period_ms

Periode de bavardage en attente d'une transaction entre pairs.

Le bavardage plus fréquent réduit le temps de synchronisation, mais peut surcharger le réseau.

Type: Number, duration in milliseconds
Default:1_000 (1 second)
toml
[network]
transaction_gossip_period_ms = 5_000

network.idle_timeout_ms

Durée de temps après laquelle la connexion avec les pairs est interrompue si le paire est inactif.

Type: Number, duration in milliseconds
Default:300_000 (5 minutes)
toml
[network]
idle_timeout_ms = 300_000

Torii

torii.address required

Adresse à laquelle le serveur Torii doit écouter et auquel le client (s) fait ses demandes.

Type: String, socket address (host/IPv4/IPv6 + port)
Env:API_ADDRESS
toml
[torii]
address = "0.0.0.0:8080"
shell
API_ADDRESS=0.0.0.0:8080

torii.max_content_len

Le nombre maximum d'octets dans un corps de demande brute accepté par les points d'extrémité Torii .

Cette limite est utilisée pour prévenir les attaques de DOS.

Type:

Nombre (en octets)

Default:

64_000_000 (64 millions d'octets)

toml
[torii]
max_content_len = 64_000_000

torii.query_idle_time_ms

Le temps pendant lequel une requête peut rester dans le magasin si elle n'est pas consultée.

Type: Number, duration in milliseconds
Default:10_000 (10 seconds)
toml
[torii]
query_idle_time_ms = 10_000

torii.query_store_capacity

La limite supérieure du nombre de requêtes en direct.

Type: Number
Default:128
toml
[torii]
query_store_capacity = 128

torii.query_store_capacity_per_user

La limite supérieure du nombre de requêtes en direct pour un seul utilisateur.

Type: Number
Default:128
toml
[torii]
query_store_capacity_per_user = 128

Arboriste

logger.level

Verbosité générale en matière d'enregistrement (voir logger.filter pour la configuration affinée).

Type:

Chaîne, valeurs possibles:

  • TRACE: Tous les événements, y compris les opérations à faible niveau.
  • DEBUG: Messages de débogage, utiles pour le diagnostic.
  • INFO: Des messages d'information généraux.
  • WARN: Avertissements qui indiquent des problèmes potentiels.
  • ERROR: Erreurs perturbant le fonctionnement normal mais permettant la poursuite de l'exploitation.

Choisissez le niveau qui convient le mieux à votre cas d'utilisation. Consultez Stack Overflow pour plus de détails sur l'utilisation des différents niveaux de journaux.

Default:INFO
Env:LOG_LEVEL
toml
[logger]
level = "INFO"
shell
LOG_LEVEL=INFO

Mise à jour de l'heure d'exécution

Ce paramètre est soumis à une mise à jour de la configuration du temps d'exécution par l'intermédiaire des terminaux Torii de l'opérateur.

logger.filter

Filtres de journaux raffinés en plus de logger.level. Permet de personnaliser la verbosité de journalement par cible.

Type:

Chaque directive peut avoir un niveau de verbosité maximal correspondant qui permet (par exemple, sélectionne pour) des intervalles et des événements correspondants. Iroha considère que les niveaux moins exclusifs (comme trace ou info) sont plus verbeux que les niveaux plus exclusives (commeerror ou warn).

A un niveau élevé, la syntaxe des directives est composée de plusieurs parties:

target[span{field=value}]=level

Pour plus de détails, voir la documentation tracing-subscriber.

Env:LOG_FILTER
toml
[logger]
filter = "iroha_core=debug,iroha_p2p=debug"
shell
LOG_FILTER=iroha_core=debug,iroha_p2p=debug

Compatibilité avec le logger.level

logger.filter fonctionne conjointement avec logger.level et aucun des deux ne superpose l'autre.

Par exemple, si logger.level est fixé à INFO et logger.filter est fixé à iroha_core=debug, l'ensemble de filtres résultant sera info,iroha_core=debug (c'est à dire: info pour tous les modules, debug pour iroha_core).

Mise à jour de l'heure d'exécution

Ce paramètre est soumis à une mise à jour de la configuration du temps d'exécution par l'intermédiaire des terminaux Torii de l'opérateur.

logger.format

Le format des journaux.

Type:

Chaîne, valeurs possibles:

  • full: Le formatateur par défaut. Il émet des journaux lisibles par l'homme, en ligne unique pour chaque événement qui se produit, avec le contexte d'espace actuel affiché avant la représentation formattée de l'événement.
  • compact: Une variante du formatateur par défaut, optimisée pour les longueurs de lignes courtes. Les champs du contexte d'étendue actuel sont ajoutés aux champs de l'événement formaté et les noms d'étendu ne sont pas affichés; le niveau de verbosité est abrégé à un seul caractère.
  • pretty: Émet des journaux de plusieurs lignes extrêmement beaux, optimisés pour la lisibilité humaine. Ceci est principalement destiné à être utilisé dans le développement local et le débogage, ou pour les applications de ligne de commande, lorsque l'analyse automatisée et le stockage compact des journaux sont moins prioritaires que la lisibilité et l'attrait visuel.
  • json: Sorties de journaux JSON délimités en nouvelle ligne. Ceci est destiné à l'utilisation dans la production avec des systèmes où les journaux structurés sont consommés comme JSON par des outils d'analyse et de visualisation. La sortie JSON n'est pas optimisée pour la lisibilité humaine.

Pour plus de détails et des résultats d'échantillonnage, voir la documentation tracing-subscriber.

Default:full
Env:LOG_FORMAT
toml
[logger]
format = "json"
shell
LOG_FORMAT=json

Kura

Kura est le moteur de stockage persistant de Iroha (en japonais pour entrepôt).

kura.blocks_in_memory

Au plus N derniers blocs seront stockés dans la mémoire.

Les anciens blocs seront supprimés de la mémoire et chargés du disque si nécessaire.

Type: Number
Default:1024
Env:KURA_BLOCKS_IN_MEMORY
toml
[kura]
blocks_in_memory = 1024
shell
KURA_BLOCKS_IN_MEMORY=1024

kura.init_mode

Mode d'initialisation Kura

Type:

Chaîne, valeurs possibles:

  • strict: validation stricte de tous les blocs
  • fast: Initialisation rapide avec seulement des contrôles de base
Default:strict
Env:KURA_INIT_MODE
toml
[kura]
init_mode = "fast"
shell
KURA_INIT_MODE=fast

kura.store_dir

Désigne le répertoire[^paths] où les blocs sont stockés.

Voir aussi: snapshot.store_dir.

Type: String, file path (relative to the config file or CWD)
Default:./storage
Env:KURA_STORE_DIR
toml
[kura]
store_dir = "/path/to/storage"
shell
KURA_STORE_DIR=/path/to/storage

kura.debug.output_new_blocks debug

Drapeau pour permettre l'impression de nouveaux blocs à la console.

Type:todo bool
Default:false
Env:KURA_DEBUG_OUTPUT_NEW_BLOCKS
toml
[kura.debug]
output_new_blocks = true
shell
KURA_DEBUG_OUTPUT_NEW_BLOCKS=true

La file d'attente

queue.capacity

La limite supérieure du nombre de transactions en attente dans la file d'attente.

Type: Number
Default:65_536
toml
[queue]
capacity = 1_048_576

queue.capacity_per_user

La limite supérieure du nombre de transactions en attente dans la file d'attente pour un seul utilisateur.

Utilisez cette option pour appliquer une throttling.

Type: Number
Default:65_536
toml
[queue]
capacity_per_user = 1_048_576

queue.transaction_time_to_live_ms

La transaction sera abandonnée après cette période si elle est toujours en file d'attente.

Type: Number, duration in milliseconds
Default:86_400_000 (24 hours)
toml
[queue]
transaction_time_to_live_ms = 43_200_000

Sumeragi

sumeragi.debug.force_soft_fork debug

Le commutateur de débogage uniquement pour l'exercice des chemins de manipulation de la fourchette douce Sumeragi. Laissez cela désactivé en dehors des tests contrôlés; le modifier sur un réseau de production en cours d'exécution peut amener les pairs à ne pas être d'accord sur le comportement consensuel.

Type:todo bool
Default:false
toml
[sumeragi.debug]
force_soft_fork = true

Une prise de vue

Ce module est responsable de la lecture et de l'écriture d'images instantanées du World State View.

Les snapshots stockent un point de contrôle sérialisé du World State View afin qu'un pair puisse redémarrer sans reproduire chaque bloc de Kura. Kura reste l'historique durable des blocs et la source de vérité pour la reproduction; les snapshots sont une voie d'accélération. Lors du démarrage, Iroha vérifie les métadonnées d'instantané avec la chaîne configurée et les blocs stockés avant de décider de charger un instantané ou de revenir à la reproduction.

Éliminer les instantanés

Dans le cas où quelque chose ne va pas avec le système de snapshots, et que vous souhaitiez commencer à partir d'une page vide (en termes de snapshot), vous pouvez supprimer l'annuaire spécifié par snapshot.store_dir.

snapshot.mode

Le mode dans lequel fonctionne le système Snapshot.

Type:

Chaîne, valeurs possibles:

  • read_write: Iroha crée des instantanés avec une période spécifiée par snapshot.create_every_ms. Lors du démarrage, Iroha lit un instantané existant (le cas échéant) et vérifie qu'il est à jour avec le stockage de blocs.
  • readonly: similaire à read_write mais Iroha ne crée aucun instantané.
  • disabled: Iroha ne crée pas de nouveaux instantanés ni ne lit un instantané existant au démarrage.
Default:read_write
Env:SNAPSHOT_MODE
toml
[snapshot]
mode = "readonly"
shell
SNAPSHOT_MODE=readonly

snapshot.create_every_ms

La fréquence des prises de vue.

Type: Number, duration in milliseconds
Default:600_000 (10 minutes)
toml
[snapshot]
create_every_ms = 60_000

snapshot.store_dir

L'annuaire où stocker les instantanés.

Voir aussi: kura.store_dir

Type: String, file path (relative to the config file or CWD)
Default:./storage/snapshot
Env:SNAPSHOT_STORE_DIR
toml
[snapshot]
store_dir = "/path/to/storage"
shell
SNAPSHOT_STORE_DIR="/path/to/storage"

Télémétrie

La télémétrie exporte le diagnostic des pairs vers un collecteur de télémétrique externe. Configurez à la fois telemetry.name et telemetry.url lorsqu'un paire doit faire rapport à un collecteur; omettez la section lorsque la téléméthérie n'est pas utilisée.

name et url doivent être associés.

Toutes les sections telemetry sont facultatives.

telemetry.name

Le nom du nœud sera affiché sur la télémétrie.

Type: String
toml
[telemetry]
name = "iroha"

telemetry.url

Le WebSocket URL du collecteur de télémétrie.

Type: String
toml
[telemetry]
url = "ws://telemetry.example.com/submit"

telemetry.min_retry_period_ms

La période minimale d'attente avant la reconnexion.

Type: Number, duration in milliseconds
Default:1_000 (1 second)
toml
[telemetry]
min_retry_period_ms = 5_000

telemetry.max_retry_delay_exponent

L'exponente maximale de 2 qui est utilisée pour augmenter le délai entre les reconnections.

Type: Number
Default:4
toml
[telemetry]
max_retry_delay_exponent = 4

dev_telemetry.out_file

Le chemin du fichier pour écrire la télémétrie à

Type: String, file path (relative to the config file or CWD)
toml
[dev_telemetry]
out_file = "/path/to/file.json"