Недавно было объявлено о рождении нового проекта кто разрабатывает приложение для создавать децентрализованные чаты P2P, участники которого взаимодействуют друг с другом напрямую, не обращаясь к централизованным серверам.
Название этого проекта Читтэттер и программа выполнена в виде веб-приложения, работающего в браузере, код написан на TypeScript и распространяется под лицензией GPLv2.
О чате
Читтэттер это средство связи с открытым исходным кодом, который разработан с учетом требований безопасности и конфиденциальности.
Некоторым службам требуется установить одноранговое соединение, но приложение основано на прямой одноранговой связи как можно больше. Службы, используемые приложением, не связаны с проектом Chichatter и общедоступны для всех.
Приложение позволяет генерировать уникальный идентификатор чата которыми можно поделиться с другими участниками, чтобы начать общение. Можно использовать любой общедоступный сервер, поддерживающий протокол WebTorrent. чтобы договориться о подключении к чату.
После согласования соединения создаются прямые зашифрованные каналы связи, связывающие пользователей с использованием технологии WebRTC, которая предоставляет готовые средства доступа к узлам, работающим за трансляторами адресов (NAT) и в обход корпоративных брандмауэров с использованием протоколов STUN и TURN.
Chitchatter — это полностью клиентское коммуникационное приложение. Он использует внешние серверы WebTorrent и STUN/TURN общего назначения для необходимой связи, но не имеет API-сервера Chichatter.
Внутренние особенности которые выделяются в репозитории проекта, упоминаются следующие:
- Полностью открытый исходный код (под лицензией GPL v2)
- P2p
- Везде, где это возможно, в противном случае используется Open Relay для обеспечения надежного однорангового соединения.
- Шифрование (через WebRTC)
- Не требует сервера
- Общедоступные серверы WebTorrent используются только для начального однорангового рукопожатия.
- Эфемерный
- Содержимое сообщения никогда не сохраняется на диске
децентрализованный - API-сервера нет. Все, что требуется для работы Chitchatter, — это доступность GitHub для статических ресурсов и общедоступных серверов ретрансляции WebTorrent и STUN/TURN для одноранговой связи.
- самоходный
- Никакой аналитики, отслеживания или телеметрии.
- Читтэттер начал с приложения Create React. Магия безопасных сетей была бы невозможна без Trystero.
Стоит отметить, что содержимое беседы не сохраняется на диск и теряется после закрытия приложения. В чате можно использовать разметку Markdown и вставлять медиафайлы.
Планы на будущее включают защищенные паролем чаты, голосовые и видеозвонки, совместное использование файлов, подсказки при наборе текста и возможность просматривать сообщения, опубликованные до того, как новый участник присоединился к чату.
Что касается тех, кто заинтересован в возможности протестировать или узнать об этом проекте, они могут попробовать демо, предлагаемое в по следующей ссылке.
Разместите свой собственный чат Chitchatter
Те, кто заинтересован в самостоятельном размещении проекта, должны следовать приведенным ниже инструкциям. Первое, что нужно сделать, это получить исходный код, что вы можете сделать из по следующей ссылке.
Предполагая, что вы собираетесь размещать Chitchatter на страницах GitHub, вам следует изменить файл свойство в package.json на любой URL-адрес, с которого размещен экземпляр Chitchatter. Это будет что-то вроде https://github_user_or_org_name.github.io/chitchatter/.
После этого необходимо определить секретный ключ действия GitHub (в https://github.com/github_user_or_org_name/chitchatter/settings/secrets/actions).
И при этом, когда он размещается на страницах GitHub и выполняется вышеуказанная конфигурация, производственная среда обновляется.
Что касается конфигурации во время выполнения, вы можете сделать это в файлах конфигурации, которые находятся в /src/config, и здесь вы можете изменить настройки подбора игроков и сервера ретрансляции.
Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.