Skip to content

Քրիպտոգրաֆիկ բանալիներ ստեղծելը

Օգտագործեք kagami keys՝ Iroha 3-ի client, peer և validator բանալիների նյութ ստեղծելու համար։

Հիմնական օգտագործումը

Iroha-ի սկզբնաղբյուրի checkout գրացուցակից՝

bash
cargo run --bin kagami -- keys --algorithm ed25519

JSON արտադրանքը սովորաբար ամենահեշտը կրկնօրինակվում է TOML կամ ավտոմատացված:

bash
cargo run --bin kagami -- keys --algorithm ed25519 --json

Հրամանը տպում է հանրային բանալին և բաց տեսքով անձնական բանալին։ Անձնական բանալուն վերաբերվեք որպես գաղտնի նյութի և ստեղծված արտադրական բանալիները repository-ում commit մի արեք։

Աջակցվող Unix հարթակում անվտանգ տեղային արտահանման կամ պահառության փոխանցման համար անձնական բանալին տպելու փոխարեն նոր բանալիների զույգը գրեք միայն սեփականատիրոջը հասանելի դատարկ գրացուցակում․

bash
cargo run --bin kagami -- keys --algorithm ed25519 --out-dir ./client-key

Ծնող գրացուցակը պետք է նախապես գոյություն ունենա։ Նպատակային գրացուցակը պետք է լինի նոր կամ արդեն պատկանի ընթացիկ օգտատիրոջը, ունենա 0700 ռեժիմ, չպարունակի խորհրդանշական հղումներ և լինի դատարկ։ kagamipublic.key և private.key ֆայլերը գրում է 0600 ռեժիմով և անձնական բանալին չի տպում։ --pop-ի դեպքում այն նաև գրում է pop.hex։

Այն հարթակներում, որտեղ Kagami-ն չի կարող պարտադրել ֆայլային համակարգի՝ միայն սեփականատիրոջ համար նախատեսված կանոնները, --out-dir-ը անվտանգ կերպով ավարտվում է սխալով։ Անձնական բանալու ֆայլը չգաղտնագրված արտահանում է, ոչ թե ապարատային կամ չարտահանվող արտադրական ստորագրող։ Ներմուծեք այն հաստատված պահառության սահման և տեղակայման ընթացակարգի համաձայն հեռացրեք արտահանված ֆայլը։

Ալգորիթմներ

Սովորական ալգորիթմները հետեւյալն են.

  • ed25519 հաճախորդի հաշիվների եւ հեռարձակվող ինքնության համար:
  • secp256k1, երբ հաճախորդի հաշիվը պահանջում է secp256k1 ինքնությունը:
  • bls_normal՝ յուրաքանչյուր node-ի կամ peer-ի consensus identity-ի համար, երբ build-ում միացված է BLS աջակցությունը։

Ստուգեք ձեր կառուցվածքի կողմից աջակցվող ճշգրիտ ալգորիթմները ՝ օգտագործելով

bash
cargo run --bin kagami -- keys --help

Դետերմինիստական զարգացման բանալիները

Վերարտադրելի fixture-ների համար փոխանցեք 32-բայթանոց seed՝ կոդավորված 64 տասնվեցական նիշով։ Ընդունվում է ոչ պարտադիր 0x նախածանցը․

bash
cargo run --bin kagami -- keys --algorithm ed25519 \
  --seed-hex 1111111111111111111111111111111111111111111111111111111111111111 \
  --json

Seed-ը անձնական բանալու նյութ է։ Դետերմինիստիկ seed-երը օգտագործեք միայն տեղային մշակման և թեստերի համար։ Օպերացիոն համակարգի պատահականության աղբյուրից արտադրական բանալի ստեղծելու համար բաց թողեք --seed-hex-ը։

BLS Համաձայնության բանալիները եւ սեփականության ապացույցները

Iroha 3-ի node և peer consensus identity-ները օգտագործում են BLS-normal բանալիներ։ BLS-normal բանալի և տիրապետման ապացույց (PoP) ստեղծեք այսպես․

bash
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, երբ մեկ այլ սցենարը պահանջում է պարզ գծային ուղղված արժեքներ.

bash
cargo run --bin kagami -- keys --algorithm ed25519 --compact

Ամբողջական արտադրվող Kagami օգնության համար'

bash
cargo run -p iroha_kagami -- advanced markdown-help > crates/iroha_kagami/CommandLineHelp.md