Skip to content

Parámetros de configuración ​

En la actualidad, el número de personas

Nivel de raíz ​

chain required ​

Cadena ID que debe ser incluida en cada transacción.

Un ataque de repetición es un intento de enviar una transacción válida a una red diferente a la que estaba destinada. Debido a que el chain forma parte de la carga útil de transacciones firmadas, una transacción firmada para una cadena es rechazada por pares que utilizan otra cadena ID.

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

public_key required ​

Clave pública del par. Los pares de validadores de consenso deben utilizar las claves BLS-Normal.

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

private_key required ​

Clave privada del peer. Debe coincidir con public_key; los pares validadores de consenso deben utilizar las claves normales BLS.

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

trusted_peers ​

Lista de compañeros de confianza predefinidos.

Los validadores de consenso deben usar las claves BLS-Normal Peer. Para cada validador, también proporcione una entrada correspondiente trusted_peers_pop.

Type:

Array of peer strings. Utilice PUBLIC_KEY@ADDRESS cuando se conozca la dirección P2P; también se acepta el PUBLIC_KEY desnudo y permite descubrir la dirección de los pares a partir del chisme.

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 entradas de prueba de posesión para los compañeros de confianza del validador.

Type:

Arrays de objetos con campos public_key y 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"}
]'

Génesis ​

genesis.file ​

Camino de archivo a la carga útil del bloque genesis firmado generada por kagami genesis sign. Los perfiles generados comúnmente escriben esto como un archivo 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 clave pública del par de llaves genéticas.

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

La red ​

network.address required ​

Dirección para la comunicación p2p con fines de consenso (sumeragi) y sincronización de bloques (bloque_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 ​

Dirección peer-to-peer (externa, según lo visto por otros pares).

Serán chismeados a compañeros conectados para que puedan chimearlo a otros compañeros.

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 ​

La cantidad de bloques que se pueden enviar en un solo mensaje de sincronización.

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

network.block_gossip_period_ms ​

El intervalo de tiempo entre las solicitudes a los pares por el bloque más reciente.

El chisme más frecuente acorta el tiempo de sincronización, pero puede sobrecargar a la red.

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

network.transaction_gossip_size ​

Número máximo de transacciones en un mensaje de chismes.

El tamaño más pequeño lleva a un tiempo más largo para sincronizarse, pero es útil si tiene una alta pérdida de paquetes.

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

network.transaction_gossip_period_ms ​

Periodo de chismes en espera de una transacción entre compañeros.

El chisme más frecuente acorta el tiempo de sincronización, pero puede sobrecargar a la red.

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

network.idle_timeout_ms ​

Duración del tiempo después del cual se interrumpe la conexión con el compañero si el compañero está inactivo.

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

Torii ​

torii.address required ​

Dirección a la que el servidor Torii debe escuchar y a la que los clientes pueden hacer sus solicitudes.

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 ​

El número máximo de bytes en un cuerpo de solicitud bruto aceptado por los puntos finales Torii .

Este límite se utiliza para prevenir los ataques DOS.

Type:

Número (de bytes)

Default:

64_000_000 (64 millones de bytes)

toml
[torii]
max_content_len = 64_000_000

torii.query_idle_time_ms ​

El tiempo en que una consulta puede permanecer en la tienda si no se accede.

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

torii.query_store_capacity ​

El límite superior de la cantidad de consultas en vivo.

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

torii.query_store_capacity_per_user ​

El límite superior del número de consultas en vivo para un solo usuario.

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

El madero ​

logger.level ​

Verbosidad general de registro (véase logger.filter para la configuración refinada).

Type:

Cuerdas, valores posibles:

  • TRACE: Todos los eventos, incluidas las operaciones de bajo nivel.
  • DEBUG: Mensajes de nivel de defecto, útiles para el diagnóstico.
  • INFO: Mensajes de información generales.
  • WARN: Advertencias que indican posibles problemas.
  • ERROR: Errores que interrumpan la función normal pero permiten una operación continua.

Seleccione el nivel que más se adapte a su caso de uso. Consulte Stack Overflow para obtener detalles adicionales sobre cómo utilizar diferentes niveles de registro.

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

Actualización del tiempo de ejecución

Este parámetro está sujeto a la actualización de la configuración del tiempo de ejecución a través de los puntos finales del operador Torii.

logger.filter ​

Filtros de registro refinados además de logger.level. Permite personalizar la verbosidad del registro por objetivo.

Type:

La cadena consiste en una o más directivas separadas por vírgulas, cada directiva puede tener un nivel máximo de verbosidad correspondiente que permita (por ejemplo, selecciona para) intervalos y eventos que coincidan. El Iroha considera que los niveles menos exclusivos (como el trace o el info) son más verbales que los niveles más exclusivos (cómo el error o el warn).

En un nivel elevado, la sintaxis de las directivas se compone de varias partes:

target[span{field=value}]=level

Para obtener más detalles, véase la documentación tracing-subscriber.

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

Compatibilidad con logger.level

logger.filter trabaja junto con logger.level y ninguno de ellos superpone al otro.

Por ejemplo, si logger.level está configurado en INFO y logger.filter es configurado eniroha_core=debug, el conjunto de filtros resultante será info,iroha_core=debug (es decir, info para todos los módulos, debug para iroha_core.

Actualización del tiempo de ejecución

Este parámetro está sujeto a la actualización de la configuración del tiempo de ejecución a través de los puntos finales del operador Torii.

logger.format ​

El formato de registro.

Type:

Cuerdas, valores posibles:

  • full: El formatador predeterminado. Esto emite registros legibles por humanos de una sola línea para cada evento que ocurra, con el contexto actual del período mostrado antes de la representación formateada del evento.
  • compact: Una variante del formatador predeterminado, optimizada para longitudes de líneas cortas. Se adjuntan campos del contexto de extensión actual a los campos del evento formateado y no se muestran nombres de extensión; el nivel de verbosidad se abrevia a un solo carácter.
  • pretty: Emite registros excesivamente bonitos, de varias líneas, optimizados para la legibilidad humana. Esto está destinado principalmente a ser utilizado en el desarrollo local y depuración, o para aplicaciones de línea de comandos Cuando el análisis automatizado y el almacenamiento compacto de los registros sean menos prioritarios que la legibilidad y el atractivo visual.
  • json: Produce registros de nueva línea delimitados JSON. Esto está destinado a ser utilizado en producción con sistemas donde los registros estructurados se consumen como JSON mediante herramientas de análisis y visualización. La salida JSON no está optimizada para su legibilidad humana.

Para obtener más detalles y resultados de la muestra, véase la documentación tracing-subscriber.

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

Kura ​

Kura es el motor de almacenamiento persistente de Iroha (en japonés para almacén).

kura.blocks_in_memory ​

El máximo de N últimos bloques se almacenarán en la memoria.

Los bloques más antiguos se dejarán caer de la memoria y se cargarán del disco si son necesarios.

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

kura.init_mode ​

Modo de inicialización Kura

Type:

Cuerdas, valores posibles:

  • strict: validación estricta de todos los bloques
  • fast: Iniciación rápida con solo controles básicos
Default:strict
Env:KURA_INIT_MODE
toml
[kura]
init_mode = "fast"
shell
KURA_INIT_MODE=fast

kura.store_dir ​

Especifica el directorio [^paths] donde se almacenan los bloques.

Véase también: 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 ​

Bandera para permitir la impresión de nuevos bloques en consola.

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

Cuadra ​

queue.capacity ​

El límite superior del número de transacciones que esperan en la cola.

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

queue.capacity_per_user ​

El límite superior del número de transacciones que esperan en la cola para un solo usuario.

Utilice esta opción para aplicar el estrollo.

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

queue.transaction_time_to_live_ms ​

La transacción se cancelará después de este tiempo si todavía está en la cola.

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 ​

El interruptor de depuración solo para ejercer las rutas de manejo de horquilla suave Sumeragi. Deja esto desactivado fuera de las pruebas controladas; cambiarlo en una red de producción en funcionamiento puede hacer que los pares no estén de acuerdo sobre el comportamiento de consenso.

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

Imagen instantánea ​

Este módulo es responsable de leer y escribir instantáneas del World State View.

Las instantáneas almacenan un punto de control serializado de la vista del estado mundial para que un compañero pueda reiniciar sin reproducir cada bloque desde Kura. Kura sigue siendo el historial duradero del bloque y la fuente de verdad para la repetición; las instantáneas son una ruta de aceleración. Al iniciar, Iroha comprueba los metadatos de instantáneas con la cadena configurada y los bloques almacenados antes de decidir si cargar una instantánea o volver a reproducir.

Esborrar las instantáneas

En caso de que algo no esté bien con el sistema de instantáneas, y quieras comenzar desde una página en blanco (en términos de instantáneos), podrías eliminar el directorio especificado por snapshot.store_dir.

snapshot.mode ​

El modo en el que funciona el sistema Snapshot.

Type:

Cuerdas, valores posibles:

  • read_write: Iroha crea instantáneas con un período especificado por snapshot.create_every_ms. Al iniciar, Iroha lee una instantánea existente (si la hay) y verifica que está actualizada con el almacenamiento de bloques.
  • readonly: Similar a read_write pero Iroha no crea ninguna instantánea.
  • disabled: Iroha no crea nuevas instantáneas ni lee una existente en el inicio.
Default:read_write
Env:SNAPSHOT_MODE
toml
[snapshot]
mode = "readonly"
shell
SNAPSHOT_MODE=readonly

snapshot.create_every_ms ​

La frecuencia de las instantáneas.

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

snapshot.store_dir ​

Directorio donde guardar las instantáneas.

Véase también: 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"

Telemetría ​

Telemetría exporta el diagnóstico de pares a un colector externo de telemetría. Configurar tanto telemetry.name como telemetry.url cuando un peer debe informar al colector; omitir la sección cuando no se utiliza la telemetría .

name y url deben ser emparejados.

Todas las secciones telemetry son opcionales.

telemetry.name ​

El nombre del nodo que se mostrará en la telemetría.

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

telemetry.url ​

El WebSocket URL del colector de telemetría.

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

telemetry.min_retry_period_ms ​

El período mínimo de tiempo para esperar antes de reconectar.

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

telemetry.max_retry_delay_exponent ​

El exponente máximo de 2 que se utiliza para aumentar el retraso entre las reconexiones.

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

dev_telemetry.out_file ​

El camino del archivo para escribir la telemetría de desarrollo a

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