{"id":14284,"url":"\/distributions\/14284\/click?bit=1&hash=82a231c769d1e10ea56c30ae286f090fbb4a445600cfa9e05037db7a74b1dda9","title":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u043d\u0446\u044b \u0441 \u0441\u043e\u0431\u0430\u043a\u0430\u043c\u0438","buttonText":"","imageUuid":""}

Соцсеть на PWA? Это возможно

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

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

Во-вторых, она глобальная. Несмотря на децентрализацию, мы можем обмениваться почтовыми сообщениями с любым человеком, у которого есть почтовый адрес. Сервера сами перенаправляют email-сообщения друг другу и находят нужного получателя.

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

В-четвёртых, в мире растёт спрос на приватность. Многие пользователи не хотят, чтобы информация об их предпочтениях становилась товаром для крупных корпораций типа Facebook’а. Протокол POP3 позволяет забирать email-сообщения с различных серверов и хранить их в одном почтовом клиенте (типа Outlook или Thunderbird) на компьютере или в смартфоне пользователя.

Электронная почта не принадлежит никому, но пользуются ей все.

Я думаю, что современные социальные сети будут мигрировать в нечто, похожее по своей архитектуре на электронную почту - децентрализованную, глобальную, приватную. Мне кажется, что существующие распределённые социальные сети, входящие в Fediverse обладают какими-то врождёнными недостатками, раз им до сих пор не удалось приблизиться по масштабам даже к централизованным социальным сетям, не говоря уже об электронной почте.

Я - web-разработчик, мои интересы на данный момент - разработка прогрессивных web-приложений (PWA). Я вижу, что современные браузеры привносят в IT такие технологии, которые могут значительно изменить подходы к созданию приложений.

  • TLS затрудняет сканирование трафика между клиентом и сервером;
  • IndexedDB позволяет сохранять значительный объём информации на клиенте;
  • Websockets и Server Sent Events дают возможность организовать обратный канал для данных - от сервера к клиенту;

а ещё есть Web Push, Payment Request, WebRTC и другие. Все эти возможности выводят web-приложения на другой уровень, очень далёкий не только от “классической” генерации кода страницы на сервере, но даже от более современного REST API.

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

В октябре прошлого года я ради прокачки скиллов решил сделать в виде PWA анонимный мессенджер с асимметричным шифрованием - DupChat. Это pet-проект, на нём я попробовал NaCl (библиотека для работы с сетью и криптографией), Server Sent Events и событийно-ориентированную архитектуру в web-приложении.

И когда у меня что-то получилось, я поймал себя на мысли, что архитектурно PWA-приложение похоже на email’ы. Браузеры не могут связываться между собой напрямую, точно так же, как не могут связываться между собой почтовые клиенты. Для связи нужны сервера (SMTP-сервера для почты и HTTPS-сервера для PWA). Принципы работы почтового клиента по POP3-протоколу очень похожи на принципы работы PWA на смартфонах в режиме offline/online (забрать/отправить информацию при наличии соединения). Вот только в PWA всё может происходить быстрее, чем в почте. PWA-сервера (в отличие от email-серверов) имеют возможность отправлять сообщения на клиента в online-режиме через SSE/Websocket.

Я понимаю, что делать целую социальную сеть на базе PWA это несколько авантюрно. Тем не менее, это технически возможно и DupChat является доказательством этого (proof of concept). Это всего лишь анонимный, шифрованный чат на отдельном сервере, но в его основе лежат технологии на которых можно построить нечто большее. Код открытый - vanilla JS, его можно копать вдоль и поперёк.

Если кому-то интересно это направление, с удовольствием обменяюсь мыслями.

0
9 комментариев
Написать комментарий...
Andrey Shevtsov

Мне кажется, что крутая актуальная идея, не понимаю почему минусуют 😃 Я чего- то не знаю?

Ответить
Развернуть ветку
Айгиз Мухамедьянов

Play Market и Microsoft Store публикуют в свои магазины pwa приложения, даже Apple которая долго не обращала внимание на pwa, уже буквально как 3-4 месяца назад заявила о возможности публикации в app store. Из этого делается вывод , что у PWA большое будущее.

Ответить
Развернуть ветку
Jon Rembo

Вчера, перед сном, мне опять стало больно от того, что почта в интернетах ушла чуть дальше перфокарт, а сегодня просыпаюсь и оказывается все, есть пробитие) в pop3 подвели децентрализацию)

Ответить
Развернуть ветку
Alex Gusev
Автор

Я в восторге, что вы тоже об этом переживаете!

Ответить
Развернуть ветку
zhuk navoznyi

Воскрешаем Фидо нет

Ответить
Развернуть ветку
Andrey Shevtsov

Почему? ))

Ответить
Развернуть ветку
Артем Наумов
Электронная почта не принадлежит никому, но пользуются ей все.
Я - web-разработчик

Фэйспалм.

Ответить
Развернуть ветку
Alex Gusev
Автор

Забавная реакция :)

Ответить
Развернуть ветку
Alex Gusev
Автор

Сообщение удалено

Ответить
Развернуть ветку
6 комментариев
Раскрывать всегда