Криптографиялық кілттерді жасау
Iroha 3 үшін клиент, peer және validator кілт материалын жасауға kagami keys пайдаланыңыз.
Негізгі пайдалану
Iroha бастапқы кодының checkout каталогынан:
cargo run --bin kagami -- keys --algorithm ed25519JSON шығысын TOML немесе автоматтандыруға көшіру әдетте ең оңай:
cargo run --bin kagami -- keys --algorithm ed25519 --jsonКоманда ашық кілт пен қорғалмай көрсетілген жеке кілтті басып шығарады. Жеке кілтті құпия материал ретінде қарастырыңыз; жасалған өндірістік кілттерді репозиторийге commit жасамаңыз.
Қолдау көрсетілетін Unix платформасында қауіпсіз жергілікті экспорт немесе сақтаушыға тапсыру үшін жеке кілтті басып шығармай, жаңа кілт жұбын тек иесі кіре алатын бос каталогқа жазыңыз:
cargo run --bin kagami -- keys --algorithm ed25519 --out-dir ./client-keyАта-ана каталогы алдын ала болуы керек. Нысана каталог жаңа немесе ағымдағы пайдаланушыға тиесілі, 0700 режимді, символдық сілтемесіз әрі бос болуы тиіс. kagami public.key және private.key файлдарын 0600 режимімен жазады және жеке кілтті басып шығармайды. --pop қолданылса, pop.hex файлын да жазады.
Kagami тек иесіне арналған файлдық жүйе ережелерін орындай алмайтын платформаларда --out-dir қауіпсіз түрде қатемен тоқтайды. Жеке кілт файлы — шифрланбаған экспорт; ол аппараттық немесе экспортталмайтын өндірістік қолтаңбалаушы емес. Оны бекітілген сақтау шекарасына импорттап, орналастыру рәсіміне сәйкес экспорт файлын жойыңыз.
Алгоритмдер
Әдеттегі алгоритмдер:
ed25519клиенттер тіркелгілері мен желілік идентификациялары үшін.secp256k1клиенттік шот үшін secp256k1 жеке басын көрсету қажет болған кезде.- build BLS қолдауын қосса, әр node немесе peer консенсус идентификаторы үшін
bls_normal.
Құрылымыңызда қолданатын алгоритмдерді тексеріңіз:
cargo run --bin kagami -- keys --helpДетерминистік дамудың кілттері
Қайталанатын fixture-лер үшін 64 он алтылық таңбамен кодталған 32 байттық seed беріңіз. Міндетті емес 0x префиксі қабылданады:
cargo run --bin kagami -- keys --algorithm ed25519 \
--seed-hex 1111111111111111111111111111111111111111111111111111111111111111 \
--jsonSeed — жеке кілт материалы. Детерминистік seed-ті тек жергілікті әзірлеу мен сынақтарда пайдаланыңыз. Өндірістік кілтті операциялық жүйенің кездейсоқтық көзінен жасау үшін --seed-hex параметрін бермеңіз.
BLS Консенсус кілттері мен иеленудің дәлелдемелері
Iroha 3 node және peer консенсус идентификаторлары BLS-normal кілттерін пайдаланады. BLS-normal кілті мен иелік ету дәлелін (PoP) былай жасаңыз:
cargo run --bin kagami -- keys --algorithm bls_normal --pop --json--pop тек bls_normal-мен жарамды. JSON шығысында pop_hex болады. Қол қойылған genesis әр дауыс беретін validator үшін сәйкес PoP талап етеді. Peer конфигурациясында бос емес trusted_peers_pop картасы validator-лардың ішкі жиынын таңдайды; сол бос емес картада жоқ сенімді peer-лер observer болады. Карта бос болса, барлық BLS-normal сенімді peer bootstrap кандидаттар жиынына кіреді, ал дауыс берушілердің PoPs-ы бәрібір қол қойылған genesis арқылы беріледі.
Шығу форматтары
Терминалды тексеру үшін әдеттегі шығыс, --json автоматтандыру үшін және --compact басқа сценарийге қарапайым сызық-бағдарланған мәндер қажет болған кезде қолданылсын:
cargo run --bin kagami -- keys --algorithm ed25519 --compactТолық шығарылған Kagami көмек үшін:
cargo run -p iroha_kagami -- advanced markdown-help > crates/iroha_kagami/CommandLineHelp.md