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 բանալիներ:

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

trusted_peers

Վստահելի գործընկերների ցուցակ:

Համաձայնության հավաստիացնողները պետք է օգտագործեն BLS-Normal peer բանալիները: Յուրաքանչյուր հավաստիացողի համար նաեւ տրամադրեք համապատասխան 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

Փաստաթղթի ուղին ստորագրված genesis բլոկի օգտակար լիցքավորման համար, որը ստեղծվում է 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

Address for p2p communication for consensus (sumeragi) and block synchronization (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: Debug- մակարդակի հաղորդագրություններ, օգտակար ախտորոշման համար:
  • INFO: Ընդհանուր տեղեկատվական ուղերձներ:
  • WARN: նախազգուշացումներ, որոնք ցույց են տալիս հնարավոր խնդիրներ:
  • ERROR: Սխալներ, որոնք խանգարում են նորմալ գործառույթին, բայց թույլ են տալիս շարունակել աշխատանքը:

Ընտրեք այն մակարդակը, որը լավագույնս համապատասխանում է ձեր օգտագործման դեպքում: Հետեւեք Stack Overflow-ին ՝ տարբեր օրագրային մակարդակների օգտագործման մասին լրացուցիչ մանրամասների համար:

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

Գործընթացային ժամանակի թարմացում

Torii օպերատորի վերջային կետերի միջոցով այս պարամետրը ենթակա է վազման ժամանակի կոնֆigurացիայի թարմացման:

logger.filter

Պարզացված արձանագրական ֆիլտրերը, բացի logger.level: Թույլ է տալիս հարմարեցնել արձանագրման բառապաշարը յուրաքանչյուր թիրախի համար.

Type:

String- ը բաղկացած է մեկ կամ մի քանի գծով առանձին հրահանգներից: Յուրաքանչյուր հրահանգ կարող է ունենալ համապատասխան առավելագույն բառապաշարային մակարդակ, որը թույլ է տալիս (օրինակ ՝ ընտրում) համապատասխան տարածություններ եւ իրադարձություններ: 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 օպերատորի վերջային կետերի միջոցով այս պարամետրը ենթակա է վազման ժամանակի կոնֆigurացիայի թարմացման:

logger.format

Օրագրերի ձեւաչափը:

Type:

Շերտեր, հնարավոր արժեքներ.

  • full: Պաշտոնական ձեւաչափը: Սա թողարկում է մարդկային ընթերցելի, մեկ գծի օրագրեր յուրաքանչյուր իրադարձության համար, որը տեղի է ունենում, ներկայիս տարածման համատեքստը ցուցադրվում է նախքան իրադարձության ձեւաչափված ներկայացումը:
  • compact: Սովորական ձեւաչափի տարբերակ, որը օպտիմալացվել է կարճ գծի երկարությունների համար: Ներկայիս տարածման համատեքստից դաշտերը լրացվում են ձեւաչափված իրադարձության դաշտերին, եւ տարածման անունները չեն ցուցադրվում; բառապաշարային մակարդակը կրճատվում է միայն մեկ տառով:
  • pretty: Արտադրում է չափազանց գեղեցիկ, բազմակողմանի օրագրեր, օպտիմալացված մարդկային ընթերցելիության համար: Սա հիմնականում նախատեսված է օգտագործվելու տեղական զարգացման եւ debugging, կամ հրամանատարների գծի ծրագրերի համար. որտեղ օրագրերի ավտոմատացված վերլուծությունն ու համապարփակ պահպանումը ավելի քիչ առաջնահերթություն են տալիս, քան ընթերցելիությունը եւ տեսողական գրավիչությունը:
  • 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

Սpecifies the directory[^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 կայքի ակնթարթային լուսանկարների ընթերցման եւ գրելու համար:

Snapshots- ը պահում է World State View- ի սերիալացված ստուգման կետը, այնպես որ զուգընկերն կարող է վերսկսել ՝ առանց Kura -ից յուրաքանչյուր բլոկի կրկնելու: Kura -ը մնում է ամուր բլոկային պատմությունը եւ կրկնելու համար ճշմարտության աղբյուրը. snapshots- ն արագացման ուղին է: Սկսելիս Iroha-ը ստուգում է շտանկարային մետադատաները կազմված շղթայի եւ պահվող բլոկների հետ, նախքան որոշելը, թե արդյոք ներբեռնել կամ վերադառնալ կրկնօրինակելու:

Սրբել նկարները

Այն դեպքում, եթե ինչ-որ բան սխալ է snapshots համակարգի հետ, եւ ցանկանում եք սկսել դատարկ էջից (հետաքրքրական լուսանկարների առումով), դուք կարող եք հեռացնել ցուցակը, որը նշված է snapshot.store_dir:

snapshot.mode

Snapshot համակարգի ռեժիմը:

Type:

Շերտեր, հնարավոր արժեքներ.

  • read_write: Iroha ստեղծում է snapshots ժամանակահատվածով, որը նշված է snapshot.create_every_ms. Սկսելիս, Iroha կարդում է գոյություն ունեցող snapshot (եթե կա) եւ ստուգում է, որ այն թարմ է բլոկների պահեստավորման հետ:
  • readonly: Հավասար է read_write, բայց Iroha չի ստեղծում որեւէ snapshots.
  • 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"

Հեռաչափություն

Հեռաչափությունը արտահանում է զուգընկերների ախտորոշումը արտաքին հեռաչափության հավաքագրող: Կոնֆigurել 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

Փաստաթուղթը գրելու dev-telemetry

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