डायरेक्टरी
Reddit पर r/opensource जैसा नाम केवल एक ही समुदाय का हो सकता है, और जिसका उस पर नियंत्रण है, नाम उसी के पास रहता है। अगर उसके मॉडरेटर ऐसे फ़ैसले लेते हैं जो उपयोगकर्ताओं को पसंद नहीं, तो एकमात्र विकल्प r/opensource2 शुरू करना है। नया समुदाय शून्य सब्सक्राइबर के साथ शुरू होता है, जबकि r/opensource को सब्सक्राइब करने वाले ज़्यादातर लोगों की दिलचस्पी ओपन सोर्स में थी, उस ख़ास मॉडरेशन टीम में नहीं।
Bitsocial ऐप डायरेक्टरी के ज़रिए इस समस्या से बचते हैं। डायरेक्टरी एक विषय-नाम है, जैसे opensource, जिसके लिए समुदाय प्रतिस्पर्धा करते हैं। उस नाम का छोटा रूट उस समुदाय को खोलता है जो फ़िलहाल रैंकिंग में सबसे ऊपर है, इसलिए कोई बेहतर समुदाय किसी की अनुमति के बिना वह नाम हासिल कर सकता है।
यह कैसे काम करता है
- डायरेक्टरी कोड एक विषय-नाम है। Seedit
/s/funnyजैसे रूट इस्तेमाल करता है। 5chan/g/जैसे इमेजबोर्ड पथ इस्तेमाल करता है। - समुदाय उम्मीदवारों के रूप में प्रतिस्पर्धा करते हैं। हर डायरेक्टरी में उम्मीदवार समुदायों की एक सूची होती है, और हर समुदाय का अपना सटीक पता होता है, जैसे
funny-posting.bso। - सबसे ऊँची रैंक वाला उम्मीदवार रूट जीतता है।
/s/funnyखोलने पर मौजूदा विजेता दिखता है। - हारने से कुछ भी डिलीट नहीं होता। जो समुदाय विजेता नहीं है, उसका पता, उसकी पोस्ट और उसके सब्सक्राइबर बने रहते हैं, और कोई भी उसे अब भी सीधे खोल सकता है।
नाम एक मुख्य द्वार है, पहचान नहीं
डायरेक्टरी कोड सिर्फ़ खोज का एक रूट है। जो कुछ भी स्थायी है, वह किसी सटीक समुदाय की ओर इशारा करता है:
/s/funnyसे सब्सक्राइब करने पर आप मौजूदा विजेता के सटीक पते को सब्सक्राइब करते हैं। डायरेक्टरी कोड खुद कभी सब्सक्रिप्शन के रूप में सेव नहीं होता।- पोस्ट लिंक हमेशा समुदाय का सटीक पता इस्तेमाल करते हैं, इसलिए विजेता बदलने के बाद कोई पुराना लिंक किसी दूसरे समुदाय की ओर इशारा नहीं करने लगता।
- विजेता बदलने पर Seedit मौजूदा सब्सक्रिप्शन को जस का तस छोड़ देता है और हर सब्सक्राइबर से पूछता है कि वह नए विजेता पर स्विच करना चाहता है, दोनों को रखना चाहता है, या मौजूदा समुदाय को ही रखना चाहता है। ऑटोमैटिक स्विचिंग हर डायरेक्टरी के लिए एक ऑप्ट-इन सेटिंग है, और ऑटोमैटिक स्विच होने पर एक सूचना दिखती है जिससे बदलाव को पूर्ववत किया जा सकता है।
इसलिए कोई प्रतिस्पर्धी समुदाय किसी के सब्सक्रिप्शन नहीं छीनता। वह नाम जीतता है: नए विज़िटर उस पर पहुँचते हैं, और मौजूदा सब्सक्राइबर को एक क्लिक में चुनने का विकल्प मिलता है। जिन लोगों को पुराना समुदाय पसंद था, वे उसे बनाए रखते हैं।
पहले आओ, पहले पाओ वाले नाम क्यों नहीं
- नाम घेरकर बैठना संभव नहीं। अच्छा नाम अपने पास रखना काफ़ी नहीं है। समुदाय को उस नाम के लिए सबसे अच्छा उम्मीदवार बने रहना होता है।
- कोई एडमिन नाम आवंटित नहीं करता। किसी व्यवस्थापक द्वारा आवंटन उसी केंद्रीय वीटो को फिर से खड़ा कर देगा, जिसे हटाने के लिए Bitsocial बनाया गया है।
- प्रतिस्पर्धियों के पास दर्शकों तक पहुँचने का रास्ता बना रहता है। प्रतिद्वंद्वी समुदाय किसी कमतर नाम के तहत शून्य से शुरू करने के बजाय उसी नाम को निशाना बनाता है।
- क्लाइंट विजेता पर सहमत रहते हैं। Seedit उम्मीदवारों को नियतात्मक तरीके से रैंक करता है, इसलिए एक ही अंतिम डायरेक्टरी स्नैपशॉट पढ़ने वाला हर क्लाइंट एक ही विजेता दिखाता है। अगर किसी एक उपयोगकर्ता के कनेक्शन पर विजेता अस्थायी रूप से उपलब्ध न हो, तो Seedit उसकी जगह किसी दूसरे उम्मीदवार को नहीं दिखाता।
आज विजेता कैसे चुने जाते हैं
उम्मीदवार bitsocialnet/lists रिपॉज़िटरी में JSON फ़ाइलों के रूप में प्रकाशित होते हैं, हर डायरेक्टरी के लिए एक फ़ाइल, और कोई समुदाय उस डायरेक्टरी की फ़ाइल पर पुल रिक्वेस्ट भेजकर उसमें शामिल होता है। यह एक शुरुआती कदम है। लक्ष्य यह है कि विजेता तय करने के तरीके के रूप में पुल रिक्वेस्ट की जगह वोटिंग ले।
- Seedit किसी डायरेक्टरी के उम्मीदवारों को पहले स्कोर के आधार पर, फिर उन्हें जोड़े जाने के समय के आधार पर, और फिर पते के आधार पर रैंक करता है। हर डायरेक्टरी फ़ाइल में एक रिविज़न नंबर होता है, और उसके उम्मीदवारों या विजेता में कोई भी बदलाव एक नया रिविज़न प्रकाशित करता है।
- 5chan
@bitsocial/pubsub-votingकी मदद से हर डायरेक्टरी के लिए एक वोटिंग प्रतियोगिता चलाता है। क्लाइंट libp2p gossipsub पर हस्ताक्षरित मतपत्रों का आदान-प्रदान करते हैं और गिनती खुद करते हैं, वोट गिनने के लिए कोई सर्वर नहीं होता। वोट देने के लिए 5chan Pass होना ज़रूरी है, जो एक गैर-हस्तांतरणीय टोकन है, और हर धारक को एक वोट मिलता है। किसी ऐसे बोर्ड को वोट देने से, जो अभी सूची में नहीं है, वह नामांकित हो जाता है। ये प्रतियोगिताएँ फ़िलहाल Base Sepolia टेस्टनेट पर चल रही हैं, और जब तक ये टेस्टनेट से बाहर नहीं आतीं, तब तक गिनती दिखाई जाती है लेकिन उससे सूची का क्रम नहीं बदलता।
प्रोटोकॉल या ऐप?
डायरेक्टरी PKC का हिस्सा नहीं हैं, जो समुदायों को संग्रहीत करने और उन्हें आगे पहुँचाने वाली पीयर-टू-पीयर परत है। ये एक परिपाटी हैं जिसे क्लाइंट उस परत के ऊपर डिफ़ॉल्ट सूचियों और खोज के साथ लागू करते हैं; देखें सामग्री खोज। कोई क्लाइंट वही डायरेक्टरी फ़ाइलें पढ़ सकता है, अपनी फ़ाइलें प्रकाशित कर सकता है, या डायरेक्टरी को पूरी तरह छोड़ सकता है, और उपयोगकर्ता फिर भी किसी भी समुदाय को उसके पते से खोल सकते हैं।