বর্তমানে পরীক্ষা চলছে: সম্পূর্ণ হলে GitHub কোড উন্মুক্ত করা হবে।

প্রোটোকল — ক্লায়েন্ট ↔ সার্ভার

ক্লায়েন্ট পোর্টে (ডিফল্ট 5225) আদান-প্রদান হওয়া প্রতিটি বাইটের সম্পূর্ণ স্পেসিফিকেশন। এটি সংযোগের পরপরই একবার সম্পন্ন হওয়া প্রমাণীকরণ হ্যান্ডশেক এবং তারপর বাইনারি ফ্রেম লক প্রোটোকল নিয়ে গঠিত। প্রতিটি অফিসিয়াল ক্লায়েন্ট এই স্পেসিফিকেশন বাইট-বাই-বাইট অভিন্নভাবে বাস্তবায়ন করে।

প্রতিটি মেসেজ পেজের স্ট্রাকচার ফিল্ডের বিন্যাস দেখায়, আর উদাহরণ প্রকৃত পাঠানো বাইট দেখায় (refresh-এ মান পরিবর্তিত হয়)।

বাইট নোটেশন: op একটি ASCII অক্ষর হিসেবে দেখানো হয় (যেমন A); waitlease বাইনারি u8 মান, আর tokenowner বাইনারি u64 big-endian মান। এগুলো হেক্স আকারে দেখানো হয় (যেমন wait=505)। keyaddr হলো 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) প্রোটোকল একটি আলাদা পেজে আলোচনা করা হয়েছে।