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 |
chain = "00000000-0000-0000-0000-000000000000"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 |
public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2"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 |
private_key = "8926201CA347641228C3B79AA43839DEDC85FA51C0E8B9B6A00F6B0D6B0423E902973F"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 |
|---|---|
| Env: | TRUSTED_PEERS |
trusted_peers = [
"ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2@127.0.0.1:1337",
"ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77@127.0.0.1:1338",
]# 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 |
|---|---|
| Env: | TRUSTED_PEERS_POP |
trusted_peers_pop = [
{ public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2", pop_hex = "8515da750f81182aaba5c22fc9f03a01e81ed85e4495a2ca6b29a71c0c8549537e31e79cddf6ff285b9e22d0d9dc17ce0f46e7d0cf78b2ef9feab50c849a1ea8e1e4f07e966f6113faa8a999317545d9f111b8e08a7273913710b43a20b19c08" },
{ public_key = "ea0130A7E9D016D723F72942FCF4B988FB599EA0E092F73C8B68E69F4E8B3FE542A3F7E48AD6CD15F3EB484E45F79399071F77", pop_hex = "a14eb180f0d78c55d2c034e91ccf691378e9c3ceed8e0b81d3e4b7c215c0dbb633bb9f1c5063911c31af4610016c164015f0f93db3c7df6a2ad0c39338fe7695b976a59fd13797615f229fbd77276a8bb2842e4e44fadcafdb7b37f4a143b913" },
]# 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 |
[genesis]
file = "./genesis.signed.nrt"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 |
[genesis]
public_key = "ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"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 |
[network]
address = "0.0.0.0:1337"P2P_ADDRESS=0.0.0.0:1337network.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 |
[network]
public_address = "0.0.0.0:5000"P2P_PUBLIC_ADDRESS=0.0.0.0:5000network.block_gossip_size
Le nombre de blocs qui peuvent être envoyés dans un seul message de synchronisation.
| Type: | Number |
|---|---|
| Default: | 4 |
[network]
block_gossip_size = 256network.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) |
[network]
block_gossip_period_ms = 1_000network.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 |
[network]
transaction_gossip_size = 256network.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) |
[network]
transaction_gossip_period_ms = 5_000network.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) |
[network]
idle_timeout_ms = 300_000Torii
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 |
[torii]
address = "0.0.0.0:8080"API_ADDRESS=0.0.0.0:8080torii.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: |
|
[torii]
max_content_len = 64_000_000torii.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) |
[torii]
query_idle_time_ms = 10_000torii.query_store_capacity
La limite supérieure du nombre de requêtes en direct.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity = 128torii.query_store_capacity_per_user
La limite supérieure du nombre de requêtes en direct pour un seul utilisateur.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity_per_user = 128Arboriste
logger.level
Verbosité générale en matière d'enregistrement (voir logger.filter pour la configuration affinée).
| Type: | Chaîne, valeurs possibles:
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 |
[logger]
level = "INFO"LOG_LEVEL=INFOMise à 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 A un niveau élevé, la syntaxe des directives est composée de plusieurs parties: Pour plus de détails, voir la documentation |
|---|---|
| Env: | LOG_FILTER |
[logger]
filter = "iroha_core=debug,iroha_p2p=debug"LOG_FILTER=iroha_core=debug,iroha_p2p=debugCompatibilité 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:
Pour plus de détails et des résultats d'échantillonnage, voir la documentation |
|---|---|
| Default: | full |
| Env: | LOG_FORMAT |
[logger]
format = "json"LOG_FORMAT=jsonKura
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 |
[kura]
blocks_in_memory = 1024KURA_BLOCKS_IN_MEMORY=1024kura.init_mode
Mode d'initialisation Kura
| Type: | Chaîne, valeurs possibles:
|
|---|---|
| Default: | strict |
| Env: | KURA_INIT_MODE |
[kura]
init_mode = "fast"KURA_INIT_MODE=fastkura.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 |
[kura]
store_dir = "/path/to/storage"KURA_STORE_DIR=/path/to/storagekura.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 |
[kura.debug]
output_new_blocks = trueKURA_DEBUG_OUTPUT_NEW_BLOCKS=trueLa 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 |
[queue]
capacity = 1_048_576queue.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 |
[queue]
capacity_per_user = 1_048_576queue.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) |
[queue]
transaction_time_to_live_ms = 43_200_000Sumeragi
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 |
[sumeragi.debug]
force_soft_fork = trueUne 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:
|
|---|---|
| Default: | read_write |
| Env: | SNAPSHOT_MODE |
[snapshot]
mode = "readonly"SNAPSHOT_MODE=readonlysnapshot.create_every_ms
La fréquence des prises de vue.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 600_000 (10 minutes) |
[snapshot]
create_every_ms = 60_000snapshot.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 |
[snapshot]
store_dir = "/path/to/storage"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 |
|---|
[telemetry]
name = "iroha"telemetry.url
Le WebSocket URL du collecteur de télémétrie.
| Type: | String |
|---|
[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) |
[telemetry]
min_retry_period_ms = 5_000telemetry.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 |
[telemetry]
max_retry_delay_exponent = 4dev_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) |
|---|
[dev_telemetry]
out_file = "/path/to/file.json"