ما نثبته، وما لا نثبته
كل ما في هذه الصفحة مقيس من الشجرة نفسها: إمّا اختبار يمرّ، أو سطر في المواصفة، أو عدد في قرص. ما لا نتمكّن من إثباته لا نكتبه في مكان آخر، فهذه هي القائمة.
حضانة المفاتيح: الفرق الجوهري
المفتاح الخاص باسمك يُولَّد على قرص المشغّل، لا على جهازك. لا يوجد توليد مفتاح من جهة المُشارك في الكود: لا تحدّ، ولا طلب توقيع، ولا تسجيل دخول. كل سجلّ في generated/jemo/ يبدأ بأصل "custody":"op" — أي حضانة المُشغّل، بلا مفتاح مالك أصلاً.
النتيجة: التوقيع صحيح، والاسم مربوط بمفتاح، لكن ملكيتك المُعترَف بها ليست ملكيتك التشفيرية بعد. لهذا لا نكتب «اسمك موقّع بمفتاحك» في أي مكان من الموقع، ونقولها هنا أولاً. (الورقة البحثية §الحدود، وspec/05-registration.md §5.8)
ما لا يثبته الكود اليوم
كل سطر أدناه من الكود أو من المواصفة، لا من تمنّي. اقرأ العمود الأخير: هو الحُكم، وما الذي يقرّره.
| الادّعاء | الحالة | ما الذي يثبته |
|---|---|---|
| «اسمك موقّع بمفتاحك» | جزئي | التوقيع موجود؛ حضانة المفتاح عند المشغّل اليوم. |
| «تسترجع اسمك k-of-n لو ضاع المفتاح» | جزئي | jemo_proto.py يحمل RECOVERY_DELAY وسياسة k-of-n كاملة — ولا واجهة تستدعيها. |
| «أعرف متى تغيّر سجلّك» | غائب | السجل يثبت أي بايت، لا متى. الطابع موجود بجوار الحدث لا داخله، فسلسلة الهاش لا تغطّيه. |
| «السجل مقاوم للتلاعب» | غائب | حذف سطر _retired. يجعل الإحياء قانونياً مرة أخرى. السلسلة تكسر التوصيل، لا الحذف. |
| «لديك أسماء فرعية» | غائب | التفويض عمق واحد: a.b غير موجود اليوم. |
| «شهادة TLS دليل على أنّنا نحن» | غائب | الشهادة من جهة إصدار عام تعني «هذا الاتصال مشفّر» — تذكرة دخول، لا ادّعاء من jemo. ولا مفتاح في هذا النظام يجعلها كذلك. |
ما الذي نرفضه فعلاً
هذه ليست وعوداً: كل سطر سلوك يُعيده الكود اليوم، والاختبار بجانبه هو ما يبقيه صامداً.
- تعديل بلا توقيع: منطقة موقّعة بمفتاح لا يطابق الربط في الجذر تُرفض عند التحقق، وقاعدة «عدم إعادة استخدام مفتاح» تُفرض عند القارئ لا عند الكاتب.
- سباق على نفس الاسم: القرار فهرس فريد في قاعدة البيانات، لا قراءة ثم كتابة — فلا يمكن لطلبين أن يفوزا.
- جوابٌ يكشف الغائب: رفض البوابة جواب واحد ثابت؛ سبب الرفض يذهب إلى السجل لا إلى الردّ، فليس استكشافاً لقائمة المشاركين.
- سقوط بصمت: إعداد ناقص يُرفض باسمه، وقاعدة بيانات محذوفة تُجيب 503 لا «غير موجود» — فالخدمة تستطيع أن تقول «متوقفة» لا «اسمك حر».
- حزمة اختبار مفتوحة: 19 حزمة في conformance/ و17 رمز رفض — منها REFUSE_ROOT_MISMATCH وREFUSE_TOCTOU_MISMATCH — مع مستكشف الـ API لتشغيل التحقق بنفسك.
كيف تتحقّق بنفسك
لا تقرأ ما سبق كادّعاء. كل سطر يقابله أمر يعمل على جهازك.
dig +short yourname.gw.jemo.dev
- هل الاسم موجود؟ /rdap/domain/<اسم> — سجل IANA القياسي، والمُسجِّل مُخفى فيه.
- ما الحالة الآن؟ /healthz — نفس المؤشر الذي يعيد تشغيل الخدمة؛ صفحة الحالة تقرؤه كما هي.
- ما الذي نرفضه بالاسم؟ /docs — مستكشف الـ API الحيّ، لا نسخة.
- أريد الأدلة كاملة: الورقة البحثية وشرح الطريقة، وكلاهما يفهرس الاختبار الذي يسند كل جملة.