
يجلب باستمرار تحديثات سجل شفافية المفاتيح ويتحقق منها تشفيريًا، ويحافظ على عرض بادئة مكثفة وشجرة سجل، ويعيد رؤوس الأشجار الموقعة عندما تكون التحديثات صالحة.
تطبيق مرجعي لمدقق من طرف ثالث لخدمة شفافية المفاتيح من Signal، استناداً إلى مواصفات شفافية المفاتيح.
هذه الخدمة مكتوبة بلغة Java باستخدام إطار عمل Micronaut. للبناء واختبار الوحدات، شغّل
./mvnw clean test
في الدليل الجذري.
الفئة الرئيسية هي Auditor، والتي تشغّل مهمة مجدولة تطلب دفقاً من التحديثات من خدمة شفافية المفاتيح. تحتفظ بمنظر موجز لكل من شجرة البادئات وشجرة السجل الخاصة بخدمة شفافية المفاتيح، مخزّنةً القدر الكافي فقط من المعلومات للتحقق من كل تحديث وقبوله بالتسلسل. إذا عالج المدقق عدداً معيناً من التحديثات أو انقضى قدر معين من الوقت، يرسل المدقق رأس شجرة موقّعاً إلى خدمة شفافية المفاتيح، للإشارة إلى أن منظوره لشجرتي البادئات والسجل حتى التحديث المحدد متطابق. إذا نجح الاستدعاء البعيد، يكتب المدقق بيانات حالته إلى AuditorStateRepository، والتي قد يستخدمها لاستئناف العمل من أحدث موضع له في سجل شفافية المفاتيح إذا أُعيد تشغيل المدقق.
إذا واجه المدقق تبايناً أثناء التحقق من تحديث ما، فإنه يطرح استثناء InvalidProofException ويتوقف عن إرسال رؤوس الأشجار الموقّعة إلى خدمة شفافية المفاتيح.
لكي تعمل الخدمة، تحتاج إلى حبوب (Beans) Auditor وKeyTransparencyServiceClient وAuditorStateRepository. يصف الجدول أدناه خصائص الإعدادات اللازمة لإنشاء تلك الحبوب.