Перейти к основному содержанию

Bitsocial и ActivityPub

ActivityPub — стандарт W3C, на котором построен Fediverse. Пользователи выбирают сервер, называемый инстансом, который размещает их учётную запись, а серверы обмениваются постами друг с другом. Mastodon — самое известное ПО для микроблогов в Fediverse; Lemmy — агрегатор ссылок и форум в стиле Reddit, состоящий из тематических сообществ, поэтому из всего Fediverse он ближе всего к приложениям Bitsocial вроде Seedit.

Как работает ActivityPub​

  • Входящие и исходящие. У каждой учётной записи есть inbox и outbox. Серверы доставляют активности во входящие ящики на других серверах, и каждый принимающий сервер хранит собственную копию того, на что подписаны его пользователи.
  • Идентичность принадлежит серверу. Идентификаторы учётных записей и постов — это HTTPS-адреса на домене исходного сервера. Хэндл в Mastodon выглядит как @user@domain и разрешается через WebFinger, а сервер подписывает федеративные сообщения от имени пользователя.
  • Клиенты. Приложения и браузеры общаются только с сервером самого пользователя, через API этого сервера.
  • Сообщества Lemmy. Сообщество — это групповой актор, размещённый на одном инстансе. Пользователи отправляют посты в сообщество, а оно ретранслирует их своим подписчикам; по общему стандарту для форумов (FEP-1b12) сообщество может сначала проверять посты — вплоть до ручного одобрения модераторами.
  • Модерация. Модерация локальна для каждого сервера. Администраторы могут приостанавливать учётные записи, блокировать целые серверы или федерироваться только с серверами из белого списка; в Lemmy у каждого сообщества также есть модераторы.
  • Защита от спама. ActivityPub не определяет никакого антиспам-механизма. Mastodon и Lemmy ограничивают регистрацию одобрением, приглашениями, вопросами в заявке, капчами и проверкой электронной почты, а затем полагаются на ограничения частоты, жалобы и модерацию.

Чем они различаются​

Идентичность принадлежит домену​

Учётная запись в Fediverse принадлежит домену своего сервера. Mastodon может перенаправить подписчиков на новую учётную запись, но посты не переезжают, переезд должен начинаться со старого сервера, и действует 30-дневный период ожидания. В Bitsocial профили и сообщества — это пары ключей, поэтому смена хоста или приложения не меняет идентичность. См. Идентичность и собственность сообщества.

Где живёт сообщество​

Сообщество Lemmy по устройству близко к сообществу Bitsocial: посты отправляются в сообщество, которое может проверить их перед ретрансляцией. Разница в том, где оно живёт. Сообщество Lemmy можно создать только на домашнем инстансе его создателя, администратор инстанса полностью его контролирует, а документированного способа перенести его на другой инстанс нет. Сообщество Bitsocial — это собственная пара ключей: владелец может запустить его узел где угодно, и над ним нет никакого администратора сервера.

Защита от спама​

Серверы Fediverse в основном останавливают спам на этапе регистрации, а модерируют уже потом. Сообщество Bitsocial прогоняет каждый пост через проверку, прежде чем принять его, и каждое сообщество выбирает свою: капчу, белый список, оплату или любой другой код. См. Пользовательские задачи по борьбе со спамом.

Эксплуатация инфраструктуры​

Запуск инстанса означает постоянно работающий сервер с доменом, TLS и электронной почтой. Mastodon также требует PostgreSQL, Redis и фоновых воркеров; Lemmy легче — около 150 МБ оперативной памяти по его собственным данным. Каждый инстанс хранит копии удалённого контента, на который подписаны его пользователи. Узлу сообщества Bitsocial не нужны ни домен, ни сертификат, и он запускается из десктопного приложения или bitsocial-cli.

Что серверы дают взамен​

Серверы Fediverse хранят полную историю и надёжно её отдают, а у Mastodon есть зрелые инструменты модерации, отточенные за годы. Bitsocial не гарантирует, что старый контент сохранится навсегда, а его инструменты модерации живут в каждом приложении.

Сравнение​

ВопросActivityPub (Mastodon, Lemmy)Bitsocial
КатегорияФедеративные серверыP2P-сеть сообществ
ИдентичностьУчётная запись на домене сервера, подписанная серверомПары ключей Ed25519 для пользователей и сообществ
Где хранятся постыИсходный сервер плюс копии на каждом сервере, где есть подписчикиУзел владельца сообщества и пиры, которые читают и раздают его
Кто держит контент онлайнАдминистраторы инстансовУзел владельца сообщества плюс вспомогательные сидеры
СообществаСообщества Lemmy, размещённые на одном инстансеПолноценные объекты, чей узел принимает или отклоняет посты
Защита от спамаФильтры при регистрации, ограничения частоты, жалобы и модерацияАнтиспам-проверка сообщества перед тем, как пост будет принят
МодерацияАдминистраторы серверов и модераторы сообществ, локально на каждом сервереВладельцы сообществ модерируют свои сообщества; приложения выбирают, что показывать
ИменаХэндлы @user@domain и !community@domainИмена .bso и .eth, которые разрешаются в ключи
БраузерКлиент сервера самого пользователяP2P-узел внутри обычной вкладки браузера
Главный компромиссНадёжная история и зрелая модерация, но идентичность и сообщества принадлежат серверуНе нужны ни сервер, ни домен, но старый контент не гарантирован навсегда