قيد الاختبار حاليًا: سيتم فتح كود GitHub عند الاكتمال.

البروتوكول — العميل ↔ الخادم

المواصفات الكاملة لكل بايت يُتبادل على منفذ العميل (الافتراضي 5225). يتكون من مصافحة المصادقة التي تُنفَّذ مرة واحدة فور الاتصال، تليها بروتوكول الإطارات الثنائي للقفل. ينفذ كل عميل رسمي هذه المواصفات بايتًا ببايت بشكل مطابق.

البنية في صفحة كل رسالة توضح ترتيب الحقول، ومثال يعرض البايتات الفعلية المُرسَلة (تتغير القيم مع refresh).

ترميز البايتات: يُعرض op كـ حرف ASCII (مثل A)؛ أما wait وlease فقيم ثنائية u8، وtoken وowner قيم ثنائية u64 بترتيب big-endian. تُعرض بالست عشري (مثل wait=505). أما key وaddr فهي نص UTF-8، وreason نص ASCII — وجميعها متغيرة الطول، وتُعرض كـ N في البنية. يُنهي \n (سطر جديد) الأخير الإطار كـ 0A. تُرسَل الحقول متتالية دون فاصل.

الرؤوس الثابتة (wait وlease وtoken وowner) قيم ثنائية، لذا قد تحتوي على 0x0A — على المحلل أن يستهلك أولًا عدد بايتات الرأس الثابت الخاص بكل op قبل البحث عن سطر جديد. الأطوال هي: الطلبات A=10B / R=8B، والاستجابات A=16B / T·B·R·N=8B / M·L·E=0B.

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

بروتوكول إجماع العنقود (Raft) بين الخوادم مشروح في صفحة منفصلة.