Skip to content

配置参数

标签:

根级别

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-正常密钥.

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:

在 P2P 地址已知时使用PUBLIC_KEY@ADDRESS;裸体 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_keypop_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

为共识 (sumeragi) 和区块同步 (区块_sync) 的目的的p2p通信地址.

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:破坏正常功能但允许继续运行的错误.

选择适合您使用情况的级别.查看Stack Overflow,了解如何使用不同日志水平的更多细节.

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

运行时间更新

该参数通过 Torii 操作员终端点进行运行时间配置更新.

logger.filter

除了 logger.level之外,还可以进行精细的日志过器.

Type:

字符串由一个或多个以逗号分开的指令组成. 每条指令都可能具有相应的最大语文性水平,允许 (例如选择) 相匹配的跨度和事件;Iroha 认为较少的独占水平 (如traceinfo) 是比更为独占的水平 (如 errorwarn) 更有口头性.

在高层面上,指令的语法由几个部分组成:

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.filterlogger.level一起工作,没有一个覆盖另一个.

例如,如果 logger.level 设置为 INFOlogger.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

快照

该模块负责阅读和编写世界状态视图的快照.

快照存储世界状态视图的序列化检查点,以便一个同行可以重新启动而不需要重播从 Kura 的每个区块. Kura 仍然是持续的区块历史和重播的真相来源;快照是一个加速路径.在启动时, Iroha 检查了设置链和存储的区块之间的快照元数据,然后决定是否要加载快照或重新播放.

删除快照

如果快照系统有什么问题,并且您想从空白页面开始 (即快照),则可以删除 snapshot.store_dir所指定的目录.

snapshot.mode

快照系统的模式.

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.nametelemetry.url;如果不使用远程测试,则省略该节目.

nameurl必须配对.

所有的 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

编写 dev-telemetry的文件路径

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