স্কিপ করে মূল কন্টেন্ট এ যান

ডিরেক্টরি

Reddit-এ r/opensource-এর মতো একটি নাম কেবল একটি সম্প্রদায়েরই হতে পারে, আর যে সেটি নিয়ন্ত্রণ করে সে-ই নামটি ধরে রাখে। এর মডারেটররা যদি এমন সিদ্ধান্ত নেন যা ব্যবহারকারীদের পছন্দ নয়, তাহলে একমাত্র বিকল্প হলো r/opensource2 শুরু করা। নতুন সম্প্রদায়টি শূন্য সাবস্ক্রাইবার নিয়ে শুরু হয়, যদিও r/opensource-এ সাবস্ক্রাইব করা বেশিরভাগ মানুষের আগ্রহ ছিল ওপেন সোর্সে, নির্দিষ্ট ওই মডারেশন টিমে নয়।

Bitsocial অ্যাপগুলো ডিরেক্টরি দিয়ে এই সমস্যা এড়ায়। ডিরেক্টরি হলো opensource-এর মতো একটি বিষয়ভিত্তিক নাম, যার জন্য সম্প্রদায়গুলো প্রতিযোগিতা করে। সেই নামের ছোট রুটটি বর্তমানে প্রথম স্থানে থাকা সম্প্রদায়টিকেই খোলে, তাই কারও অনুমতি ছাড়াই একটি ভালো সম্প্রদায় নামটি নিজের করে নিতে পারে।

এটি কীভাবে কাজ করে​

  1. ডিরেক্টরি কোড হলো একটি বিষয়ভিত্তিক নাম। Seedit /s/funny-এর মতো রুট ব্যবহার করে। 5chan /g/-এর মতো ইমেজবোর্ড পাথ ব্যবহার করে।
  2. সম্প্রদায়গুলো প্রার্থী হিসেবে প্রতিযোগিতা করে। প্রতিটি ডিরেক্টরির প্রার্থী সম্প্রদায়ের একটি তালিকা থাকে, যাদের প্রত্যেকের নিজস্ব নির্দিষ্ট ঠিকানা আছে, যেমন funny-posting.bso।
  3. সর্বোচ্চ র‌্যাঙ্কের প্রার্থী রুটটি জেতে। /s/funny খুললে বর্তমান বিজয়ীকে দেখা যায়।
  4. হারলে কিছুই মুছে যায় না। যে সম্প্রদায় বিজয়ী নয়, সেটি তার ঠিকানা, পোস্ট এবং সাবস্ক্রাইবার ধরে রাখে, এবং যে কেউ এখনও সেটি সরাসরি খুলতে পারে।

নামটি প্রবেশদ্বার, পরিচয় নয়​

ডিরেক্টরি কোড কেবল আবিষ্কারের একটি রুট। স্থায়ী সবকিছুই একটি নির্দিষ্ট সম্প্রদায়ের দিকে নির্দেশ করে:

  • /s/funny থেকে সাবস্ক্রাইব করলে বর্তমান বিজয়ীর নির্দিষ্ট ঠিকানায় সাবস্ক্রাইব হয়। ডিরেক্টরি কোডটি নিজে কখনো সাবস্ক্রিপশন হিসেবে সংরক্ষিত হয় না।
  • পোস্টের লিঙ্ক সবসময় সম্প্রদায়ের নির্দিষ্ট ঠিকানা ব্যবহার করে, তাই বিজয়ী বদলে গেলে কোনো পুরোনো লিঙ্ক অন্য সম্প্রদায়ের দিকে নির্দেশ করতে শুরু করতে পারে না।
  • বিজয়ী বদলালে Seedit বিদ্যমান সাবস্ক্রিপশনে হাত দেয় না এবং প্রত্যেক সাবস্ক্রাইবারকে জিজ্ঞেস করে তিনি নতুন বিজয়ীতে যেতে চান, দুটোই রাখতে চান, নাকি বর্তমান সম্প্রদায়টিই রাখতে চান। স্বয়ংক্রিয়ভাবে বদলানো প্রতিটি ডিরেক্টরির জন্য আলাদাভাবে চালু করার একটি ঐচ্ছিক সেটিং, এবং প্রতিটি স্বয়ংক্রিয় বদলের সময় আনডু করার সুযোগসহ একটি নোটিশ দেখানো হয়।

তাই একটি প্রতিদ্বন্দ্বী সম্প্রদায় কারও সাবস্ক্রিপশন কেড়ে নেয় না। এটি নামটি জেতে: নতুন দর্শনার্থীরা এতে পৌঁছান, আর বিদ্যমান সাবস্ক্রাইবাররা এক ক্লিকে বেছে নেওয়ার সুযোগ পান। যাঁরা পুরোনো সম্প্রদায়টি পছন্দ করতেন, তাঁরা সেটিই রাখেন।

কেন নাম আগে এলে আগে পাবেন নীতিতে নয়​

  • নাম দখল করে বসে থাকা চলে না। একটি ভালো নাম ধরে রাখাই যথেষ্ট নয়। সম্প্রদায়কে সেই নামের জন্য সেরা প্রার্থী হয়ে থাকতে হবে।
  • কোনো অ্যাডমিন নাম বরাদ্দ করেন না। অ্যাডমিনের মাধ্যমে বরাদ্দ সেই কেন্দ্রীয় ভেটো ফিরিয়ে আনত, যা দূর করার জন্যই Bitsocial তৈরি।
  • প্রতিযোগীরা দর্শকদের কাছে পৌঁছানোর পথ ধরে রাখে। একটি প্রতিদ্বন্দ্বী সম্প্রদায় আরও খারাপ কোনো নামে নতুন করে শুরু না করে একই নামকে লক্ষ্য করে।
  • ক্লায়েন্টগুলো বিজয়ী নিয়ে একমত হয়। Seedit প্রার্থীদের নির্ধারিত (ডিটারমিনিস্টিক) উপায়ে র‌্যাঙ্ক করে, তাই একই চূড়ান্ত ডিরেক্টরি স্ন্যাপশট পড়া প্রতিটি ক্লায়েন্ট একই বিজয়ী দেখায়। কোনো একজন ব্যবহারকারীর সংযোগ থেকে বিজয়ী সাময়িকভাবে নাগালের বাইরে থাকলে Seedit তার জায়গায় অন্য প্রার্থী বসায় না।

আজ বিজয়ী কীভাবে নির্বাচিত হয়​

প্রার্থীদের JSON ফাইল হিসেবে bitsocialnet/lists রিপোজিটরিতে প্রকাশ করা হয়, প্রতি ডিরেক্টরির জন্য একটি ফাইল, এবং কোনো সম্প্রদায় সেই ফাইলে একটি পুল রিকোয়েস্টের মাধ্যমে ডিরেক্টরিতে যোগ দেয়। এটি একটি প্রাথমিক, অস্থায়ী ধাপ। লক্ষ্য হলো, বিজয়ী নির্ধারণের উপায় হিসেবে পুল রিকোয়েস্টের জায়গা নেবে ভোটিং।

  • Seedit একটি ডিরেক্টরির প্রার্থীদের প্রথমে স্কোর, তারপর যুক্ত হওয়ার সময় এবং তারপর ঠিকানা অনুযায়ী র‌্যাঙ্ক করে। প্রতিটি ডিরেক্টরি ফাইলে একটি রিভিশন নম্বর থাকে, এবং এর প্রার্থী বা বিজয়ীতে যেকোনো পরিবর্তন একটি নতুন রিভিশন প্রকাশ করে।
  • 5chan @bitsocial/pubsub-voting দিয়ে প্রতি ডিরেক্টরিতে একটি ভোট প্রতিযোগিতা চালায়। ক্লায়েন্টগুলো libp2p gossipsub-এর মাধ্যমে স্বাক্ষরিত ব্যালট আদানপ্রদান করে এবং নিজেরাই ভোটের হিসাব করে, কোনো সার্ভার ভোট গোনে না। ভোট দিতে একটি 5chan Pass থাকতে হয়, যা একটি অহস্তান্তরযোগ্য টোকেন, এবং প্রত্যেক ধারক একটি করে ভোট পান। তালিকায় এখনও নেই এমন কোনো বোর্ডকে ভোট দিলে সেটি মনোনীত হয়। প্রতিযোগিতাগুলো বর্তমানে Base Sepolia টেস্টনেটে চলছে, এবং টেস্টনেট থেকে সরে না আসা পর্যন্ত ভোটের হিসাব দেখানো হলেও তা তালিকার ক্রম বদলায় না।

প্রোটোকল নাকি অ্যাপ?​

ডিরেক্টরি PKC-এর অংশ নয়; PKC হলো সেই পিয়ার-টু-পিয়ার স্তর, যা সম্প্রদায়গুলো সংরক্ষণ ও স্থানান্তর করে। ডিরেক্টরি একটি রীতি, যা ক্লায়েন্টগুলো ডিফল্ট তালিকা ও অনুসন্ধানের পাশাপাশি সেই স্তরের উপরে প্রয়োগ করে; দেখুন বিষয়বস্তু আবিষ্কার। একটি ক্লায়েন্ট একই ডিরেক্টরি ফাইল পড়তে পারে, নিজস্ব ফাইল প্রকাশ করতে পারে, অথবা ডিরেক্টরি পুরোপুরি বাদ দিতে পারে, আর ব্যবহারকারীরা এখনও যেকোনো সম্প্রদায় তার ঠিকানা দিয়ে খুলতে পারেন।