فی الحال ٹیسٹنگ جاری ہے: مکمل ہونے پر GitHub کوڈ کھول دیا جائے گا۔

پروٹوکول — کلائنٹ ↔ سرور

کلائنٹ پورٹ (ڈیفالٹ 5225) پر آنے جانے والے ہر بائٹ کا مکمل خاکہ۔ اس میں کنکشن کے فوراً بعد ایک بار ہونے والا تصدیقی ہینڈ شیک اور اس کے بعد بائنری فریم لاک پروٹوکول شامل ہے۔ ہر سرکاری کلائنٹ اس خاکے کو بائٹ بہ بائٹ ایک جیسا نافذ کرتا ہے۔

ہر پیغام صفحے کا ڈھانچہ فیلڈ ترتیب دکھاتا ہے، اور مثال اصل بھیجے گئے بائٹس دکھاتی ہے (refresh سے قدر بدل جاتی ہے)۔

بائٹ نوٹیشن: op کو ASCII حرف (مثلاً A) کے طور پر دکھایا جاتا ہے؛ wait اور lease بائنری u8 قدریں ہیں، جبکہ token اور owner بائنری u64 big-endian قدریں ہیں۔ انہیں hex میں دکھایا جاتا ہے (مثلاً wait=505key اور addr UTF-8 متن ہیں، اور reason ASCII متن ہے — یہ سب متغیر لمبائی کے ہیں، ڈھانچے میں N کے طور پر دکھائے جاتے ہیں۔ آخری \n (نئی لائن) 0A کے طور پر فریم کو ختم کرتا ہے۔ فیلڈز بغیر کسی علیحدگی (delimiter) کے یکے بعد دیگرے بھیجے جاتے ہیں۔

فکسڈ ہیڈرز (wait، lease، token، owner) بائنری قدریں ہیں، اس لیے ان میں 0x0A آ سکتا ہے — پارسر کو نئی لائن تلاش کرنے سے پہلے ہر op کے فکسڈ ہیڈر کی لمبائی کے مطابق پہلے کھپانا ہوگا۔ لمبائیاں یہ ہیں: درخواستیں A=10B / R=8B، جوابات A=16B / T·B·R·N=8B / M·L·E=0B۔

فہرست

سرور سے سرور کے درمیان کلسٹر اتفاقِ رائے (Raft) پروٹوکول ایک الگ صفحے پر بیان کیا گیا ہے۔