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"