أركسي دوكس

توثيق تسجيل الإثبات والأدلة المقاومة للتلاعب.

وثائق المنتجات الأخرى

أركسي مسجل وقت التشغيل وهندسة الحزمة

Audience: Engineers changing ingest/runtime behavior, bundle export, or الجمهور: المهندسون الذين يغيرون سلوك الإدخال/التشغيل، تصدير الحزم، أو مسارات التحقق.


جدول المحتويات

  1. نظرة عامة تنفيذية
  2. دورة حياة محرك التسجيل
  3. إغلاق تلقائي وإغلاق القطع
  4. حدود المحول
  5. بناء حزمة خط الأنابيب
  6. 7-مرحلة التحقق
  7. حدود مزود الأدلة
  8. حالة تعزيز وقت التشغيل
  9. مرجع متقاطع ملف بملف

نظرة عامة تنفيذية

arxi-recorder هو طبقة التنسيق في وقت التشغيل. يقوم بإغلاق المدخلات غير الموثوقة في أظرف مرتبطة بسلسلة قابلة للإضافة فقط، ويتحكم في دورة حياة المقاطع، ويبني حزمًا قابلة للنقل من جبر المحددات، ويتحقق من الحزم في وضع عدم الاتصال في الذاكرة.

F:crates/arxi-recorder/src/lib.rs L11-L29 F:crates/arxi-recorder/src/lib.rs L34-L56


دورة حياة محرك التسجيل

RecorderEngine يمتلك حالة المقطع النشط ويفرض الثوابت:

  • صفر أو واحد من القطاعات النشطة،
  • يبدأ التسلسل من 0 لكل جزء،
  • تقدم رأس السلسلة حسب الإضافة،
  • سلوك الإضافة فقط.

F:crates/arxi-recorder/src/engine.rs L22-L35 F:crates/arxi-recorder/src/engine.rs L108-L137

سلوك بدء التشغيل:

سلوك الاستهلاك:

  • حساب تجزئة المحتوى وتجميع التجزئة،
  • حقن التوقيع الاختياري،
  • تخزين الإضافة،
  • in-memory chain-head and envelope-count update. تحديث رأس السلسلة في الذاكرة وعدد المظاريف. F:crates/arxi-recorder/src/engine.rs L376-L436

تلقائي-الختم وختم القطع

تدعم التكوينات None و AfterCount و AfterDuration و Combined. يتم رفض العتبات ذات القيمة صفر عند التحقق. يجب أن يلبي recorder_id نفس قيود شكل الهوية المستخدمة من قبل معرفات الممثلين في وقت التشغيل، لذا فإن المعرفات غير الصالحة تفشل في الإغلاق عند بدء التشغيل بدلاً من ذلك في تدفقات المقطع/الختم. F:crates/arxi-recorder/src/config.rs L36-L85 F:crates/arxi-recorder/src/config.rs L117-L165

تدفق الإغلاق:

  • يضيف الختم system.segment.sealed كغلاف نهائي،
  • يستمر SealRecord,
  • marks segment sealed and clears active state. يحدد الجزء المغلق ويزيل الحالة النشطة. F:crates/arxi-recorder/src/engine.rs L438-L503

تُستدعى عملية تقييم الإغلاق التلقائي بعد كل إضافة ناجحة لظرف البيانات. F:crates/arxi-recorder/src/engine.rs L505-L565


حدود المحول

LocalRecorderAdapter يلف RecorderEngine في tokio::sync::Mutex لتلبية متطلبات خاصية Send + Sync المشتركة مع الحفاظ على الوصول الحصري القابل للتعديل في وقت التشغيل. F:crates/arxi-recorder/src/local_adapter.rs L20-L24

emit_envelope و emit_with_attachments كلاهما يستدعي التحقق من الفشل المغلق بشكل صريح قبل تفويض المسجل. F:crates/arxi-recorder/src/local_adapter.rs L120-L165 F:crates/arxi-recorder/src/validation.rs L46-L83


بناء حزمة خط الأنابيب

BundleBuilder::build خط الأنابيب:

  1. حل المحدد،
  2. قم بتجميع الأظرف حسب القطاع بشكل حتمي،
  3. بناء بيانات التعريف الخاصة بالشمول لكل شريحة،
  4. حساب الآباء المفقودين وإغلاق الإرفاق،
  5. تجميع بيان التحقق.

F:crates/arxi-recorder/src/bundle_builder.rs L17-L35 F:crates/arxi-recorder/src/bundle_builder.rs L129-L172

تشمل جبر المحددات محددات الشريحة/الوقت/الفلتر/المعرف والاتحادات المركبة مع إزالة التكرار الحتمية عبر BTreeMap. F:crates/arxi-recorder/src/bundle_builder.rs L415-L479

تستخدم القطاعات الجزئية مثبتات الإثبات (chain_hash التي تسبق الظرف المضمن الأول) للتحقق من الاستمرارية. F:crates/arxi-recorder/src/bundle_builder.rs L255-L290


7-Phase Verifier

Verifier::verify ينفذ فحوصات الحزمة في الذاكرة بهذا الترتيب:

  1. تنسيق البيان / خوارزمية التجزئة وفحوصات سلامة الهيكلية،
  2. سلامة تجزئة المرفقات،
  3. تجزئة محتوى الظرف ووجود المرفقات،
  4. استمرارية سلسلة كل جزء،
  5. ربط سلفيات عبر القطاعات،
  6. التحقق من التوقيع مع جذر الثقة الاختياري + سياسة الثقة،
  7. تجميع الحكم.

قبل تنفيذ المرحلة، يفرض المدقق سياسة عمل محدودة ويفشل في حالة تجاوز الحدود (الأقسام، أظرف كل قسم، الأظرف الإجمالية، المرفقات الإجمالية، والمراجع المرفقة لكل ظرف).

F:crates/arxi-recorder/src/verifier.rs L13-L26 F:crates/arxi-recorder/src/verifier.rs L95-L136 F:crates/arxi-recorder/src/verifier.rs L500-L651

جميع مقارنات التجزئة تستخدم المساواة في وقت ثابت. F:crates/arxi-recorder/src/verifier.rs L29-L52


حدود مزود الأدلة

RecorderEvidenceProvider ينفذ خاصية EvidenceProvider من خلال التفويض لتخزين الاستعلام، وبناء الحزم، والمحقق. F:crates/arxi-recorder/src/evidence_provider.rs L48-L67

طرق:

  • list_bundles enumerates sealed segments with stable IDs derived from list_bundles يعد قائمة بالمقاطع المغلقة مع معرفات مستقرة مستمدة من معرفات المقاطع ويدعم دلالات المؤشر/الحد.
  • fetch_bundle resolves the requested bundle ID to a sealed segment and builds fetch_bundle يحل معرف الحزمة المطلوب إلى شريحة مختومة ويبني باستخدام BundleSelector::BySegment،
  • verify_bundle يفوض إلى مدقق من 7 مراحل،
  • query_envelopes يفوض استعلامات تصفية مخزن الأظرف.

تتضمن ضوابط حدود المزود الآن حدًا صريحًا للفشل المغلق لتطبيع/رفض حدود الطلبات وحدود تجسيد حزمة القطاعات.

F:crates/arxi-recorder/src/evidence_provider.rs L123-L286


حالة تعزيز وقت التشغيل

تم الانتهاء مؤخرًا من التشغيل:

  1. Verifier phase 6 now enforces trust-root key lookup, cryptographic signature المرحلة 6 من التحقق الآن تفرض البحث عن مفتاح الجذر الثقة، والتحقق من صحة التوقيع التشفيري، وفحوصات سياسة الثقة عند توفير جذر الثقة.
  2. Recorder startup now performs fail-closed read-back verification over the بدء تشغيل المسجل الآن يقوم بإجراء تحقق من القراءة المغلقة الفاشلة على آخر N مظروف من الجزء النشط (startup_verification_depth).
  3. Evidence provider now exposes stable bundle IDs and true fetch-by-ID مزود الأدلة الآن يكشف عن معرفات الحزم المستقرة ودلالات جلب حقيقية حسب المعرف للقطاعات المغلقة.
  4. Verifier phase 1 now fail-closes on manifest structural tampering (segment مرحلة التحقق 1 الآن تغلق بشكل فاشل عند التلاعب الهيكلي بالبيان (عدم تطابق بيانات المقطع وقائمة المرفقات).
  5. Recorder config validation now fail-closes malformed recorder_id values الآن تتحقق عملية التحقق من تكوين المسجل من القيم غير الصحيحة لـ recorder_id وتغلق بشكل فاشل قبل الوصول إلى سلوك الفتح/الإغلاق في وقت التشغيل.
  6. الآن يفرض Verifier حدود عمل محددة بشكل صريح عند حدود المكتبة.
  7. Evidence provider now enforces bounded query/list/materialization limits and مزود الأدلة الآن يفرض حدود استعلام/قائمة/تجسيد محددة ويرفض الحدود الكبيرة المقدمة من المتصلين.
  8. System tests now cover manifest structural tamper, single-open-segment تغطي اختبارات النظام الآن التلاعب الهيكلي في البيان، وإنفاذ القطعة المفتوحة الواحدة، ومسارات الفشل المغلقة بسبب فساد الاستمرارية من البداية إلى النهاية.

F:crates/arxi-recorder/src/verifier.rs L509-L651 F:crates/arxi-recorder/src/engine.rs L154-L197 F:crates/arxi-recorder/src/engine.rs L380-L543 F:crates/arxi-recorder/src/evidence_provider.rs L52-L300 F:system-tests/tests/suites/bundle.rs L563-L684 F:system-tests/tests/suites/recorder.rs L279-L327 F:system-tests/tests/suites/persistence.rs L375-L468


مرجع متقاطع لكل ملف

المنطقةالملفالملاحظات
دورة حياة المحركcrates/arxi-recorder/src/engine.rsتدفق الفتح/التسجيل/الإغلاق وتقدم السلسلة.
إعدادات التشغيلcrates/arxi-recorder/src/config.rsثوابت إعدادات الإغلاق التلقائي وبدء التشغيل.
حدود المحولcrates/arxi-recorder/src/local_adapter.rsتنفيذ المحول داخل العملية.
التحقق من المدخلاتcrates/arxi-recorder/src/validation.rsفحص الأظرف غير المغلقة بطريقة فشل مغلقة.
منشئ الحزمةcrates/arxi-recorder/src/bundle_builder.rsحل المحدد وتجميع الحزمة بطريقة حتمية.
المدققcrates/arxi-recorder/src/verifier.rsخوارزمية التحقق ذات 7 مراحل.
مزود الأدلةcrates/arxi-recorder/src/evidence_provider.rsتنفيذ واجهة الأدلة من جانب السحب.
نموذج الخطأcrates/arxi-recorder/src/error.rsتصنيف الفشل الخاص بالتسجيل.