Большинство социальных сетей ориентированы на интернет. Если нет онлайна, то нет и доступа к социальной сети, и даже собственные сообщения недоступны.

Однако в современных условиях доступ в интернет может быть утерян. Поэтому нужен запасной вариант.

Совершенно противоположный подход — собственный офлайновый хостинг для децентрализованного приложения. В таком варианте узел живёт на вашем телефоне — и синхронизируется с другими по мере необходимости, в том числе по 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.

Комментарии (26)


  1. DrinkFromTheCup
    16.03.2022 12:00
    +1

    Позволю себе роскошь докопаться до пары моментов в статье.

    Просто по статистике лишь малая часть пользователей поднимает серверы для общественного пользования. Ни в каких существующих системах доля активных пользователей не превышает 1% аудитории. То есть авторов контента всегда не более 1% от числа потребителей.

    И дальше статистика по YouTube, etc.

    В статье про, по сути, локальный сервер контента "для своих" статистика по мастодонтам в своих (довольно экзотических) сферах несколько не к месту. По нескольким причинам - каждый по своим.

    Например, YouTube не заинтересован в значительном росте числа креаторов (это повышает издержки: лишний контент от лишних людей надо где-то хранить, например) - они заинтересованы в росте именно числа потребителей. Локальный сервер контента - будет иметь относительно статичное количество как потребителей, так и креаторов, но пропорции там будут абсолютно не такие в подавляющем большинстве случаев.

    Википедия... по логике вещей, ТОЖЕ не заинтересована в росте числа волонтёров вообще: это лишние издержки на модерацию и хранение правок, при наличии уже сравнительно большой (в пересчёте на "чистые" человеколичности) армии креаторов с оптимизированным процессом работы. При этом, де факто пропорция зарегистрированных пользователей к зарегистрированным волонтёрам в контексте этой статьи - это "погода на Марсе": каждый человек с доступом в Сеть может являться как волонтёром, так и потребителем контента Википедии.
    Плюс.
    В отличие от действующих по какому-никакому бизнес-плану мастодонтов, локальный сервер контента зачастую такового не имеет. Ресурсная база изыскивается по принципу "кто что отдал". Об окупаемости (или иной форме амортизации / распределения амортизации затрат) речи нет.
    Плюс.
    Хостинг контента - это ещё и юридические закавыки (типа местонахождения и обеспечения безопасности личных данных пользователей, чтоб его...), которыми по не подлежащим огласке, но в принципе самоочевидным, причинам не каждый готов заняться и принять связанные с этим риски на себя (а кому на такое начхать - обычно не заморачивается вопросами селфхост площадок, а идёт в соцсети). Причём, независимо от того, селфхост это в полностью локальной сети, - или он открыт "наружу" в общую Сеть. Что также МОЖЕТ вызвать некоторое напряжение в коллективе, ради которого, собственно говоря, вся эта затея и начиналась. В лучшем случае.

    И прочее, и прочее, и прочее...
    Положа руку на сердце, дальше этой интересной, но нерелевантной, статистики читать не стал. Уж очень... своеобразная подборка данных и идей.


  1. hivensil
    16.03.2022 12:16
    +2

    Здорово! Даже не знал, что столько децентрализованных приложений существует. Правда, открыл проект с ssb-drv а там "This is a proof of concept..". Такие проекты пока держатся только на отдельных энтузиастах. А вот если однажды интернет кончится...


  1. oxx
    16.03.2022 15:39
    +1

    Гипертекстовый FIDO?


  1. eshimischi
    16.03.2022 17:40
    +1

    У японцев есть своя децентрализованная платформа микроблоггинговая https://join.misskey.page/en-US/ с открытым исходным кодом, давно слежу за проектом


  1. eliduvid
    17.03.2022 00:43
    +2

    Не могу не упомянуть мойру (https://moera.org), в разработке которой я участвую. У каждого пользователя свой сервер который держит его данные и ключи, а клиент живёт отдельно. Можно поднять всю инфраструктуру (сервера пользователей, аналог днса для нахождения серверов пользователей и клиент) у себя в сколь угодно закрытой сети.

    Пока автор (не я) бесплатно хостит всех желающих у себя, но часть хостит свои ноды отдельно, и обычному пользователю это полностью прозрачно.


    1. anudas
      17.03.2022 17:25

      по какому протоколу работает? федерируется с мастодоном?


      1. eliduvid
        17.03.2022 17:30

        протокол свой. поверх http(s) разумеется.


  1. vsviridov
    17.03.2022 07:28

    Развернул у себя Плерому. В принципе ничего, но все равно как-то очень тяжеловесно выглядит. Большая часть всего этого самописного софта почему-то на Рельсах, и на маленьком впс-е это гонять мало удовольствия. Кто бы написал минимальное ядро на расте том-же...


  1. PsihXMak
    17.03.2022 10:10

    Кто ни будь может подкинуть нормальную инструкцию по установке мастодона? Уже кучу времени угрохал, пытаясь всё установить и настроить. Но, все инструкции написаны своими для своих же. Информацию приходится собирать по крупицам.

    И, да, очень много, где путь обрывается вот на таком:


    1. anudas
      17.03.2022 17:21

      где вы эту ссылку взяли? по этой все открывается https://docs.joinmastodon.org/admin/install/


      1. PsihXMak
        17.03.2022 19:51

        Ок, по этой ссылке вторая же строка

        domain name (or a subdomain) for the Mastodon server, e.g. example.com

        А если я разворачиваю локальную сеть? Возможно я хочу использовать только мобильные приложения.

        An e-mail delivery service or other SMTP server

        Зачем мне SMTP server? Я просто хочу сеть в локалке.


        1. anudas
          17.03.2022 20:04

          а кто говорил, что мастодон заточен под такие хотелки? хотя, я не пробовал его ставить, пробовал только хабзиллу. может быть как-то и можно решить эти вопросы.
          например, какой нибудь фейковый майл сервер и /или отключить подтверждение аккаунтов по мылу. в целом мастодон не делался как локальный ресурс. его назначение федерироваться по ActivityPub


          1. PsihXMak
            18.03.2022 08:08

            а кто говорил, что мастодон заточен под такие хотелки?

            Так прямо эта хабр-статья и посвящена этому... Иначе получается, что требуется целая инфраструктура и набор сервисов, при блокировке которых сеть становится неработоспособной. И какой тогда в ней толк?...


            1. anudas
              18.03.2022 09:16
              +1

              не стоит верить всему, что на хабре пишут. стоит просто немного разобраться в предмете и все станет ясно. а то я хочу это или хочу то. а может быть я не хочу Ruby устанавливать или веб сервер настраивать.

              Попробуйте вникнуть, как работает федиверс, и как она сопротивляется блокировкам и в чем ее отличие от коммерческих соцсетей. эта статья от компании, которой нужно продать впс. вообще не понятно, с какой радости они пишут про локальную установку. При чем в названии написано на своем хостинге, это как? это не совсем про локалку. но что-тогда означает без интернета?
              а для локалки я бы сделал по классике - чат и форум. Локальных чатов миллион, а любой форум работает в локалке замечательно. или что-то гибрибное - формум + чат

              и нет, федиверс - это совсем не про локалку.


              1. water12
                18.03.2022 16:46

                Про локалку и без интернета - это автор имел ввиду SSB, про который вторая часть статьи. В смысле того, что SSB и так тоже работает, т.к. там p2p со всеми вытекающими плюсами и минусами.

                Продать VPS под ssb-pub или ssb-room компания автора тоже может Ж)


  1. anudas
    17.03.2022 17:17

    нет-нет-нет! мы хотим FidoNet


  1. woto
    18.03.2022 04:33

    Вопросик, а вот сервисы, которые на AcitvityPub работают, они как-то связаны? Понятно, что как-то там AcitvityPub используется. Но как-то между собой они связаны? Например mastodon с pixelfed?

    И еще кстати важный момент. ActivityPub числится в статусе "W3C Recommendation 23 January 2018" в w3c https://www.w3.org/TR/activitypub/


    1. anudas
      18.03.2022 09:03

      может быть стоит попробовать? или хотя бы почитать статью, где об этом говорится. связаны конечно.
      я из мастодона могу подписаться на обновления любого аккаунта пикселфеда или пиртюба и видеть это в своей ленте. именно так и работает активитипаб


      1. woto
        18.03.2022 11:17

        может быть стоит попробовать? 

        Я бы с радостью, но не понимаю как. Я смотрю Local и Federated конретно на этом инстансе https://mastodon.ml. Но там же посты из pixelfed сами не появятся? (у меня было предположение, что это админ должен настроить связь, но лучше подожду вашего ответа)


        1. anudas
          18.03.2022 11:51
          +2

          сейчас я не подписан ни на один акк в пиксельфед, поэтому ничего не могу предложить для проверки оного. но могу предложить для проверки пиртюба.
          (точно также это делается для пиксельфеда и проч.)

          для начала нужно знать аккаунт того, на кого хочешь подписаться. сами автоматически посты не будут появляться в ленте. Например, вот аккаунт Пучкова (Гоблина) в пиртюбе https://peertube.su/accounts/oper
          Нужно взять эту ссылку и вставить ее в поле поиска. Должно отобразить этот аккаунт. Кликнуть на него и в профиле нажать подписаться. Затем нужно дождаться пока выйдет новой видео. Ну, и ловить момент, когда оно появится в ленте. А так оно запросто может быть погребено под другими сообщениями. Тогда просто пролистать всю ленту

          ну, или можно поискать активные аккаунты по запросу "pixelfed.social", например. Там вроде есть кто-то. Подписаться и ждать новых картинок от них


          1. woto
            18.03.2022 14:23

            Круто, спасибо за развернутый ответ. Попробую попозже.


          1. woto
            18.03.2022 21:05

            До сих пор не понял как это чудо-юдо работает.

            Я поиском нашел его профиль и лента уже была, что позволило мне его сразу зафоловить.

            А вот этот поискал https://pixelfed.de/Carolineta и ленту не показало.

            Полагаю это из-за того, что кто-то другой уже был подписан на Пучкова в этом инстансе, а вот на Carolineta еще никто не был подписан.

            А так оно запросто может быть погребено под другими сообщениями. Тогда просто пролистать всю ленту

            Там колокольчик есть, наверно это немного поможет ловить посты сразу и подписываться на аккаунты. Тем не менее, странная конечно механика.

            Так же попробовал подписаться на аккаунт из https://lemmy.ml/ но чёт не залинковалось. Либо может нужно ждать. Ничего не в курсе про это?

            upd. Появилась гипотеза, что когда инстансы друг о друге узнают, то сначала админ должен подтвердить связь между ними, поэтому и не работает связка.


            1. anudas
              19.03.2022 09:55
              +1

              это работает немного по-другому. а вернее, наоборот. по умолчанию, все ноды федерируются со всеми. если же на пользователей какой-то ноды жалуются админу какой-то другой ноды, то именно на этой могут забанить ту, другую.
              Либо же админ при создании ноды может разрешить ферерироваться только с какими-то определенными нодами. Есть ноды лгбт, нацистов, анархистов, анимешников, нюдсов и проч. Можно, например блочить нюдсы на своей ноде. Зависит от политики администрации, от целей создания ноды. Об этом всем можно прочитать в описании ноды. Там же перечислены заблоченые
              На моей видны и лемми и немецкий пиксельфед.
              ЗЫ. когда появляется новая нода, она через какое-то время автоматически конектится ко всем, где это разрешено (не запрещено)


              1. woto
                19.03.2022 10:53

                Спасибо большое еще раз. И напоследок. Можно рекламу вашего инстанса? :)


            1. anudas
              19.03.2022 10:00
              +1

              А по-хорошему, просить помощи можно в самом федиверс. Для этого нужно подписаться на какую-нибудь группу. Функцию группы там выполняют боты, которые к себе делают репост поста с упоминанием этого бота.
              Например этот rf@mastodon.ml


        1. anudas
          18.03.2022 12:23

          не пояснил в каком поиске надо искать. а искать нужно в поиске от мастодона слева вверху