Skip to content

Parâmetros de configuração

[toc]

Nível de raiz

chain required

Cadeia ID que deve ser incluída em cada transação.

Um ataque de repetição é uma tentativa de submeter uma transação válida a uma rede diferente da que foi destinada. Como o chain faz parte da carga útil das transações assinadas, uma transação assinada para uma cadeia é rejeitada por pares que usam outra cadeia ID.

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

public_key required

Chave pública do peer. Os pares de validadores de consenso devem usar chaves BLS-Normal.

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

private_key required

Chave privada do peer. Deve corresponder a public_key; os pares validadores de consenso devem usar chaves normais BLS-

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

trusted_peers

Lista de colegas de confiança pré-definidos.

Os validadores de consenso devem usar BLS-Chaves peer normais. Para cada validador, também forneça uma entrada correspondente trusted_peers_pop.

Type:

Array of peer strings. Use PUBLIC_KEY@ADDRESS quando o endereço P2P é conhecido; também é aceito PUBLIC_KEY nu e permite que o endereçamento de pares seja descoberto a partir do fofoco.

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 prova de posse para os pares confiáveis do validador.

Type:

Array de objetos com campos public_key e 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

Caminho de arquivo para a carga útil do bloco genesis assinado gerada por kagami genesis sign. Os perfis gerados normalmente escrevem isso como um arquivo 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

A chave pública do par de chaves da Gênesis.

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

Rede

network.address required

Endereço para comunicação p2p para efeitos de consenso (sumeragi) e sincronização de blocos (bloco_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

Endereço peer-to-peer (externo, como visto por outros pares).

Serão fofocas para colegas ligados para que eles possam fofocar isso para outros colegas.

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

A quantidade de blocos que podem ser enviados em uma única mensagem de sincronização.

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

network.block_gossip_period_ms

O intervalo de tempo entre os pedidos aos pares para o bloco mais recente.

Os fofocas mais frequentes reduzem o tempo de sincronização, mas podem sobrecarregar a rede.

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 transações em uma mensagem de boatos.

Um tamanho menor leva a um tempo de sincronização mais longo, mas útil se tiver uma alta perda de pacotes.

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

network.transaction_gossip_period_ms

Período de fofocas pendentes a transacção entre pares.

Os fofocas mais frequentes reduzem o tempo de sincronização, mas podem sobrecarregar a rede.

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

network.idle_timeout_ms

Duração do tempo após o qual a conexão com os pares é interrompida se os pares estiverem inactivos.

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

Torii

torii.address required

Endereço ao qual o servidor Torii deve prestar ouvidos e ao qual os clientes (((s) fazem as suas solicitações.

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

O número máximo de bytes em um corpo de solicitação bruto aceito pelos pontos finais Torii .

Este limite é utilizado para prevenir os ataques DOS.

Type:

Número (de bytes)

Default:

64_000_000 (64 milhões de bytes)

toml
[torii]
max_content_len = 64_000_000

torii.query_idle_time_ms

O tempo em que uma consulta pode permanecer na loja se não tiver acesso.

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

torii.query_store_capacity

O limite superior do número de consultas ao vivo.

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

torii.query_store_capacity_per_user

O limite máximo do número de consultas ao vivo para um único utilizador.

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

Loja de madeira

logger.level

Verbosidade geral de registro (ver logger.filter para a configuração refinada).

Type:

String, valores possíveis:

  • TRACE: Todos os eventos, incluindo as operações de baixo nível.
  • DEBUG: Mensagens de nível de depuração, úteis para diagnóstico.
  • INFO: Mensagens de informação gerais.
  • WARN: Avisos que indicam problemas potenciais.
  • ERROR: Erros que perturbam a função normal, mas permitem uma continuação da operação.

Escolha o nível que mais se adapte ao seu caso de uso. Consulte Stack Overflow para obter detalhes adicionais sobre como usar diferentes níveis de registro.

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

Atualização do tempo de execução

Este parâmetro está sujeito a uma atualização da configuração de tempo de execução através dos pontos finais do operador Torii.

logger.filter

Filtros de registro refinados além do logger.level. Permite personalizar a verbosidade de registro por alvo.

Type:

Cada directiva pode ter um nível máximo de verbosidade correspondente que permita (por exemplo, selecionar) intervalos e eventos correspondentes. O Iroha considera que os níveis menos exclusivos (como trace ou info) são mais verbosos do que os mais exclusivos (tais como error ou warn).

A nível elevado, a sintaxe das directivas consiste em várias partes:

target[span{field=value}]=level

Para mais informações, veja a documentação tracing-subscriber.

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

Compatibilidade com logger.level

logger.filter trabalha em conjunto com logger.level e nenhum dos dois superscreve o outro.

Por exemplo, se o logger.level for definido em INFO e o logger.filter é definido emiroha_core=debug, o conjunto de filtros resultante será info,iroha_core=debug (ou seja, info para todos os módulos, debug para iroha_core.

Atualização do tempo de execução

Este parâmetro está sujeito a uma atualização da configuração de tempo de execução através dos pontos finais do operador Torii.

logger.format

Formatos de registos.

Type:

String, valores possíveis:

  • full: O formatador padrão. Este emite registros de linha única e legíveis por pessoa para cada evento que ocorre, com o contexto do espaço atual exibido antes da representação formateada do evento.
  • compact: Uma variante do formatador padrão, otimizada para comprimentos de linhas curtas. Os campos do contexto de span atual são anexados aos campos do evento formatizado e os nomes de span não são mostrados; o nível de verbosidade é abreviado para um único caracteres.
  • pretty: Emite registros muito bonitos, de várias linhas, otimizados para leitura humana. Este é principalmente destinado a ser usado em desenvolvimento local e depuração, ou para aplicações de linha de comando, Quando a análise automática e o armazenamento compacto dos registos sejam menos prioritários do que a legibilidade e a atração visual.
  • json: Saídas de registros JSON com linha nova e limitada. Isto é destinado à utilização em produção em sistemas onde registros estruturados são consumidos como JSON por ferramentas de análise e visualização. A saída JSON não é otimizada para a legibilidade humana.

Para obter mais detalhes e resultados da amostra, ver a documentação tracing-subscriber.

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

Kura

O Kura é o motor de armazenamento persistente do Iroha (japonês para armazém).

kura.blocks_in_memory

No máximo, N últimos blocos serão armazenados na memória.

Os blocos mais antigos serão retirados da memória e carregados do disco se forem necessários.

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 inicialização Kura

Type:

String, valores possíveis:

  • strict: validação rigorosa de todos os blocos
  • fast: Inicialização rápida, com apenas controlos básicos
Default:strict
Env:KURA_INIT_MODE
toml
[kura]
init_mode = "fast"
shell
KURA_INIT_MODE=fast

kura.store_dir

Especifica o diretório [^paths] onde os blocos são armazenados.

Veja também: 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

Bandeira para permitir a impressão de novos blocos no 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

Cotação

queue.capacity

O limite superior do número de transações à espera na fila.

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

queue.capacity_per_user

O limite superior do número de transacções à espera na fila para um único utilizador.

Utilize esta opção para aplicar o estrogamento.

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

queue.transaction_time_to_live_ms

A transacção será cancelada após este período, se ainda estiver na fila.

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

O interruptor de depuração apenas para o exercício dos caminhos de manuseio de garfo macio Sumeragi. Deixe isso desativado fora de testes controlados; mudando-o em uma rede de produção em execução pode fazer com que os colegas discordem sobre o comportamento de consenso.

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

Imagem instantânea

Este módulo é responsável pela leitura e escrita de instantâneos do World State View.

Snapshots armazenam um ponto de verificação serializado do World State View para que um peer possa reiniciar sem repetição de cada bloco a partir de Kura. Kura permanece o histórico duradouro de blocos e a fonte de verdade para repetição; snapshots são um caminho de aceleração. Na inicialização, Iroha verifica os metadados de snapshot contra a cadeia configurada e os blocos armazenados antes de decidir se deve carregar um snapshot ou voltar à reprodução.

Esfolar imagens instantâneas

Caso algo esteja errado com o sistema de instantâneos, e você queira começar a partir de uma página em branco (em termos de instantâneas), você pode remover o diretório especificado por snapshot.store_dir.

snapshot.mode

O modo em que o sistema Snapshot funciona.

Type:

String, valores possíveis:

  • read_write: Iroha cria instantâneos com um período especificado por snapshot.create_every_ms. Ao iniciar, Iroha lê uma instantânea existente (se houver) e verifica que está atualizada com o armazenamento de blocos.
  • readonly: Semelhante a read_write mas Iroha não cria nenhuma instantânea.
  • disabled: Iroha não cria novos instantâneos nem lê um existente no início.
Default:read_write
Env:SNAPSHOT_MODE
toml
[snapshot]
mode = "readonly"
shell
SNAPSHOT_MODE=readonly

snapshot.create_every_ms

Frequência de instantâneos.

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

snapshot.store_dir

Directório onde armazenar instantâneos.

Ver também: 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"

Telemetria

A telemetria exporta o diagnóstico de pares para um coletor externo de telemetria. Configure tanto telemetry.name como telemetry.url quando um peer deve relatar a um coleccionador; omita a seção quando a telemetria não é usada.

O name e o url devem ser emparelhados.

Todas as secções telemetry são opcionais.

telemetry.name

O nome do nó deve ser exibido na telemetria.

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

telemetry.url

O WebSocket URL do coletor de telemetria.

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

telemetry.min_retry_period_ms

O período mínimo de espera antes da reconexão.

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

telemetry.max_retry_delay_exponent

O exponente máximo de 2 utilizado para aumentar o atraso entre as reconexões.

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

dev_telemetry.out_file

O caminho de arquivo para escrever dev-telemetria para

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