LINUX.ORG.RU
ФорумTalks

Использования XMPP для реализации децентрализованного хранилища данных

 , , , ,


0

2

Hey everybody.
Как аналитики ЛОРа смотрят на использование ejabberd'а для децентрализации интернет-ресурса? Вообще для этого (для децентрализации) есть целый протокол, правда без единой спецификации, зато с кривой эталонной реализацией, которая ещё alpha 0.3 и с фиговой тучей попутно изобретенных велосипедов.

Под децентрализацией подразумеваю следующее:

  • Пользователь выбирает оператора и регистрируется /или/ поднимает свой ejabberd сервер с соответствующими дополнительными модулями;
  • Вся исходная информация пользователя хранится на выбранном сервере;
  • Приложения (блог-платформы, соц-сети, что там ещё) обращаются за необходимой информацией к серверу ejabberd, а не к собственной БД.


Профиты следующие:

  • Вся информация пользователя в одном месте;
  • Пользователь сам выбирает уровень доступа к своей информации;
  • Владельцы приложений могут зарабатывать так же, как и раньше (коммерческие приложения возможны); Меняется только смысл регистрации на сайте (здесь это факт авторизации приложения пользователем);
  • Пользователю легче уйти с одного ресурса на другой, забрав при этом всю свою информацию.

P.S.: Публикую в Talks, ибо в Web-development маловато аналитики.


Пользователю легче уйти с одного ресурса на другой, забрав при этом всю свою информацию.

разве это профит? (для ресурса)

Deleted ()

Тут самое сложное - принцип децентрализации, а на чем его делать - дело десятое, и xmpp здесь не самое лучшее решение.

Alsvartr ★★★★★ ()
Ответ на: комментарий от buddhist

Я тоже, поэтому на скорую руку перевел пару предложений о Tent[/a]:

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

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

Контролируйте свою жизнь
Тент может хранить все ваши данные. Он спроектирован для того, чтобы хранить все типы данных и работать с любыми типами приложений, какие можно только представить. Если приложение прекращает разрабатываться, вы можете выбрать другое приложение с вашими старыми данными. Если ваш Tent провайдер закрывается или плохо себя ведёт, вы можете начать использовать другого провайдера или настроить свой сервер.

Разработчики
Как e-mail или web, Tent - протокол, а не платформа. Здесь нет центральной власти. Никто не может изменить API, условия сервиса или ограничить доступ. Стройте какие хотите приложения, никто не может вывести вас из игры. Tent «контент-агностичен», поэтому почти любые приложения могут его использовать.
Каждый пользовательский Tent сервер ответственен за хранение и передачу данных, поэтому многие Tent приложения - stateless и не требуют инфраструктуры. Поставляйте бинарники (приложения), которые будут напрямую взаимодействовать с пользовательскими серверами (т.е. без разработки сервер-сайда), сразу в свои любимые магазины приложений. Пользователи могут контролировать собственные данные и вам не придётся запускать и платить за сервера. Поскольку пользовательские данные хранятся на их Tent серверах, если ваше приложение не сливает данные («не звонит домой»), у вас нет необходимости просматривать или обрабатывать конфиденциальные («sensitive») данные. Tent открывает новый мир новых типов приложений вне проприетарных платформ.

Так вот, суть вопроса в том, чтобы реализовать свой Tent на базе XMPP. Зачем? Затем, что в нём уже есть все необходимые для этого компоненты: и для реализации самого хранилища (сервер), и для клиентских приложений (под все платформы есть либа для работы с XMPP).

Sense ()

Все уже есть в пейсбуке, зачем городить костыли?

one117 ★★★★★ ()
Ответ на: комментарий от Alsvartr

Тут самое сложное - принцип децентрализации

XMPP уже децентрализован. Прямо на его базе всё и строится без переизобретения велосипедов и реализации десятков новых протоколов.

и xmpp здесь не самое лучшее решение

А какое самое лучшее?

Sense ()
Ответ на: комментарий от Deleted

разве это профит? (для ресурса)

Если пользователь захочет, он в любом случае уйдёт, предварительно удалив свой профиль (возможность везвозвратного удаления профиля - must have фича по EU законодательству). А тут у него лишь появляется возможность облегчить этот уход. Но если это критично для бизнес-модели ресурса, можно предупреждать пользователя при публикации его публичных материалов о том, что контент автоматически становится доступным под лицензией CC и при этом сохранять его на сервере приложения. Тогда, когда пользователь уйдёт, его публичные публикации останутся. Вся приватная переписка и т.п. при нём.

Sense ()
Ответ на: комментарий от Sense

XMPP уже децентрализован. Прямо на его базе всё и строится без переизобретения велосипедов и реализации десятков новых протоколов.

Да нет, чем ты заинтересуешь тысячи проектов перейти на децентрализацию?

А какое самое лучшее?

Новый протокол и сопутствующие сервисы. XMPP для этого - это шалаш из палок и говна.

Alsvartr ★★★★★ ()
Ответ на: комментарий от Sense

Я тоже, поэтому на скорую руку перевел пару предложений о Tent

На Tent есть уже хоть какие-то работающие приложения?

KRoN73 ★★★★★ ()

Это недостаточно распределенная система. Можно и более хитро хранить данные: Условно говоря, A пигнует B - значит 1, не пингует - 0. Т.е. хранить данные не на отдельных машинах, а в механизме их взаимодействия.

cvs-255 ★★★★★ ()
Ответ на: комментарий от Alsvartr

Да нет, чем ты заинтересуешь тысячи проектов перейти на децентрализацию?

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

Новый протокол и сопутствующие сервисы.

А зачем, если всё укладывается в рамки XMPP? Неужели проще делать всё с нуля, чем написать соответствующий модуль для ejabberd? Тогда уж сразу Tent использовать, это и есть «новый протокол», хотя всё относительно.

Sense ()

Эмм. Во-первых, в xmpp можно реализовать всё, но зачем? XMPP и для своей первичной цели мягко говоря не идеален

Во-вторых, нафиг тут ejabberd? Он — не единственный, не лучший и тем более не лучший для специализированной цели сервер.

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

x3al ★★★★★ ()
Ответ на: комментарий от KRoN73

На Tent есть уже хоть какие-то работающие приложения?

Да (хотя они и не рекомендуют разрабатывать приложений под него ранее, чем Tentd достигнет версии 1.0, сейчас только 0.3), список можно посмотреть здесь. Самое первое в нём - TentStatus (исходники), на нём работает https://cupcake.io/ - микроблоггинговая платформа. Остальные приложения - тоже представляют собой «копии твиттера».

Sense ()
Ответ на: комментарий от Sense

Ага, уже интересно. Надо будет порыться.

А как Tent использует протоколы нижнего уровня? Через что работает?

KRoN73 ★★★★★ ()

Я бы смотрел в сторону децентрализованной раздачи (как торренты). Т.е. у пользователя клиент, который раздаёт инфу о себе (фотки, комменты, сообщения...), хеши всего этого и открытые ключи. Другие передают все это друг другу. Личные сообщения расшифровываются личными же ключами. Что-то такое хотят сделать в bitmessager...Хотя это совсем другая инфраструктура.

crutch_master ★★★★★ ()
Ответ на: комментарий от x3al

Потому что там кошерный ерланг, а не это ваше сиподелие! Ерланглорды смотрят на крестохолопов в чувством внутреннего превосходства!

stevejobs ★★★★☆ ()

Приложения (блог-платформы, соц-сети, что там ещё)
Вся информация пользователя в одном месте

Не нужно.

shahid ★★★★★ ()
Ответ на: комментарий от KRoN73

http(s), OAuth(2), HMAC, HAWK (HTTP authentication scheme using a message authentication code /MAC/); JSON

Sense ()
Ответ на: комментарий от wisp

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

Sense ()
Ответ на: комментарий от crutch_master

Я бы смотрел в сторону децентрализованной раздачи (как торренты). Т.е. у пользователя клиент, который раздаёт инфу о себе

Такой подход не подходит для массовых сервисов. Хорошо, прежде всего, такой подход не подходит для моего сервиса. Пользователи не будут скачивать клиент, он им не нужен. Они не хотят ждать, они хотят зайти и пользоваться.

Sense ()
Ответ на: комментарий от stevejobs

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

Sense ()
Ответ на: комментарий от Sense

Упороте...

Такой подход не подходит для массовых сервисов

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

Пользователи не будут скачивать клиент

Даже при твоём подходе какие-то костыли так и так нужны.
И, вот что не нужно и изжило себя, так это клиент-серверный подход. Только p2p. Никаких серверов не нужно. ФСБ не нравится что тут пишут - сервер закрыли и все. А если вы было p2p - остаётся только закрывать инфраструктуру. Ддос, наплыв пользователей, пожар, наводнение, криворукий админ - этих проблем просто нет в p2p сети. Один раз сделай все правильно и пользуйся веки вечные пока интернет всем не отрубят. А клиент-серверная передача сообщений, фоток и видосов - это чушь. Если я кому-то что-то хочу сказать или показать почему кто-то третий должен быть посредником в моём общении? P2P разве это не сама естественность и органичность?
Еще раз коротко. Клиент-серверный подход НЕ НУЖЕН - это шаг назад. Только p2p. «Тонкое» железо - это бесполезный хлам. Вы что так сильно хотите стать цифровыми рабами? Только p2p. P2P и ничего иного. P2P.
PS. В перспективе в густонаселённых районах даже провайдеры не нужны - весь трафик может идти децентрализованно через wifi от клиента к клиенту через промежуточные точки. Потребность есть только в магистральных каналах и то она очень сильно снижена, так как большинство контента можно получать в локальной(местной) сети.
Фуухх... вроде отпустило.

crutch_master ★★★★★ ()
Ответ на: Упороте... от crutch_master

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

Сам то Osiris часто используешь? Как успехи, много пользователей там сидит? Пиров на всех порталах в достаточном количестве? Мозготрах, чтобы зайти на сайт, конечно, не смущает (установка ПО /что не возможно, скажем, в корпоративной сети/, запуск)?
И да, добро пожаловать в реальный мир. Здесь приложения разрабатываются не во имя великой справедливости, а для монетизации (хотя делать мир лучше при этом не возбраняется). И пока такая мотивация есть, будет и развитие. Вышеописанная децентрализация решает совсем другие проблемы, для твоих есть WebRTC (p2p video/audio/messaging конференции в браузере), которая может использоваться параллельно.

Sense ()
Ответ на: комментарий от Sense

Затем, что Tent изобрёл XMPP?

Ничего, что xmpp сам по себе (мягко говоря) ужасен безотносительно того, кто его изобрёл? Одно это характеризует Tent не с лучшей стороны.

x3al ★★★★★ ()
Ответ на: комментарий от Sense

И да, если даже создатели xmpp считают, что он не подходит для твоей задачи и делают велосипед — на каких основаниях ты считаешь, что он годен?

x3al ★★★★★ ()
Ответ на: Упороте... от crutch_master

Re: Упороте...

Тут из зала подсказывают, что клиентское и серверное ПО могут находится на одной и той же ЭВМ.

HiddenComplexity ()
Ответ на: комментарий от x3al

Ужасен, да? А ну тогда, конечно, не подходит. Я думал, прекрасен, а оно вон оно что. Значит весь уже написаный и работающий код в топку: сервера, клиентские либы. Ничего этого не нужно. Всё с нуля, только с нуля. Потому что только так можно сделать лучше - сначало разрушить до основания, а уже потом строить. Иначе никак. Я вот завтра планирую ОС написать, как Линукс или Виндоус, только без фатальных недостатков. Там не будет этих ненужных TCP/IP, http, браузеров, JS, html, CSS и прочего, что я не осилил. Для всего будет 1 протокол и 1 ЯП. Доколе можно строить веб на костылях? Даёшь прямой подход. Как идея, норм? Ладно, хватит уже на сегодня аналитики.

Sense ()
Ответ на: комментарий от Sense

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

x3al ★★★★★ ()
Ответ на: комментарий от x3al

Тебе уже дали ссылку на реализованную альтернативу с подробным, техническим описанием

Это там, где ejabberd хвалят, который ты так «яро любишь»?

между процессами ejabberd использует свой внутренний протокол без XML, тот, что предоставлен Erlang'ом, это хорошая идея

И да, PSYC библиотек под нужные мне языки, о печаль, пока никто не написал, а список перечисленных по ссылке недостатков XMPP никак не мешает построению на его базе Tent-подобного решения. В данной ситуации, видится разумным использование готового сервера + готовых библиотек и разработка собственного модуля + RFC (request for comments) с целью выработки некого стандарта, а не поиск идеального решения.

Sense ()
Ответ на: комментарий от Sense

яро любишь

Ты слишком злоупотребляешь демагогией. Где я его «яро люблю»?

список перечисленных по ссылке недостатков XMPP никак не мешает построению на его базе Tent-подобного решения.

Про производительность там всё есть. Представь, что ты оставил сообщение на достаточно посещаемом ресурсе. На твой *jabberd посыпятся запросы на твою информацию, если следовать описанию в ОП-посте. Через сколько запросов он сдохнет? Или ты намеренно хочешь ограничить выбор сервера между двумя-тремя крупными кластерами, прикрываясь лозунгами о децентрализации?

x3al ★★★★★ ()

Кому интересно, всё уже изобретено до нас:
man OneSocialWeb, Diaspora-X.

Sense ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.