वर्तमान में परीक्षण चल रहा है: पूरा होने पर 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 के रूप में समाप्त करता है। फ़ील्ड बिना किसी सीमांकक (delimiter) के एक के बाद एक भेजे जाते हैं।

फ़िक्स्ड हेडर (wait, lease, token, owner) बाइनरी मान हैं और उनमें 0x0A हो सकता है — इसलिए पार्सर को नई लाइन खोजने से पहले उस op की फ़िक्स्ड हेडर लंबाई जितने बाइट खपाने चाहिए। लंबाइयाँ हैं: अनुरोध A=10B / R=8B, प्रतिक्रिया A=16B / T·B·R·N=8B / M·L·E=0B।

विषय-सूची

सर्वर-से-सर्वर क्लस्टर सर्वसम्मति (Raft) प्रोटोकॉल को एक अलग पृष्ठ पर कवर किया गया है।