Привет, Хабр!

Несколько недель назад, в этом посте, мы представили CLI для Eppie — p2p почты с шифрованием и открытым протоколом. Сегодня мы хотим рассказать о GUI приложении, которое уже доступно на GitHub. Если вы читали нас раньше, можете пропустить введение и сразу перейти к разделу «Как пользоваться». Ну а все остальные, кто увлекается децентрализованными технологиями и думает о приватности данных, — поехали.

Что такое Eppie?

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

Децентрализованный протокол Eppie гарантирует конфиденциальность данных независимо от уровня доверия к разработчику, то есть к нам, и предоставляет пользователю настоящее владение учетной записью и данными (здесь мы писали на тему владения). Eppie сможет получать сообщения с обычной электронной почты IMAP/SMTP, а также подключаться к нескольким существующим децентрализованным сетям, таким как Ethereum или Bitcoin. И мы уделяем особое внимание UX: хочется чтобы приложение было интуитивно понятным любому пользователю, независимо от технической подготовки.

contacts

Что касается стека технологий, по умолчанию Eppie будет хранить данные в инфраструктуре IPFS и использовать SBBS в качестве транспортного уровня. Но архитектура позволяет легко подключать другие технологии хранения и транспортировки. E2E шифрование основано на криптографии с эллиптическими кривыми. GUI приложение пишем на C# с Uno. GUI работает пока только на Windows, но позже будет поддержка macOS, Linux, iOS и Android.

settings

Где мы сейчас

Децентрализованный обмен сообщениями уже работает в тестовой сети. Но это еще не настоящая децентрализованная сеть — там всего несколько нод, которые мы держим в облаке. Между тем, Eppie функционирует как обычный почтовый клиент, поддерживающий основных провайдеров электронной почты — Google, Microsoft Outlook и т. д. Локальная учетная запись создается с использованием сид-фразы в соответствии со стандартом BIP39 и принадлежит пользователю. Дополнительные функции безопасности — поддержка PGP и возможность аутентификации на серверах Proton Mail (чего, насколько нам известно, не умеет ни один из существующих настольных клиентов).

compose

Вот список функций, доступных сейчас:

  • Создание локальной учетной записи с использованием сид-фразы BIP39

  • Поддержка PGP шифрования (WIP)

  • Подключение любого количества сторонних учетных записей электронной почты (например, Gmail, Microsoft Outlook)

  • Подключение учетной записи Proton Mail

  • Создание локальной резервной копии

  • Просмотр почтовых ящиков и чтение сообщений

  • Написание и отправка сообщений

proton

Новые функции будут добавляться по мере развития проекта.

Зачем вам стоит попробовать Eppie

Это может быть интересно тем, кто хочет поучаствовать в разработке на GitHub — мы будем вам очень рады! Еще это возможность первым попробовать P2P функциональность, как только она будет готова. И наконец, можно пользоваться Eppie как обычным почтовым клиентом вместе с Proton, Gmail или Outlook.

Как пользоваться

Загрузите установщик в разделе релизов на GitHub. Сейчас есть версия только для Windows. Версии для остальных платформ появятся позже, и мы о них еще напишем.

Чтобы собрать Eppie из исходников, вам понадобится Windows 10 или более поздняя версия.
Установите Visual Studio 2022 со следующими компонентами:

  • .Net Multi-platform App UI development

    • Android SDK setup (with Android SDK Platform 31)

    • .NET profiling tools

    • Xamarin

  • Windows application development

    • Universal Windows Platform tools

    • Windows 11 SDK (10.0.22621.0)

    • Windows 10 SDK (10.0.19041.0)

Клонируйте репозиторий:
git clone --recursive https://github.com/Eppie-io/Eppie-App.git eppie-app

Чтобы собрать проект, откройте файл src/Eppie.App/Eppie.App.sln в Visual Studio.
Установите Eppie.App.UWP в качестве стартового проекта и выберите платформу x64. Запустите сборку (Visual Studio MenuBuild ➤ Build Solution). Чтобы запустить проект, выберите Visual Studio MenuDebug ➤ Start Debugging.

Что ещё

Уже сказали выше и повторим еще раз: мы приветствуем любую активность на GitHub. Как минимум поставьте нам звезду — для нас это очень ценно! Также не стесняйтесь комментировать и задавать вопросы. Спасибо за внимание!

Комментарии (20)


  1. ky0
    05.08.2024 14:10
    +1

    Звучит неплохо. Какая будет монетизация?


    1. BaJlepa Автор
      05.08.2024 14:10
      +1

      Основная функциональность будет бесплана. Платная подписка — за дополнительные возможности. Мы сейчас рассматриваем, например, возможность не отдавать место на локальном жестком диске для нужд сети. В P2P сети каждый пользователь участвует в хранении и передаче данных, соответственно, приложение использует дисковое пространств и сетевой канал. Мы можем освободить пользователя от этой обязанности, поддерживая свои служебные ноды.


  1. nin-jin
    05.08.2024 14:10

    Что касается стека технологий, по умолчанию Eppie будет хранить данные в инфраструктуре IPFS и использовать SBBS в качестве транспортного уровня. Но архитектура позволяет легко подключать другие технологии хранения и транспортировки. E2E шифрование основано на криптографии с эллиптическими кривыми.

    Как насчёт интегрироваться с CRUS-DB? Там уже встроено e2e шифрование и цифровые подписи. Более того, она позволяет не только хранить, но и редактировать данные без конфликтов синхронизируя их в реальном времени. Например, можно расшарить с коллегой драфт письма и вместе его редактировать. Или начал вводить письмо на одном девайсе, а продолжить на другом - восстановится даже позиция каретки.

    Что такое SBBS?

    GUI приложение пишем на C# с Uno. GUI работает пока только на Windows, но позже будет поддержка macOS, Linux, iOS и Android.

    Сделали бы на веб технологиях - работало бы сразу везде. Идеально было бы сделать PWA приложение + расширение к браузеру для соединения по IMAP/SMTP/POP3 или микросервис для этого в виде демона/службы. Вот, набросал интерфейс за пару минут.


    1. Revertis
      05.08.2024 14:10
      +6

      Сделали бы на веб технологиях - работало бы сразу везде.

      Вот поэтому всё так всрато у нас сейчас :(


      1. nin-jin
        05.08.2024 14:10

        1. Revertis
          05.08.2024 14:10

          Страница в браузере (которую часто неверно называют приложением) всегда будет намного медленнее, чем нативное приложение.


          1. nin-jin
            05.08.2024 14:10

            Открываем любое веб-приложение на $mol и всё летает.

            Открываем нативный Microsoft Store и любуемся страшными тормозами.


            1. Revertis
              05.08.2024 14:10

              И как работают мессенджеры с миллионом сообщений в браузерах, и особенно с вашим $mol?


              1. nin-jin
                05.08.2024 14:10

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


                1. BaJlepa Автор
                  05.08.2024 14:10
                  +2

                  Вы ошибаетесь, скайп не нативный. Он WEB приложение.


                  1. nin-jin
                    05.08.2024 14:10

                    https://ru.wikipedia.org/wiki/Skype


                    1. newintellimouse
                      05.08.2024 14:10

                      Skype - Wikipedia

                      Англоязычная статья полнее и актуальнее, и там есть отсылка на UWP, которой нет в русскоязычной статье

                      Что такое приложение UWP? - UWP applications | Microsoft Learn


                    1. BaJlepa Автор
                      05.08.2024 14:10

                      Skype стал PWA-приложением в 2019 году:
                      The new Skype for Web is here | Skype


    1. BaJlepa Автор
      05.08.2024 14:10
      +2

      В Eppie будет максимально просто добавлять дополнительные слои транспорта и хранения, так что CRUS-DB тоже можно будет интегрировать. Кстати, если у вас под рукой есть описание протокола CRUS-DB, дайте, пожалуйста ссылку. 

      SBBS — расшифровывает как Secure Bulletin Board System. Вот здесь можно почитать: https://github.com/BeamMW/beam/wiki/Secure-bulletin-board-system-%28SBBS%29

       Что касается PWA и WEB технологий, мы, честно говоря, не большие их поклонники.


      1. nin-jin
        05.08.2024 14:10

        Протокол прост, но он вам не поможет, ибо надо сами данные хранить по особому.

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


        1. BaJlepa Автор
          05.08.2024 14:10

          Спасибо


      1. egribanov
        05.08.2024 14:10

        Может тогда флаттер?


        1. BaJlepa Автор
          05.08.2024 14:10

          Можно конечно, но не в этот раз.


  1. comradeleet
    05.08.2024 14:10
    +1

    Классная идея, а почему выбрали UWP, а не MAUI или Авалонию?


    1. BaJlepa Автор
      05.08.2024 14:10
      +1

      Выбрали Uno

      Не выбрали MAUI потому что ещё сырой, а не Авалония потму что основана на WPF что наоборот довольно древний.