أركسي مسجل وقت التشغيل وهندسة الحزمة
Audience: Engineers changing ingest/runtime behavior, bundle export, or الجمهور: المهندسون الذين يغيرون سلوك الإدخال/التشغيل، تصدير الحزم، أو مسارات التحقق.
جدول المحتويات
- نظرة عامة تنفيذية
- دورة حياة محرك التسجيل
- إغلاق تلقائي وإغلاق القطع
- حدود المحول
- بناء حزمة خط الأنابيب
- 7-مرحلة التحقق
- حدود مزود الأدلة
- حالة تعزيز وقت التشغيل
- مرجع متقاطع ملف بملف
نظرة عامة تنفيذية
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
سلوك بدء التشغيل:
- يتحقق من صحة
RecorderConfig، - يرفض القيم غير الصحيحة لـ
recorder_idأثناء التحقق من صحة التكوين، - يستعيد بيانات التعريف الخاصة بالجزء النشط إذا كانت موجودة،
- executes startup read-back verification for active segment tails when
startup_verification_depth > 0. F:crates/arxi-recorder/src/engine.rs L154-L197 F:crates/arxi-recorder/src/engine.rs L372-L543
سلوك الاستهلاك:
- حساب تجزئة المحتوى وتجميع التجزئة،
- حقن التوقيع الاختياري،
- تخزين الإضافة،
- 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 خط الأنابيب:
- حل المحدد،
- قم بتجميع الأظرف حسب القطاع بشكل حتمي،
- بناء بيانات التعريف الخاصة بالشمول لكل شريحة،
- حساب الآباء المفقودين وإغلاق الإرفاق،
- تجميع بيان التحقق.
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 ينفذ فحوصات الحزمة في الذاكرة بهذا الترتيب:
- تنسيق البيان / خوارزمية التجزئة وفحوصات سلامة الهيكلية،
- سلامة تجزئة المرفقات،
- تجزئة محتوى الظرف ووجود المرفقات،
- استمرارية سلسلة كل جزء،
- ربط سلفيات عبر القطاعات،
- التحقق من التوقيع مع جذر الثقة الاختياري + سياسة الثقة،
- تجميع الحكم.
قبل تنفيذ المرحلة، يفرض المدقق سياسة عمل محدودة ويفشل في حالة تجاوز الحدود (الأقسام، أظرف كل قسم، الأظرف الإجمالية، المرفقات الإجمالية، والمراجع المرفقة لكل ظرف).
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_bundlesenumerates sealed segments with stable IDs derived fromlist_bundlesيعد قائمة بالمقاطع المغلقة مع معرفات مستقرة مستمدة من معرفات المقاطع ويدعم دلالات المؤشر/الحد.fetch_bundleresolves the requested bundle ID to a sealed segment and buildsfetch_bundleيحل معرف الحزمة المطلوب إلى شريحة مختومة ويبني باستخدامBundleSelector::BySegment،verify_bundleيفوض إلى مدقق من 7 مراحل،query_envelopesيفوض استعلامات تصفية مخزن الأظرف.
تتضمن ضوابط حدود المزود الآن حدًا صريحًا للفشل المغلق لتطبيع/رفض حدود الطلبات وحدود تجسيد حزمة القطاعات.
F:crates/arxi-recorder/src/evidence_provider.rs L123-L286
حالة تعزيز وقت التشغيل
تم الانتهاء مؤخرًا من التشغيل:
- Verifier phase 6 now enforces trust-root key lookup, cryptographic signature المرحلة 6 من التحقق الآن تفرض البحث عن مفتاح الجذر الثقة، والتحقق من صحة التوقيع التشفيري، وفحوصات سياسة الثقة عند توفير جذر الثقة.
- Recorder startup now performs fail-closed read-back verification over the
بدء تشغيل المسجل الآن يقوم بإجراء تحقق من القراءة المغلقة الفاشلة على آخر
Nمظروف من الجزء النشط (startup_verification_depth). - Evidence provider now exposes stable bundle IDs and true fetch-by-ID مزود الأدلة الآن يكشف عن معرفات الحزم المستقرة ودلالات جلب حقيقية حسب المعرف للقطاعات المغلقة.
- Verifier phase 1 now fail-closes on manifest structural tampering (segment مرحلة التحقق 1 الآن تغلق بشكل فاشل عند التلاعب الهيكلي بالبيان (عدم تطابق بيانات المقطع وقائمة المرفقات).
- Recorder config validation now fail-closes malformed
recorder_idvalues الآن تتحقق عملية التحقق من تكوين المسجل من القيم غير الصحيحة لـrecorder_idوتغلق بشكل فاشل قبل الوصول إلى سلوك الفتح/الإغلاق في وقت التشغيل. - الآن يفرض Verifier حدود عمل محددة بشكل صريح عند حدود المكتبة.
- Evidence provider now enforces bounded query/list/materialization limits and مزود الأدلة الآن يفرض حدود استعلام/قائمة/تجسيد محددة ويرفض الحدود الكبيرة المقدمة من المتصلين.
- 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 | تصنيف الفشل الخاص بالتسجيل. |