Децентрализованная социальная сеть для себя и друзей. На своём хостинге — без интернета
Большинство социальных сетей ориентированы на интернет. Если нет онлайна, то нет и доступа к социальной сети, и даже собственные сообщения недоступны.
Однако в современных условиях доступ в интернет может быть утерян. Поэтому нужен запасной вариант.
Совершенно противоположный подход — собственный офлайновый хостинг для децентрализованного приложения. В таком варианте узел живёт на вашем телефоне — и синхронизируется с другими по мере необходимости, в том числе по Bluetooth и Wi-Fi Direct. Никаких лишних людей, полная безопасность и отличная страховка на случай полного шатдауна.
Локальный принцип
Локальный принцип (local-first) в разработке коллективного программного обеспечения означает, что контент подгружается после того, как устройство подключается к сети. Но в офлайне софт полностью работоспособен. В автономном режиме всё равно можно поделиться информацией с соседними устройствами.
Такие системы полноценно работают без интернета. В сети нет центрального сервера, а разработчики приложения не имеют доступа к пользовательским данным. Каждый человек сам управляет своими файлами и несёт ответственность за них.
Локальный подход очень важен для территорий с нестабильным доступом в интернет, а также для людей, которые внезапно потеряли связь в результате стихийного бедствия, искусственно вызванного шатдауна или по другим причинам.
В офлайне традиционными средствами коммуникации всегда были сарафанное радио и бумага. Теперь эту роль в кризисной ситуации выполняет смартфон с приложением децентрализованной соцсети.
Люди хотят свои серверы!
Есть ошибочное мнение, что обычные люди не хотят поднимать свои серверы и управлять ими. И никогда не захотят.
Может, так оно и есть. Сегодня обыватель живёт в комфорте и наслаждается благами цивилизации, получая удовольствия одним нажатием кнопки. В таких условиях ему совершенно ни к чему прикладывать усилия для запуска и настройки собственного узла в пиринговой социальной сети.
Но эти райские условия не продлятся вечно. За всё в этой жизни приходится платить. И тогда до людей начнёт доходить истинная цена этого мифического комфорта.
Принудительное закрытие аккаунтов без объяснения причин, потеря личных файлов, интернет-слежка, буллинг, уголовные дела за онлайновую активность, монетизация личного профиля, ежедневные звонки от продавцов, ограбления квартир после публикации фотографий из отпуска — вот лишь небольшой список последствий активности в соцсетях. Это прямые следствия для конкретного человека. А есть ещё косвенные следствия, которых человек напрямую не чувствует на себе, но может ощутить по изменению социальной обстановки, росту напряжённости и недоверия в обществе.
Массовый дата-майнинг профилей Facebook — это по сути манипуляция массовым сознанием, следствием чего становится возможным влияние на мышление людей и их картину мира, как это делает «зомбоящик». То есть промывка мозгов населения. Все мы пассивно помогаем этому процессу, когда заходим в обычную социальную сеть, отдавая тем самым личные данные коммерческой корпорации и государству.
Скорее всего, для нормальной жизни со временем нам просто придётся поднимать свои серверы, то есть свои узлы децентрализованной коммуникации.
Вечеринка Федиверса: основные сервисы распределённых социальных сетей
И есть оптимистичное мнение, что люди всё-таки хотят поднимать свои серверы. Это даёт чувство контроля над своей жизнью, безопасность, надёжность хранения файлов и денег. Непередаваемое чувство независимости, спокойствия и уверенности в завтрашнем дне.
Вы можете менять провайдера, хостинг, работодателя, страну, а свои серверы обеспечивают фундамент цифровой жизни, которая автономной и независимой от внешних обстоятельств.
Просто по статистике лишь малая часть пользователей поднимает серверы для общественного пользования. Ни в каких существующих системах доля активных пользователей не превышает 1% аудитории. То есть авторов контента всегда не более 1% от числа потребителей.
- На YouTube 2 млрд пользователей, но только 15 млн активных авторов (0,75%).
- В Википедии 39 млн зарегистрированных пользователей, но только 128 тысяч активных участников (0,3%).
- На Mastodon 1 млн активных пользователей, но только 2 тысяч инстансов (0,2%).
- В Tor 2,5 млн пользователей, но только 6 тысяч рилеев (0,24%).
Отсюда и заблуждение, что люди не хотят поднимать свои серверы в распределённых системах типа Tor или Mastodon. Это примерно как сказать, что люди не хотят запускать свои каналы на YouTube. Они хотят. И с удовольствием это сделают, если процедура станет значительно проще, а лучше автоматической. Например, личная нода в децентрализованной сети запустится автоматически при включении телефона. Если инстансы Mastodon будут поднимать на уроках информатики в школе. Люди только скажут спасибо.
Такое возможно, когда вред централизованных социальных сетей станет всем очевиден. Например, как сейчас многим очевиден вред «центрального» телевидения.
Федиверс
На своём локальном хостинге можно поднять локальную социальную сеть для себя и друзей.
Pleroma на десктопе и телефоне
Mastodon, Pleroma, Misskey, Pixelfed и многие другие входят в Федиверс — объединение децентрализованных интернет-сервисов, работающих по принципу федерации: имея аккаунт в одном сервисе, пользователь может взаимодействовать с другими, не регистрируясь в них.
Mastodon работает на протоколе ActivityPub. Не путать с протоколом Matrix для мгновенных сообщений. Сервисы на Matrix можно интегрировать с социальными сетями и блогами Федиверса.
Запуск социальной сети на своём хостинге
Вот пример такой локальной соцсети на вышеупомянутом форке Hometown в десктопном браузере:
И на телефоне:
Manyverse. Децентрализованная соцсеть на протоколе SSB
Manyverse — клиент децентрализованной соцсети, работающей по P2P-протоколу Secure Scuttlebutt (SSB). Разработка началась в сентябре 2018 года, а в 2022 году вышли клиенты для всех платформ.
В принципе, Manyverse и SSB можно рассматривать как дополнение к Mastodon и другим клиентам Федиверса, которые работают по протоколу ActivityPub через федеративную систему серверов. По крайней мере, у них общие задачи и принципы:
- Работоспособность без центральной точки отказа (в случае Manyverse — вообще без интернета).
- Отсутствие цензуры.
- Свободный софт, без коммерции и рекламы.
Узлы Manyverse сейчас разработаны для всех мобильных и десктопных платформ: дистрибутивы для Android, iOS, Windows, macOS и Linux.
Протокол SSB похож на HTTP или RSS в том смысле, что он описывает, как различные приложения могут общаться друг с другом через интернет или по другим каналам типа Bluetooth.
Для примера — выше показана структура UDP-пакета, который транслирует пиры SSB в локальной сети для объявления о своём присутствии (публичный ключ пользователя).
Структура каждого сообщения в потоке SSB содержит две «секретные шкатулки» (secret boxes) для защиты заголовка и тела
Более подробно о протоколе см. в документации или в этой презентации:
Первую десктопную версию Manyverse назвали MobPar (Mobile Parity). Это значит, что её функциональность в точности соответствует мобильным клиентам, кроме функции синхронизации по Bluetooth, которая есть только в Android.
Одна из ключевых функций — поддержка SSB URI (ssb://), что позволяет быстро и легко добавлять в свою соцсеть друзей, заходить в публичные комнаты и читать сообщения.
Manyverse — первое кроссплатформенное приложение SSB. И разработчики рассчитывают, что в 2022 году произойдёт взрывной рост количества пользователей. Именно сейчас сложились подходящие условия:
- Выпущены клиенты для всех операционных систем.
- Глобальная нестабильность в мире, региональные шатдауны.
- Полная дискредитация централизованных платформ типа Facebook.
Другие приложения SSB
Существуют и другие приложения, с которыми Manyverse взаимодействует по протоколу SSB:
Форумы, блоги, соцсети
- Patchwork. Децентрализованное приложение для обмена сообщениями и информацией. Предшественник и прообраз Manyverse, но для более технически продвинутой аудитории. У него есть некоторые функции, которые пока не реализовали в Manyverse, например, совместное планирование собраний.
Как и некоторые другие приложения в списке, основан на patchcore.
- Patchbay. Тоже на базе patchcore, но с другим подходом: тут есть вкладки и некоторые продвинутые функции UI.
- Patchfoo. Максимально простой децентрализованный форум на HTML без клиентских JS. Работает на самом слабом железе.
- Patchfox. Клиент децентрализованной SSB реализован как расширение Firefox или Chrome.
- Patchless. Набор разработчика для создания модульных приложений.
- ngx-ssb-client.
- Patchwork Classic. Самое первое популярное приложение, которое было разработано на SSB примерно шесть лет назад. Сейчас имеет скорее историческую ценность.
- Feedless. Концепт социальной сети, которая «не вызывает привыкания», то есть здесь нет встроенных дофаминовых стимуляторов, таких как лента новостей с бесконечной прокруткой. Но это скорее экспериментальный проект: репозиторий двухлетней давности с тех пор не обновлялся.
- Oasis. Локальный SSB-сервер с приятным интерфейсом.
- Planetary. Нативное приложение iOS на движке go-ssb для пользователей без технического бэкграунда.
- SSB в браузере (демо).
Прочее
- git-ssb. Децентрализованный клиент Git на SSB.
- ssb-npm.
- scat. Децентрализованный консольный чат (нужен ssb-сервер типа Patchwork или Patchbay.
- Ticktack. Движок для публикации блогов. Благодаря локальному хостингу, обеспечено долговременное хранение контента до тех пор, пока это нужно автору. Есть функция приватных сообщений между пользователями.
- Infinite Game. Общий календарь и планировщик встреч.
- tale: net. Распределённая сеть «идей» и «скиллов», где идеи выступают в качестве узлов сети, а скиллы — в качестве тегов, то есть рёбер графа. Тоже старый концептуальный проект, который не обновляется после выхода первой беты в феврале 2018-го.
- ssb-chess. Распределённые шахматы на SSB.
- patch-book (ssb://%zoL1riX2mELF0j3dydWtQ+go4nI4jaByvm5Z02cRyaQ=.sha256). Плагин для книжных рецензий.
- recipes. Плагин для рецептов.
- SSB Drive. Концепт децентрализованной файловой системы, которая синхронизируется с остальным миром во время сеансов подключения к интернету. Конфликты имён решаются посредством OR-Set из CRDT.
Серверы, скрипты
- go-ssb-pub. Сервер SSB Rooms на Go.
- easy-ssb-pub. Простой хостинг и деплой своего ssb-сервера (pub) в контейнере Docker.
- twitter-ssb-import. Скрипт для импорта твитов из Twitter в SSB.
- ssb-webify. Конвертация набора локальных файлов в веб-сайт SSB.
- ssb-web-resolver. Резолвер для веб-сервера.
- ssb-to-graphml. Конвертер социального графа SSB в формат GraphML.
- ssb-usage-stats. Визуализация статистики опубликованных постов.
- ssb-graphviz. Интерактивная визуализация своего графа.
- ssb-bot-feed. Бот для чтения фидов RSS и автоматической публикации обновлений.
Таким образом, у нас есть целая децентрализованная вселенная из различных приложений, которые общаются по открытому и свободному протоколу, размещаясь на локальном хостинге — просто в телефоне.
И никакой шатдаун не будет страшен.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.