Криптограф түлхүүр үүсгэх
kagami keys-ийг ашиглан Iroha 3-ын клиент, peer болон validator-ийн түлхүүрийн материалыг үүсгэнэ.
Анхан шатны хэрэглээ
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 аюулгүйгээр алдаа гарган зогсоно. Хувийн түлхүүрийн файл нь шифрлээгүй экспорт бөгөөд аппаратын эсвэл экспортлох боломжгүй үйлдвэрлэлийн гарын үсэг зурагч биш. Үүнийг зөвшөөрөгдсөн хамгаалалттай хадгалалтад импортлоод, нэвтрүүлэлтийн журмын дагуу экспорт файлыг устга.
Алгоритмууд
Нийтлэг алгоритм нь:
- Клиент данс болон streaming identity-д
ed25519. - Клиент дансанд secp256k1 identity шаардлагатай үед
secp256k1. - Build нь BLS дэмжлэгийг идэвхжүүлсэн үед node эсвэл peer бүрийн consensus identity-д
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-ийн consensus identity нь 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 map нь validator-уудын дэд олонлогийг сонгоно; тэр хоосон биш map-д ороогүй итгэмжлэгдсэн peer-үүд observer байна. Map хоосон бол бүх BLS-normal итгэмжлэгдсэн peer bootstrap candidate олонлогт орно, харин санал өгөгчдийн 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