Увидел свет первый экспериментальный релиз Tent, протокола для построения децентрализованных социальных сетей и эталонной реализации сервера для формирования узлов подобных сетей. Суть проекта основана на отказе от типичной парадигмы централизованного формирования социальных сетей, контролируемых владельцами сервера, в пользу системы, напоминающей инфраструктуру доставки электронной почты, работа которой состоит из множества обособленных узлов, каждый из которых не влияет на работоспособность системы в целом. По аналогии с электронной почтой Tent предоставляет протокол для организации обмена контентом с пользователями и приложениями.
Любой пользователь может запустить собственный сервер Tent, хранить на нём свой контент, поддерживать сведения о связях, создавать клиентские приложения, делиться информацией с другими и видеть какой информацией другие делятся с данным пользователем. Пользователь может отслеживать активность других пользователей и другие могут подписываться на сообщения данного пользователя, при этом пользователи могут использовать разные серверы, поддерживающие протокол Tent.
При размещения данных на своём подконтрольном сервере, данные, сведения о социальных связях и персональная информация остаются целиком под контролем их владельца. Каждый из серверов является полноценным и равноправным участником социальной сети. Для обеспечения конфеденциальности Tent-сервер могут быть запущен в виде скрытого сервиса в анонимной сети Tor. Форматы для сообщений и хранения профиля не фиксированы и пользователь может расширять их (например, на базе Tent могут быть созданы приложения для микроблогов, блогов, систем обмена фотографиями и т.п.). Обмен данными производится в формате JSON, для аутентификации задействован OAuth.
В задачи сервера Tent входит обслуживание связей между пользователями и клиентскими приложениями. Пользователи создают и просматривают контент в клиентских приложениях. После того как контент создан, он отправляется приложением на Tent-сервер, после чего сервер пересылает этот контент всем "друзьям", подписанным на сообщения пользователя. Одновременно сервер принимает и сохраняет сообщения от других людей, адресованные пользователю или приходящие по подпискам. На сервере также хранится профиль с базовыми данными о пользователе. Сервер предоставляет пользователю гибкие средства для контроля доступа к данным, действиям и сообщениям.
![](/img/extnews/6232/0.png)
В настоящее время для пользователь доступна эталонная реализация сервера Tent (tentd), написанная на языке Ruby с использованием Rack и Datamapper. Кроме того, подготовлен пример простого клиентского приложения, использующего протокол Tent для формирования микроблога, а также клиентская библиотека для поддержки протокола Tent в программах на языке Ruby. Код развиваемых проектом приложений распространяется под лицензией MIT, протокол позиционируется как открытый стандарт (разработчики отказались от имущественных прав). Эталонный сервер, средства разработки приложений и протокол находятся в активной разработке и позиционируются как экспериментальные проекты, которые планируется стабилизировать к версии 1.0.