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

R · মুক্তি

গঠনrefresh

একটি লক মুক্তির অনুরোধ। token হলো সেই অর্জনে পাওয়া ফেন্সিং টোকেন, আর বর্তমানে ধারণ করা টোকেনের সাথে মিললে তবেই মুক্তি হয়। সাড়া মুক্তিপ্রাপ্ত R অথবা নেই N

token — অন্যের লক না খোলার ব্যবস্থা

টোকেন যাচাই না থাকলে একটি বিপজ্জনক ক্রম তৈরি হয়। মুক্তির অনুরোধ ফেইলওভার পেরিয়ে পুনরায় চেষ্টা হওয়ার ফাঁকে মূল লকটি lease মেয়াদ শেষে পুনরুদ্ধার হয়ে অন্য ক্লায়েন্টকে দেওয়া হলে, দেরিতে পৌঁছানো মুক্তি সেই নতুন ধারকের লক খুলে ফেলে। টোকেন মিললে তবেই মুক্তি হয় বলে এই পথটি বন্ধ থাকে।

টোকেন না মিললে N (নেই) আসে এবং লক অক্ষত থাকে। মুক্তির পুনঃচেষ্টা সবসময় একই টোকেন দিয়ে পাঠাতে হবে, আর সাড়া মেলানোও হয় ইকো করা token দিয়ে (সাড়া মেলানোর নিয়ম)।

বাইট নোটেশন: op একটি ASCII অক্ষর, token বাইনারি (u64, বিগ-এন্ডিয়ান), আর key UTF-8 টেক্সট (পরিবর্তনশীল-দৈর্ঘ্যের, স্ট্রাকচারে N হিসেবে দেখানো)। শেষের \n হলো 0A। ফিক্সড হেডার বাইনারি মান বলে এতে 0x0A থাকতে পারে, তাই নিউলাইন খোঁজার আগে বাইট-সংখ্যা অনুযায়ী আগে গ্রাস করতে হবে।

প্রবাহ

ধারক X
সার্ভার
অপেক্ষমাণ Y
R · মুক্তি (key · token)
R · মুক্তিপ্রাপ্ত
অপেক্ষমাণ থাকলে A · সরাসরি হস্তান্তর (নতুন token)
কী না থাকলে বা টোকেন না মিললে
N · নেই
অনুরোধপ্রতিক্রিয়া

মুক্তিপ্রাপ্ত কী-এর জন্য কোনো অপেক্ষমাণ থাকলে, তাকে পুনরায় প্রতিযোগিতা ছাড়াই সরাসরি সারির সামনে হস্তান্তর করা হয় — মুক্তিদাতাকে পাঠানো R (মুক্তিপ্রাপ্ত)-এর পাশাপাশি, অপেক্ষমাণ একটি নতুন token বহনকারী A (অর্জিত) পায়।