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 |
chain = "00000000-0000-0000-0000-000000000000"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 |
public_key = "ea01309060D021340617E9554CCBC2CF3CC3DB922A9BA323ABDF7C271FCC6EF69BE7A8DEBCA7D9E96C0F0089ABA22CDAADE4A2"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 |
private_key = "8926201CA347641228C3B79AA43839DEDC85FA51C0E8B9B6A00F6B0D6B0423E902973F"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 |
|---|---|
| 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 prova de posse para os pares confiáveis do validador.
| Type: | Array de objetos com 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
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 |
[genesis]
file = "./genesis.signed.nrt"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 |
[genesis]
public_key = "ed01208BA62848CF767D72E7F7F4B9D2D7BA07FEE33760F79ABE5597A51520E292A0CB"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 |
[network]
address = "0.0.0.0:1337"P2P_ADDRESS=0.0.0.0:1337network.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 |
[network]
public_address = "0.0.0.0:5000"P2P_PUBLIC_ADDRESS=0.0.0.0:5000network.block_gossip_size
A quantidade de blocos que podem ser enviados em uma única mensagem de sincronização.
| Type: | Number |
|---|---|
| Default: | 4 |
[network]
block_gossip_size = 256network.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) |
[network]
block_gossip_period_ms = 1_000network.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 |
[network]
transaction_gossip_size = 256network.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) |
[network]
transaction_gossip_period_ms = 5_000network.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) |
[network]
idle_timeout_ms = 300_000Torii
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 |
[torii]
address = "0.0.0.0:8080"API_ADDRESS=0.0.0.0:8080torii.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: |
|
[torii]
max_content_len = 64_000_000torii.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) |
[torii]
query_idle_time_ms = 10_000torii.query_store_capacity
O limite superior do número de consultas ao vivo.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity = 128torii.query_store_capacity_per_user
O limite máximo do número de consultas ao vivo para um único utilizador.
| Type: | Number |
|---|---|
| Default: | 128 |
[torii]
query_store_capacity_per_user = 128Loja de madeira
logger.level
Verbosidade geral de registro (ver logger.filter para a configuração refinada).
| Type: | String, valores possíveis:
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 |
[logger]
level = "INFO"LOG_LEVEL=INFOAtualizaçã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 A nível elevado, a sintaxe das directivas consiste em várias partes: Para mais informações, veja a documentação |
|---|---|
| Env: | LOG_FILTER |
[logger]
filter = "iroha_core=debug,iroha_p2p=debug"LOG_FILTER=iroha_core=debug,iroha_p2p=debugCompatibilidade 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:
Para obter mais detalhes e resultados da amostra, ver a documentação |
|---|---|
| Default: | full |
| Env: | LOG_FORMAT |
[logger]
format = "json"LOG_FORMAT=jsonKura
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 |
[kura]
blocks_in_memory = 1024KURA_BLOCKS_IN_MEMORY=1024kura.init_mode
Modo de inicialização Kura
| Type: | String, valores possíveis:
|
|---|---|
| Default: | strict |
| Env: | KURA_INIT_MODE |
[kura]
init_mode = "fast"KURA_INIT_MODE=fastkura.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 |
[kura]
store_dir = "/path/to/storage"KURA_STORE_DIR=/path/to/storagekura.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 |
[kura.debug]
output_new_blocks = trueKURA_DEBUG_OUTPUT_NEW_BLOCKS=trueCotação
queue.capacity
O limite superior do número de transações à espera na fila.
| Type: | Number |
|---|---|
| Default: | 65_536 |
[queue]
capacity = 1_048_576queue.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 |
[queue]
capacity_per_user = 1_048_576queue.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) |
[queue]
transaction_time_to_live_ms = 43_200_000Sumeragi
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 |
[sumeragi.debug]
force_soft_fork = trueImagem 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:
|
|---|---|
| Default: | read_write |
| Env: | SNAPSHOT_MODE |
[snapshot]
mode = "readonly"SNAPSHOT_MODE=readonlysnapshot.create_every_ms
Frequência de instantâneos.
| Type: | Number, duration in milliseconds |
|---|---|
| Default: | 600_000 (10 minutes) |
[snapshot]
create_every_ms = 60_000snapshot.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 |
[snapshot]
store_dir = "/path/to/storage"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 |
|---|
[telemetry]
name = "iroha"telemetry.url
O WebSocket URL do coletor de telemetria.
| Type: | String |
|---|
[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) |
[telemetry]
min_retry_period_ms = 5_000telemetry.max_retry_delay_exponent
O exponente máximo de 2 utilizado para aumentar o atraso entre as reconexões.
| Type: | Number |
|---|---|
| Default: | 4 |
[telemetry]
max_retry_delay_exponent = 4dev_telemetry.out_file
O caminho de arquivo para escrever dev-telemetria para
| Type: | String, file path (relative to the config file or CWD) |
|---|
[dev_telemetry]
out_file = "/path/to/file.json"