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 |
chain = "00000000-0000-0000-0000-000000000000"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 |
public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2"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 |
private_key = "8926201CA347641228C3B79AA43839DEDC85FA51C0E8B9B6A00F6B0D6B0423E902973F"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 |
|---|---|
| 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 entradas de prueba de posesión para los compañeros de confianza del validador.
| Type: | Arrays de objetos con campos |
|---|---|
| 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"}
]'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 |
[genesis]
file = "./genesis.signed.nrt"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 |
[genesis]
public_key = "ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"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 |
[network]
address = "0.0.0.0:1337"P2P_ADDRESS=0.0.0.0:1337network.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 |
[network]
public_address = "0.0.0.0:5000"P2P_PUBLIC_ADDRESS=0.0.0.0:5000network.block_gossip_size
La cantidad de bloques que se pueden enviar en un solo mensaje de sincronización.
| Type: | Number |
|---|---|
| Default: | 4 |
[network]
block_gossip_size = 256network.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) |
[network]
block_gossip_period_ms = 1_000network.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 |
[network]
transaction_gossip_size = 256network.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) |
[network]
transaction_gossip_period_ms = 5_000network.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) |
[network]
idle_timeout_ms = 300_000Torii
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 |
[torii]
address = "0.0.0.0:8080"API_ADDRESS=0.0.0.0:8080torii.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: |
|
[torii]
max_content_len = 64_000_000torii.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) |
[torii]
query_idle_time_ms = 10_000torii.query_store_capacity
El límite superior de la cantidad de consultas en vivo.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity = 128torii.query_store_capacity_per_user
El límite superior del número de consultas en vivo para un solo usuario.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity_per_user = 128El madero
logger.level
Verbosidad general de registro (véase logger.filter para la configuración refinada).
| Type: | Cuerdas, valores posibles:
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 |
[logger]
level = "INFO"LOG_LEVEL=INFOActualizació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 En un nivel elevado, la sintaxis de las directivas se compone de varias partes: Para obtener más detalles, véase la documentación |
|---|---|
| Env: | LOG_FILTER |
[logger]
filter = "iroha_core=debug,iroha_p2p=debug"LOG_FILTER=iroha_core=debug,iroha_p2p=debugCompatibilidad 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:
Para obtener más detalles y resultados de la muestra, véase la documentación |
|---|---|
| Default: | full |
| Env: | LOG_FORMAT |
[logger]
format = "json"LOG_FORMAT=jsonKura
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 |
[kura]
blocks_in_memory = 1024KURA_BLOCKS_IN_MEMORY=1024kura.init_mode
Modo de inicialización Kura
| Type: | Cuerdas, valores posibles:
|
|---|---|
| Default: | strict |
| Env: | KURA_INIT_MODE |
[kura]
init_mode = "fast"KURA_INIT_MODE=fastkura.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 |
[kura]
store_dir = "/path/to/storage"KURA_STORE_DIR=/path/to/storagekura.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 |
[kura.debug]
output_new_blocks = trueKURA_DEBUG_OUTPUT_NEW_BLOCKS=trueCuadra
queue.capacity
El límite superior del número de transacciones que esperan en la cola.
| Type: | Number |
|---|---|
| Default: | 65_536 |
[queue]
capacity = 1_048_576queue.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 |
[queue]
capacity_per_user = 1_048_576queue.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) |
[queue]
transaction_time_to_live_ms = 43_200_000Sumeragi
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 |
[sumeragi.debug]
force_soft_fork = trueImagen 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:
|
|---|---|
| Default: | read_write |
| Env: | SNAPSHOT_MODE |
[snapshot]
mode = "readonly"SNAPSHOT_MODE=readonlysnapshot.create_every_ms
La frecuencia de las instantáneas.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 600_000 (10 minutes) |
[snapshot]
create_every_ms = 60_000snapshot.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 |
[snapshot]
store_dir = "/path/to/storage"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 |
|---|
[telemetry]
name = "iroha"telemetry.url
El WebSocket URL del colector de telemetría.
| Type: | String |
|---|
[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) |
[telemetry]
min_retry_period_ms = 5_000telemetry.max_retry_delay_exponent
El exponente máximo de 2 que se utiliza para aumentar el retraso entre las reconexiones.
| Type: | Number |
|---|---|
| Default: | 4 |
[telemetry]
max_retry_delay_exponent = 4dev_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) |
|---|
[dev_telemetry]
out_file = "/path/to/file.json"