Представляем Uke Alpha — первое блокчейн-приложение для чата без кошелька, которое сломает Web3

Представляем Uke Alpha — первое блокчейн-приложение для чата без кошелька, которое сломает Web3

24 ноября 2022 г.

Что такое укэ?

Протокол Uke — это полностью распределенный протокол обмена сообщениями p2p. Он использует локальную криптографию и экземпляр блокчейна Substrate для проверки, отправки и получения сообщений в режиме реального времени — так же, как и любой другой традиционный протокол обмена сообщениями, и может использоваться для создания приложений для обмена сообщениями или любого другого приложения, в котором безопасный, конфиденциальный, реальный необходимо время для обмена сообщениями.

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

Промежуточные серверы запрещены!

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

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

Частью моей мотивации при создании этого проекта было показать именно это — использование этой технологии за пределами несбыточных проектов.

Это открытый исходный код, и я надеюсь получить некоторую помощь и вклад, чтобы убедиться, что у нас есть созданная сообществом и надежная замена обмена сообщениями, которой мы можем все доверять:

https://github.com/Uke-Messaging?embedable=true

Почему Укэ? Почему Блокчейн? А как насчет масштабируемости?


Если обычные решения для обмена сообщениями прекрасно работают, зачем создавать еще одно? Кроме того, зачем нужен блокчейн?

У укэ есть пара основных целей и стандартов, которые нужно поддерживать:

  1. Конфиденциальность — каждое отправляемое сообщение полностью и исключительно одноранговое — никто другой не может перехватить или расшифровать сообщение.

2. Отказоустойчивость/Надежность — не должно падать. когда-либо (по крайней мере, в производстве).

Используя DLT, мы устраняем необходимость в центральном сервере, а это означает, что пока определенное количество узлов находится в сети, пользователи могут общаться друг с другом. Это особенно полезно в чрезвычайных ситуациях, поскольку пользователи могут даже запускать свои собственные узлы, чтобы обеспечить 100% время работы.

Помимо технической надежности — Uke — это пиринговый чат. Никто не может запретить вам его использовать, все разговоры являются частными, а природа использования блокчейна позволяет сделать это одновременно прозрачным.

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

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

Архитектура Укэ — внутренняя часть (подложка)


Substrate — это блокчейн-фреймворк, то есть он поставляется с набором уже созданных модулей (см.: FRAME), чтобы блокчейн функционировал "из коробки".

Консенсус, распределенная сеть, хранилище и многое другое уже реализовано — это означает, что я могу сосредоточиться исключительно на реализации собственного собственного модуля обмена сообщениями для Uke.

В случае Uke — пользовательский модуль или поддон. Он обрабатывает сообщения для любого клиента, который отправляет запрос в цепочку, которая его интегрирует.

a high-level overview of how messages get stored, sent and dealt with in Uke.

У нас есть несколько концепций, которые нужно раскрыть здесь:

* Беседы: определяется как наличие инициатора и получателя со списком сообщений. Беседы могут быть помечены как активные или неактивные. Если беседа активна, она добавляется в карту ActiveConversations StorageMap для обоих участников.

* Идентификатор беседы. Идентификатор беседы — это то, как идентифицируются беседы. Адреса получателя и отправителя хэшируются (сейчас с помощью SHA3–256) и должны быть детерминированными, но уникальными.

* Сообщения: определяется как наличие отправителя и получателя определенной строки текста.

* Имена пользователей. Имена пользователей — это простые строки UTF-8, назначаемые идентификаторам учетных записей с целью удобочитаемой идентификации адресов в цепочке. (на основе поддона ников)).

В случае с Укэ мне пришлось немного переосмыслить принцип работы обмена сообщениями, так как здесь задействована цепочка блоков, но по сути это работает следующим образом:

* Пользователи могут начинать беседы.

* Пользователь, который изначально начал беседу, является инициатором и указывает получателя.

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

Это позволяет нам получать разговоры, не загружая весь разговор, что хорошо для нашего UX.

Имена пользователей сопоставляются с адресами и работают как идентификаторы Discord или Twitter. Это намного проще, чем запомнить длинный адрес из 64 символов.

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

Здесь весь код с открытым исходным кодом для Apache 2.0, так что посмотрите, если хотите! Пиар приветствуется:

https://github.com/Uke-Messaging?embedable=true

Если вы хотите иметь готовый к работе узел для тестирования и экспериментов, посетите репозиторий uke-node:

https://github.com/Uke-Messaging/uke-node?embedable=true

Архитектура Укэ — внешний интерфейс (ионный)


Я выбрал Ionic по нескольким причинам — в основном потому, что я уже очень хорошо знаю Angular, а также потому, что их пользовательский интерфейс/UX уже встроен во фреймворк. Это позволяет мне больше сосредоточиться на подключении к моей серверной панели.

Ionic также обрабатывает создание пользователей, аутентификацию и шифрование.

High-level login and signup flow for the front end.

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

Статус проекта — Попробуйте!


Я рад сообщить, что на момент написания этой статьи Uke (по крайней мере, веб-версия) готов к тестированию!

Вы можете проверить это здесь: app.uke.chat; имейте в виду, что он подвержен сбросам сети, ошибкам и некоторым проблемам в центре города — считайте его пре-альфа :)

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

Долгосрочные цели


Это только начало. Для этого протокола запланированы более высокие цели как для масштабируемости, так и для удобства использования.

* Разработайте отдельную личность, фильтр учетной записи и усилитель; Поддоны обмена сообщениями для общего использования субстрата.

* Реализуйте зашифрованный протокол pub-sub непосредственно в узле Substrate — таким образом, нет необходимости полагаться исключительно на внешние механизмы для обмена сообщениями.

* Разработать соответствующие модули на стороне клиента для использования в бизнесе.

* «Исчезающий» или временный безопасный обмен сообщениями

* Дополнительные платежные интеграции для пользователей, если применимо.

* Реализация сети Custom Substrate Uke для частного или публичного использования

Заключение (огромное спасибо Web3 Foundation!)


Спасибо всем, кто поддерживал до этого момента — это только начало создания чего-то действительно великого.

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

Uke предоставляет каждому возможность не только использовать чат web3 без криптовалюты, но и по-настоящему придерживаться философии предоставления пользователям контроля над данными, которые они распространяют через Интернет.

В краткосрочной перспективе я планирую сделать следующее:

* Соберите первые отзывы о приложении

* Немедленное планирование оптимизации протокола

* Создавайте uke SDK и документы для разработчиков, чтобы их могли использовать другие

* Продемонстрируйте использование web3 за пределами криптовалюты

* Ищите участников / потенциальных членов команды

Я рад сообщить, что получил поддержку программы грантов от Web3 Foundation для этого проекта. — помимо гранта, очень ценными были отзывы. На самом деле вы можете прочитать исходное предложение для этого проекта на GitHub, если хотите.

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

Берегите себя до следующего раза!


Также опубликовано здесь


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE