Skip to content

Конфигурация мәсьәләләрен хәл итеү

Был бүлектә Iroha 3 конфигурацияһы өсөн проблемаларҙы хәл итеү буйынса кәңәштәр бирелә. Тәүҙә төймәләрен тикшерегеҙ, сөнки был Iroha-та иң йыш килеп сыҡҡан мәсьәләләр сығанағы.

Әгәр һеҙ кисергән проблема бында һүрәтләнмәгән икән, Telegram аша беҙҙең менән бәйләнешкә инегеҙ.

Docker Compose ҡоролмаһы буйынса иҫкергән генез

Әгәр һеҙ ҡулланыу Docker Compose версияһы Iroha, һеҙ бер-береһе менән тиң контейнерҙар проблемаһын осратырға мөмкин Failed to deserialize raw genesis block хата. Был, ғәҙәттә, тиҫтерҙәр, ҡул ҡуйылған генез транзакцияһы һәм барлыҡҡа килгән конфигурация башҡалар тарафынан эшләнгән Iroha ревизиялар йәки профилдәр.

Был аҙымдар менән уңышһыҙлыҡты тикшерегеҙ:

  1. Ҡулланыу docker ps Хәҙерге контейнерҙарҙы тикшереү өсөн. барлыҡҡа килгән профиленә ҡарап, һеҙ йыш ҡына hyperledger/iroha:dev контейнерҙар. Docker Compose Профиль дүрт тиңдәше контейнерҙар, әммә һеҙҙең docker-compose.yml төрлө булыуы мөмкин.

  2. Журналдарҙы тикшерегеҙ һәм Failed to deserialize raw genesis block хатаһын эҙләгеҙ. Әгәр ҙә һеҙ Iroha дэймон режимында docker compose up -d менән башлағанһығыҙ икән, docker compose logs командаһы ҡулланығыҙ.

Бындай проблеманы хәл итеү ысулы Iroha ҡулланыуға бәйле. Әгәр был төп демо булһа һәм һеҙгә тиңдәш мәғлүмәттәрен һаҡларға кәрәкмәй икән, Kagami менән тура килгән локаль селтәрҙе йәки Docker Compose пакетын регенерациялағыҙ:

bash
cargo run --bin kagami -- localnet --build-line iroha3 --peers 4 --out-dir ./localnet
cargo run --bin kagami -- docker --peers 4 --config-dir ./localnet --image hyperledger/iroha:dev --out-file ./docker-compose.yml

Һуңынан иҫке контейнер торошон алып ташларға һәм регенерацияланған genesis.signed.nrt, peer config.toml һәм client.toml файлдарҙан ҡабаттан башларға.

Әгәр һеҙ Iroha экземпляр мәғлүмәттәрен тергеҙеү кәрәк икән, түбәндәгеләрҙе үтәгеҙ:

  1. Икенсе Iroha тиҫтерҙе тоташтырығыҙ, ул беренсе (уңышһыҙ) тиҫтерҙән мәғлүмәтте күсереп төшөрәсәк.
  2. Яңы тиҫтерҙең мәғлүмәтте беренсе тиҫтер менән синхронизациялауын көт.
  3. Яңы йәштәштәрегеҙҙе әүҙем ҡалдырығыҙ.
  4. Тәүге тигеҙлегенең генезис һәм конфигурация файлдарын координацияланған миграцияның бер өлөшө булараҡ яңыртыу.

INFO

Тере селтәрҙә генезисты алмаштырыу өсөн дөйөм автоматик ҡабат яҙыу юлы юҡ. Уны координацияланған миграция тип ҡарағыҙ: иҫке дәүләтте һаҡлап ҡалыу, яраҡлаштырылған тиңдәштәре килтереү һәм операторҙар миграция планына килештән һуң ғына раҫлаусыларҙы яңы конфигурацияға күсереү.

Шәхси һәм асыҡ асҡыстарҙың күп һанлы хэштег форматы

Әгәр һеҙ клиент конфигурацияһына ҡараһағыҙ, ундағы асҡыстарҙың күп һанлы хэш форматында бирелгәнен күрерһегеҙ.

Әгәр ҙә һеҙ быға тиклем күп-хаш менән эшләмәгәнһегеҙ икән, уң яҡта төп байттарҙың (байтҡа ике символ), ә ASCII (йәки UTF-8) тип кодланған байттарҙың алты тигеҙлектәге сағылышы түгел, тип фаразлау тәбиғи. һәм public_key менән private_key экземплярҙарында уҡ буквалға from_hex шылтыратыу.

Шулай уҡ PrivateKey::try_from_str саҡырыу ғына дөрөҫ асҡыс бирә, тип фаразлау тәбиғи. Әгәр ҙә асҡыстағы биттарҙың һанын дөрөҫ тапһағыҙ, мәҫәлән, 32 байт vs 64, был хата хәбәрен ҡалдыра.

Был ике фараз да дөрөҫ түгел. Ҡыҙғанысҡа ҡаршы, хата хәбәрҙәре был типтағы уңышһыҙлыҡты асыҡлауҙа ярҙам итмәй.

Тейешләү ысулы: hex_literal ҡуллана. Был шулай уҡ ҡырағай хәрефтәрҙе матур бәләкәй таблицаға әйләндерәсәк, ул һигеҙенсе һандарҙан тора.

WARNING

Хатта try_from_str ғәмәлгә ашырыуы бирелгән ҡылдың PrivateKey буламы-юҡмы икәнен тикшерә алмай һәм әгәр булмаһа, иҫкәртә алмай.

Ул ҡайһы бер асыҡ хаталарҙы тотор, мәҫәлән, ҡылда ғәмәлһеҙ символ бар икән. Әммә беҙ күп кенә төп форматтарҙы яҡларға тырышҡанға күрә, ул башҡа бик күп эш итә алмай. Әгәр ҙә һеҙ инструкция бирмәһәгеҙ, ул индерелгән иҫәб өсөн шәхси асҡыстың дөрөҫмө икәнен дә әйтә алмай.

Ошондай хаталарҙан һаҡланырға мөмкин, мәҫәлән, туранан-тура сылбырлы хәрефтәрҙән дезерализация яһап йәки мәғәнәле урындарҙа яңы асҡыс парын барлыҡҡа килтереү.