Представлен новый выпуск свободной платформы для развёртывания децентрализованных социальных сетей - Mastodon 1.2. В отличие от централизованных социальных сетей, создаваемые при помощи Mastodon сервисы не подконтрольны отдельным поставщикам и могут создаваться на собственных мощностях пользователей. Если пользователь не имеет возможности запустить собственный узел, то он может выбрать заслуживающий доверия публичный сервис для подключения. Mastodon относится к категории объединённых (federated) сетей, для образования единой структуры связей в которых применяется набор протоколов OStatus, совместимый с решениями на базе платформы GNU Social.

Код серверной части проекта написан на языке Ruby с использованием Ruby on Rails, а клиентский интерфейс написан на JavaScript с применением библиотек React.js и Redux. Исходные тексты распространяются под лицензией AGPLv3. Также имеется статический фронтэнд для публикации общедоступных ресурсов, таких как профили и статусы. Хранение данных организовано при помощи PostgreSQL и Redis. Предоставляется открытый API для разработки дополнений и подключения внешних приложений (имеются клиенты для Android, iOS и Windows, можно создавать ботов).

Mastodon позиционируется как альтернативная реализация GNU Social. Платформа базируется на использовании формата ActivityStreams (лента публикаций), а также протоколов Webfinger (определение информации о пользователе через идентификатор похожий на email), PubsubHubbub (подписка на ленту публикаций) и Salmon (децентрализованный обмен сообщениями). Сообщения обрабатываются в хронологическом порядке. Размер публикации ограничен 500 символами, возможна передача коротких видео. Возможно определение настроек приватности в привязке к отдельным публикациям.

Основные возможности:

  • Полная переносимость с GNU Social и другими платформами на базе протоколов OStatus;
  • Обновление списка событий в реальном времени - информация обновляется сразу после поступления новых сообщений в лентах, на которые оформлена подписка. Доставка информации о новых событиях осуществляется через WebSockets;
  • Автоматическое объединение нитей обсуждений - если пользователь, на сообщения которого оформлена подписка, ответит какому-то пользователю, неизвестному на текущем сервере, то сервер загрузит полную нить обсуждения;
  • Поддержка прикрепления изображений и видео в формате WebM;
  • Возможность работы в качестве провайдера OAuth2 для сторонних приложений;
  • Все ресурсоёмкие и длительно выполняемые задачи запускаются в фоне и не влияют на отзывчивость интерфейса;
  • Возможность быстрого развёртывания сервера при помощи готового образа Docker.


Источник: http://www.opennet.ru/opennews/art.shtml?num=46390