Skip to content

Параметры конфигурации

[toc]

Корневой уровень

chain required

Цепь ID, которая должна быть включена в каждую транзакцию. используется для предотвращения повторных атак.

Повторная атака - это попытка подать действительную транзакцию в другую сеть, чем она была предназначена. Поскольку chain является частью подписанной полезной нагрузки транзакции, сделка, подписанная для одной цепи, отклоняется коллегами, которые используют другую цепь ID.

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

public_key required

Публичный ключ сверстника. Сверстники-варидаторы консенсуса должны использовать ключи BLS -Normal.

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

private_key required

Частный ключ сверстника. Он должен совпадать с public_key; сверстники-варидаторы консенсуса должны использовать BLS-Normal keys.

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

trusted_peers

Список заранее определенных доверенных сверстников.

Валидаторы консенсуса должны использовать BLS-Normal peer keys. Для каждого валидатора также укажите соответствующую запись trusted_peers_pop.

Type:

Серия строк сверстников. Используйте PUBLIC_KEY@ADDRESS, когда адрес P2P известен; также принимается голый PUBLIC_KEY и позволяет обнаружить адрес сверстника из сплетни.

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 записи подтверждения владения для доверенных партнеров-валидаторов.

Type:

Порядок объектов с полями public_key и 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"}
]'

Бытие

genesis.file

Файловый путь к подписанному блоку генезиса полезной нагрузки, созданный kagami genesis sign. Обычно генерируемые профили записывают это как 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

Публичный ключ от пары ключей генезиса.

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

Сеть

network.address required

Адрес для p2p-коммуникаций в целях консенсуса (sumeragi) и синхронизации блоков (block_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

Примечательный адрес (внешний, как это видят другие сверстники).

Будут сплетнивать к близким сверстникам, чтобы они могли сплетничать другим сверстницам.

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

Количество блоков, которые могут быть отправлены в одном сообщении синхронизации.

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

network.block_gossip_period_ms

Временный интервал между просьбами к коллегам по последнему блоку.

Более частые сплетни сокращают время синхронизации, но могут перегружать сеть.

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

network.transaction_gossip_size

Максимальное количество транзакций в сообщениях о сплетнях.

Уменьшение размера приводит к более длительному времени синхронизации, но полезно, если у вас высокая потеря пакета.

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

network.transaction_gossip_period_ms

Период сплетни в ожидании сделки между сверстниками.

Более частые сплетни сокращают время синхронизации, но могут перегружать сеть.

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

network.idle_timeout_ms

Продолжительность времени, после которого связь с партнером прекращается, если партнёр не работает.

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

Torii

torii.address required

Адрес, к которому должен прислушиваться сервер Torii и к которому клиенты* подают свои запросы.

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

Максимальное количество байтов в органе необработанных запросов, принятых конечными точками Torii .

Это ограничение используется для предотвращения атак DOS.

Type:

Количество (байтов)

Default:

64_000_000 (64 миллионов байтов)

toml
[torii]
max_content_len = 64_000_000

torii.query_idle_time_ms

Время, в течение которого запрос может оставаться в магазине, если он не будет доступен.

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

torii.query_store_capacity

Верхний предел количества запросов в прямом эфире.

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

torii.query_store_capacity_per_user

Верхний лимит количества запросов в режиме реального времени для одного пользователя.

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

Деревянщик

logger.level

Общая вербоспособность регистрации (см. logger.filter для уточненной конфигурации).

Type:

Струнные, возможные значения:

  • TRACE: Все события, включая операции на низком уровне.
  • DEBUG: сообщения на уровне дебога, полезные для диагностики.
  • INFO: Общие информационные сообщения.
  • WARN: предупреждения, указывающие на возможные проблемы.
  • ERROR: Ошибки, которые нарушают нормальную работу, но позволяют продолжить работу.

Выберите уровень, который наиболее подходит для вашего случая использования. Загрузочный переток для получения дополнительных деталей о том, как использовать различные уровни журналов.

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

Обновление времени запуска

Данный параметр подлежит обновлению конфигурации запуска через конечные точки оператора Torii.

logger.filter

Рафинированные журнальные фильтры в дополнение к logger.level. Позволяет настраивать вербозность регистрации за целью.

Type:

Стринг состоит из одной или нескольких директив, разделенных кометами.Каждая директива может иметь соответствующий максимальный уровень вербильности, который позволяет (например, выбирает для) совпадающие периоды и события. Iroha считает менее эксклюзивные уровни (например, trace или info) более сложными, чем более исключительные уровни (такие как error или warn).

На высоком уровне, синтаксис директив состоит из нескольких частей:

target[span{field=value}]=level

Дополнительная информация приведена в tracing-subscriber документации.

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

Совместимость с logger.level

logger.filter работает совместно с logger.level, и ни одна из них не переписывает другую.

Например, если: logger.level устанавливается INFO и logger.filter устанавливается iroha_core=debug, полученный набор фильтров будет info,iroha_core=debug (т.е. info для всех модулей, debug для iroha_core).

Обновление времени запуска

Данный параметр подлежит обновлению конфигурации запуска через конечные точки оператора Torii.

logger.format

Формат журналов.

Type:

Струнные, возможные значения:

  • full: По умолчанию форматирующий устройство. Это выпускает читаемые человеком, однострочные журналы для каждого события, которое происходит, с текущим контекстом интервала отображается перед форматным представлением события.
  • compact: Вариант форматировщика по умолчанию, оптимизированный для коротких длин строк. Поле из текущего контекста интервала приложены к полям форматного события, а названия интервала не отображаются; уровень вербильности сокращается до одного символа.
  • pretty: Выпускает чрезвычайно красивые, многолинейные журналы, оптимизированные для человеческой читаемости. Это в первую очередь предназначено для использования в локальной разработке и дебюгировании, или для приложений командной линии, где автоматизированный анализ и компактное хранение журналов являются менее приоритетными, чем читаемость и визуальная привлекательность.
  • json: Выходы с новой линией JSON Это предназначено для использования в производстве с системами, где структурированные бревна потребляются как JSON С помощью инструментов анализа и просмотра. JSON выпуск не оптимизирован для человеческой читаемости.

Дополнительные сведения и результаты выборки приведены в документации tracing-subscriber.

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

Kura

Kura - постоянный двигатель хранения Iroha (японский для склада).

kura.blocks_in_memory

В памяти будет храниться не более N последних блоков.

Старые блоки будут удалены из памяти и загружены с диска, если они понадобятся.

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

kura.init_mode

Режим инициализации Kura

Type:

Струнные, возможные значения:

  • strict: строгая проверка всех блоков
  • fast: Быстрая инициализация с помощью только базовых проверок
Default:strict
Env:KURA_INIT_MODE
toml
[kura]
init_mode = "fast"
shell
KURA_INIT_MODE=fast

kura.store_dir

Указывает каталог [^paths], в котором хранятся блоки.

См. также: 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

Флаг, позволяющий печатать новые блоки для консоли.

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

В очереди

queue.capacity

Верхний лимит количества транзакций, ожидающих в очереди.

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

queue.capacity_per_user

Верхний лимит числа транзакций, ожидающих в очереди для одного пользователя.

Используйте этот вариант для подавления.

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

queue.transaction_time_to_live_ms

После этого времени сделка будет отменена, если она все еще находится в очереди.

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

Приключатель только для отладки для упражнений Sumeragi пути обращения с мягким вилком. Оставьте его отключенным вне контролируемых испытаний; изменение его на работе производственной сети может привести к несогласия с коллегами по поводу консенсусного поведения.

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

Снимок

Этот модуль отвечает за чтение и написание мгновенных снимков Взгляд на мир.

Снэпшоты хранят сериализированный контрольный пункт World State View, чтобы одноклассник мог перезагрузить без повторного воспроизведения каждого блока из Kura. Kura остается долговечной историей блокировки и источником истины для воспроизведения. Снэпшоты являются пути ускорения. При запуске Iroha проверяет метаданные снимка с конфигурированной цепочкой и хранящимися блоками, прежде чем решать, загрузить снимок или вернуться к воспроизведению.

Стирать снимки

В случае, если с системой снимков что-то не так, и вы хотите начать с пустой страницы (с точки зрения фотографий), вы можете удалить каталог, указанный snapshot.store_dir.

snapshot.mode

Режим работы системы Snapshot.

Type:

Струнные, возможные значения:

  • read_write: Iroha создает мгновенные снимки с периодом, указанным в snapshot.create_every_ms. При запуске Iroha читает существующий мгновенный снимок (если таковой есть) и проверяет, что он обновлен для хранения блоков.
  • readonly: Похожие на read_write, но Iroha не создает никаких снимков.
  • disabled: Iroha не создает новых снимков и не читает уже существующих при запуске.
Default:read_write
Env:SNAPSHOT_MODE
toml
[snapshot]
mode = "readonly"
shell
SNAPSHOT_MODE=readonly

snapshot.create_every_ms

Частота снимков.

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

snapshot.store_dir

Справочник, где хранить снимки.

См. также: 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"

Телеметрия

Телеметрия экспортирует диагностику сверстников на внешний коллектор телеметрии. Конфигурируйте как telemetry.name и telemetry.url, когда сверстник должен сообщать коллектору; исключите раздел, когда не используется телеметрия.

name и url должны быть соединены в пару.

Все разделы telemetry являются необязательными.

telemetry.name

Название узла должно быть отображено на телеметрии.

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

telemetry.url

WebSocket URL коллектора телеметрии.

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

telemetry.min_retry_period_ms

Минимальный срок ожидания до восстановления связи.

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

telemetry.max_retry_delay_exponent

Максимальный экспонент 2 используется для увеличения задержки между восстановлением связи.

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

dev_telemetry.out_file

Файловой путь для написания разработки телеметрии в

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