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"