Соображения относительно социальной сети p2p
В то время как многие социальные сети в дикой природе, большинство полагается на данные, хранящиеся на центральном сайте, принадлежащем третьей стороне.
Я хотел бы построить решение, где данные остаются локальными в системах-членах. Подумайте о проекте как адресной книге , которая автоматически обновляет контактные данные, как только контакт меняет свои координаты. Эта базовая идея может быть расширена позже...
Обновления будут переданы с использованием криптографии с открытым/закрытым ключом с использованием центрального узла. Единственная роль хоста должна быть промежуточной и промежуточной версией. Частные ключи остаются закрытыми для каждой системы-члена.
Если два клиента находятся как в сети, так и через соединение p2p, клиенты могут передавать телеграммы данных без центрального хоста.
Таким образом, отправитель и получатель будут единственными сторонами, которые могут создавать достоверные сообщения.
Вопросы:
- Существуют ли определенные протоколы, которые я должен принять?
- Есть ли проблемы безопасности, о которых я должен помнить?
- Существуют ли определенные службы, которые необходимо каким-то образом интегрировать или использовать?
Более технически:
- Использовать, например. Амазонки или услуги Google?
- Или лучше использовать необработанный веб-сервер? Если да: почему?
- Какой алгоритм и длина ключа должны использоваться?
ОБНОВЛЕНИЕ-1
Я просмотрел свой собственный вопрос и нашел этот академический проект, разработанный в 2008/09 году: http://www.lifesocial.org/.
Ответы
Ответ 1
Решение, которое вы описываете, звучит необычно, как электронная почта, с зашифрованными сообщениями в качестве полезной нагрузки и приложение, а не человек, создающий сообщения.
Это не похоже на "p2p" - в большинстве протоколов P2P единственное требование для центральных серверов - это открытие - вы используете хранилище и переадресацию.
Как быстрое доказательство концепции, я настроил почтовый сервер и создаю приложение, которое отправляет электронные письма на адреса, зарегистрированные на этом сервере, зашифрованные с помощью PGP - инструменты и библиотеки доступны, поэтому вы должны иметь возможность забирай это и работаешь в дни, а не недели. По моему опыту, построение броска PoC для такого рода вопросов - отличный способ просеять самородок моей идеи.
Вторая проблема заключается в том, что характер социальной сети заключается в том, что она является сетью. В вашем дизайне может потребоваться хранить больше, чем данные двух прямых контактов - вам также может потребоваться хранить своих друзей или, по крайней мере, публичные взаимодействия, которые имели друзья.
Это не может быть частью вашего плана, но если это так, вам нужно подумать об этом на раннем этапе - вам может понадобиться передать весь социальный график каждому участнику для локального хранилища, что создает проблему масштабируемости....
Ответ 2
Возможно, вам интересна статья о Safebook.
Также вы можете посмотреть другую распределенную OSN и посмотреть, что они делают.
Ответ 3
Ни одна из федеративных сетей, упомянутых в http://en.wikipedia.org/wiki/Distributed_social_network, фактически не распространяется. То, что Штефан намеревается сделать, действительно является новым и было изучено только некоторыми проприетарными людьми.
Ответ 4
Я думал о той же концепции в течение последних двух лет. Я, наконец, решил попробовать его с помощью Python.
Я провел большую часть прошлой ночи и сегодня утром писал сокеты script и сервер. Я также планирую удалить центральный сервер из уравнения, поскольку он просто громоздкий, и нет никакого смысла, когда все участники могут хранить копии своих ключей друзей.
К каждому профилю можно получить доступ через хэшированную строку открытого ключа. Моя социальная сеть опирается на узлы и контейнеры. Pods - это компьютеры, у которых их порты открыты для сети. Они помогают с ретрансляцией трафика, поскольку большинство брандмауэров блокируют входящие запросы сокетов. Узлы хранят информацию и совместно используют ее с другими узлами. Каждый node получит каталог активных модулей, которые могут использоваться для ретрансляции их трафика.
Ответ 5
Проект PeerSoN выглядит как-то, что вас может заинтересовать: http://www.peerson.net/index.shtml
Они провели много исследований, и документы доступны на их сайте.
Ответ 6
Некоторые мысли об этом:
- для использования: вы можете точно подумать о программах P2P и их дизайне.
- проблемы безопасности: конфиденциальность. Будьте осторожны, чтобы не открывать двери: вся система может быть скомпрометирована, потому что вы открыли дверь.
- : вы можете интегрироваться с обычными социальными сетями через свои API.
Люди должны будут установить программу на своих компьютерах и помнить, чтобы каждый раз открывать ее, как любой клиент P2P. Оставление всего на веб-сервере имеет меньший размер/необходимость действий пользователя.
Как-то вам понадобится централизованный сервер для управления поиском. Вы не можете просто транслировать Интернет, чтобы найти друзей. Или вам придется полагаться на запросы электронной почты, чтобы добавить somenone, и для этого вам нужно заранее знать электронное письмо.
Чем меньше друзей/контактов использует вашу программу, тем меньше будет хотеть использовать ее, поскольку она не будет иметь контактную информацию.
Я вижу, что ваш сервер будет хранилищем и переадресован, поэтому проблема обновления будет решена.