golubevpavel
@golubevpavel
Генеральный директор @ Appodeal

Как реализовать P2P оффлайн сообщения на iOS/Android?

Я работаю над приложением для iOS/Android, которое позволит безопасно и анонимно обмениваться мгновенными сообщениями. Я уверен, что безопасного и анонимного общения можно достигнуть только используя P2P архитектуру, в которой нет места серверу или центральным супер нодам. После недавнего обсуждения на Хабре, я решил отказаться от использования XMPP в пользу Torchat. В настоящий момент я портирую Torchat и OTR на iOS и Android. Понаблюдать за прогрессом можно на Github. Torchat и OTR прекрасно решают поставленные мной задачи — отсутствие центрального звена в системе, анонимность, маскировка отправителя и получателя, быстрота работа, простота использования, шифрование и аутентификация. Но только если оба пользователя находятся в сети во время общения. Ни Torchat, ни OTR не работает, если получатель сообщения находится в оффлайне.

Я предположил, что сообщения, отправляемые в оффлайн, должны буфферизироваться где-то внутри P2P сети другими участниками этой сети. Изучая возможные решения, я наткнулся на Bitmessage. Этот протокол берет за основу протокол Bitcoin и позволяет обмениваться сообщениями без участия сервера. Каждый клиент в сети Bitmessage получает все сообщения и пытается их расшифровать своим приватным ключом. Проблемы масштабирования решаются путем разделения клиентов на связанные кластеры (streams), что позволяет держать в разумных пределах количество трафика и процессорного времени, "съедаемых" приложением.

Правильный ли протокол я выбрал для реализации отправки сообщений "в оффлайн" на iOS/Android с учетом P2P архитектуры? Возможно ли заранее просчитать, насколько большая будет сетевая и процессорная нагрузка? Будет ли приложение на iOS получать сообщения из Bitmessage в фоновом режиме?
  • Вопрос задан
  • 6250 просмотров
Пригласить эксперта
Ответы на вопрос 2
karass
@karass
Паша, привет :) !
Ответ написан
Gem
@Gem
Как я понял проблема тут в самом блокчейне, для мобильных коин клиентов используют специальные подготовленные и обрезаные версии оного
Ввиду этого предполагаю, что кластеров клиентов будет недостаточно - нужны ноды для стрипа и хранения блокчейна, ессно не мобильные
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы