Каталоги
На 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 не підставляє іншого кандидата лише через те, що переможець тимчасово недоступний через з’єднання одного користувача.
Як переможців визначають сьогодні
Кандидатів публікують як файли JSON у репозиторії bitsocialnet/lists, по одному файлу на каталог, і спільнота приєднується до каталогу через пул-реквест до його файлу. Це тимчасовий етап для запуску. Мета полягає в тому, щоб голосування замінило пул-реквести як спосіб визначення переможців.
- Seedit ранжує кандидатів каталогу за балами, потім за часом додавання, а потім за адресою. Кожен файл каталогу має номер ревізії, і будь-яка зміна його кандидатів або переможця публікує нову ревізію.
- 5chan проводить одне голосування для кожного каталогу за допомогою
@bitsocial/pubsub-voting. Клієнти обмінюються підписаними бюлетенями через libp2p gossipsub і самі підраховують результати, без сервера, який рахував би голоси. Щоб голосувати, потрібно мати 5chan Pass — токен, який не можна передати іншій особі, і кожен власник має один голос. Голос за дошку, якої ще немає в списку, висуває її кандидатом. Наразі голосування проходять у тестовій мережі Base Sepolia, і доки вони не вийдуть із тестової мережі, результати відображаються, але не змінюють порядок списку.
Протокол чи застосунок?
Каталоги не є частиною PKC — однорангового рівня, який зберігає й передає спільноти. Це домовленість, яку клієнти застосовують поверх цього рівня, поряд зі списками за замовчуванням і пошуком; див. Відкриття вмісту. Клієнт може читати ті самі файли каталогів, публікувати власні або взагалі обходитися без каталогів, а користувачі все одно можуть відкрити будь-яку спільноту за її адресою.