Соображения относительно социальной сети p2p - PullRequest
15 голосов
/ 17 июля 2011

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

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

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

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

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

Вопросы:

  • Существуют ли определенные протоколы, которые я должен принять?
  • Есть ли какие-либо проблемы с безопасностью, о которых я должен помнить?
  • Существуют ли определенные услуги, которые должны быть каким-либо образом интегрированы или использованы?

Более технически:

  • Используйте, например, Amazon или Google предоставляют услуги?
  • Или лучше использовать сырой веб-сервер? Если да: почему?
  • Какой алгоритм и длину ключа следует использовать?

UPDATE-1

Я гуглил свое собственное название вопроса и нашел, что этот академический проект разработан 2008/09: http://www.lifesocial.org/.

Ответы [ 6 ]

9 голосов
/ 28 июля 2011

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

На самом деле это не похоже на «p2p» - в большинстве протоколов P2P единственным требованием для центральных серверов является обнаружение - вы используете store & forward.

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

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

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

6 голосов
/ 17 июля 2011

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

2 голосов
/ 04 февраля 2014

Проект PeerSoN выглядит как то, что вас может заинтересовать: http://www.peerson.net/index.shtml

Они провели много исследований, и документы доступны на их сайте.

2 голосов
/ 01 ноября 2012

Я думал об одной и той же концепции последние два года.Я наконец решил попробовать это с помощью Python.

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

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

2 голосов
/ 19 июля 2011

Ни одна из федеративных сетей, упомянутых в http://en.wikipedia.org/wiki/Distributed_social_network, фактически не распределена.То, что Стефан намеревается сделать, действительно ново и было исследовано только некоторыми частными лицами.

1 голос
/ 25 июля 2011

Некоторые мысли об этом:

  • используемые протоколы: вы могли бы точно подумать о программах P2P и их дизайне
  • проблемы безопасности: конфиденциальность.Будьте осторожны, чтобы не открыть двери: вся система может быть взломана, потому что вы открыли какую-то дверь.
  • сервисы: вы можете интегрироваться с обычными социальными сетями через их API

Люди должны будут установить программу на свои компьютеры и всегда открывать ее, как любой P2P-клиент.Оставление всего на веб-сервере занимает меньше места / требует действий пользователя.

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

Чем меньше друзей / контактов использует вашу программу, тем меньше людей захотятиспользуйте его, поскольку у него не будет контактной информации.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...