Skip to content

توليد المفاتيح المشفرة

استخدم kagami keys لتوليد مواد مفاتيح العملاء والأقران والمدققين في Iroha 3.

استخدام أساسي

من نسخة عمل للشيفرة المصدرية لـ Iroha:

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

عادةً ما يكون نسخ ناتج JSON إلى TOML أو استخدامه في الأتمتة هو الأسهل:

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

يطبع الأمر مفتاحًا عامًا ويكشف مفتاحًا خاصًا. تعامل مع المفتاح الخاص على أنه مادة سرية؛ ولا تضف مفاتيح الإنتاج المولّدة إلى مستودع الشيفرة.

للتصدير المحلي الآمن أو النقل إلى جهة حفظ على منصة Unix مدعومة، اكتب زوج مفاتيح جديدًا في دليل فارغ لا يصل إليه إلا المالك بدلًا من طباعة المفتاح الخاص:

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

يجب أن يكون الدليل الأصل موجودًا بالفعل. ويجب أن يكون الدليل الهدف جديدًا أو مملوكًا بالفعل للمستخدم الحالي، وبالوضع 0700، وخاليًا من الروابط الرمزية، وفارغًا. يكتب kagami الملفين public.key وprivate.key بالوضع 0600 ولا يطبع المفتاح الخاص. ومع --pop يكتب أيضًا pop.hex.

يفشل --out-dir بأمان على المنصات التي لا يستطيع فيها Kagami فرض قواعد نظام الملفات التي تقصر الوصول على المالك. ملف المفتاح الخاص نسخة مصدّرة غير مشفرة، وليس موقّع إنتاج محميًا بالأجهزة أو غير قابل للتصدير. استورده إلى نطاق الحفظ المعتمد واحذف النسخة المصدّرة وفقًا لإجراء النشر.

الخوارزميات

الخوارزميات الشائعة هي:

  • ed25519 لحسابات العملاء و هويات البث.
  • secp256k1 عندما يتطلب حساب عميل هوية secp256k1.
  • bls_normal لهوية الإجماع لكل عقدة أو نظير عندما يكون دعم BLS مفعّلًا في البناء.

تحقق من الخوارزميات الدقيقة التي يدعمها بناؤك باستخدام:

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

مفاتيح التطوير الحتمية

لبيانات الاختبار القابلة لإعادة الإنتاج، مرّر بذرة من 32 بايت مرمّزة في 64 محرفًا ست عشريًا. وتُقبل البادئة الاختيارية 0x:

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

البذرة هي مادة مفتاح خاص. استخدم البذور الحتمية للتطوير المحلي والاختبارات فقط. احذف --seed-hex لتوليد مفتاح إنتاج من العشوائية التي يوفرها نظام التشغيل.

مفاتيح إجماع BLS وإثباتات الامتلاك

تستخدم هويات الإجماع للعقد والأقران في Iroha 3 مفاتيح BLS العادية. ولتوليد مفتاح BLS عادي وإثبات امتلاك (PoP)، استخدم:

bash
cargo run --bin kagami -- keys --algorithm bls_normal --pop --json

لا يصح --pop إلا مع bls_normal. يتضمن ناتج JSON الحقل pop_hex. تتطلب كتلة التكوين الموقّعة PoP مطابقًا لكل مدقق يملك حق التصويت. في إعداد الأقران، تحدد خريطة trusted_peers_pop غير الفارغة مجموعة المدققين الفرعية؛ أما الأقران الموثوقون غير المدرجين في تلك الخريطة غير الفارغة فهم مراقبون. وإذا كانت الخريطة فارغة، يدخل كل الأقران الموثوقين ذوي مفاتيح BLS العادية في مجموعة مرشحي الإقلاع، بينما تظل PoPs الخاصة بالمدققين المصوتين مقدمة من كتلة التكوين الموقّعة.

تنسيقات الخروج

استخدم الخروج الافتراضي لتحقق المحطة، --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