* 1.8 - регистрация пользователей с перманентным реестром логин/bcrypt хеш пароля в блокчейн (namespace _KEVACHAT_USERS_ текущего узла).
* 1.9 - настройки комиссий за публикации, создание новых комнат и регистрацию аккаунтов. Используется в основном в качестве анти-спама, также может служить в качестве монетизации узла.
* 1.10 - введена система внутренней экономики: зарегистрированные пользователи теперь имеют собственный счёт, баланс которого могут расходовать на публикации а также получать на него донаты.
* 1.11 - обновление протокола:
* //ключи// больше не содержат меток времени (в качестве ключа используется только имя пользователя)
* в //значениях// убраны знаки @ для построения дерева вложенности (для идентификации используется только цитируемый txid в начале цитирующей строки)
* время публикации определяется фактическим временем транзакции
==== geminiapp ====
@ -42,21 +46,22 @@ KevaChat реализует стандартный протокол KevaCoin и
@@ -42,21 +46,22 @@ KevaChat реализует стандартный протокол KevaCoin и
Тем не менее, для построения цепочки сообщений и социальных функций, используются следующий подход:
* приложение читает все namespace в аккаунте, которые принято считать чат комнатами;
* данные об авторе сообщения сохраняются в значение key, в формате unixtime@username - таким образом, можно открыть например [[ http://kevachat.ygg/room/NgKBKkBAJMtzsuit85TpTpo5Xj6UQUg1wr | официальный блог KevaCoin]], но сообщения в нем прочитаны не будут, поскольку не соответствуют формату чат-приложения.
* текст сообщений сохраняется в значениях value и поддерживает следующие макросы:
* @txid в начале сообщения - указывает ссылку на родительский пост, используется в "ответах" (reply) - Web UI скрывает такие ссылки и добавляет вложенность;
* время сообщения соответствует фактическому времени транзакции;
* все namespace в аккаунте принято считать чат комнатами;
* имя автора сообщения сохраняется в значение key;
* текст сообщений сохраняется в значение value и поддерживает следующие макросы:
* txid в начале сообщения - указывает ссылку на родительский пост, используется в "ответах" (reply) - например, webapp скрывает такие ссылки и добавляет вложенность, в то время как geminiapp - добавляет цитату;
* namespace hash - в системе KevaCoin всегда начинается с символа N, такие вхождения заменяются кликабельной ссылкой;
* url - автоматически заменяется на кликабельную ссылку;
* #теги - на данный момент поиск по тегам не реализован, но уже используется в сообщениях.
Для базы пользователей используется namespace _KEVACHAT_USERS_, с парой ключ (логин) и значение (хеш пароля bcrypt).\\
Для базы пользователей зарезервирован namespace _KEVACHAT_USERS_, с парой ключ (логин) и значение (хеш пароля bcrypt).\\
Подлинность авторизации обеспечивается подписью узла, на котором осуществлена регистрация.
В остальном, протокол стремится минимизировать объем сохраняемых данных, а также читаемость в исходном виде.\\
Любая разметка удаляется приложением, в том числе с целью предотвращения XSS и запросов к внешним ресурсам.
Любая разметка обычно фильтруется клиентским приложением, в том числе с целью предотвращения XSS и запросов к внешним ресурсам.
Также не используются обертки JSON и прочие программные слои для расширения возможностей базы данных KevaCoin.
Также не используются обертки JSON и прочие программные слои, затрудняющие чтение исходной базы данных.
===== Публикации =====
Публиковать сообщения можно анонимно (в блокчейне не сохраняется какой либо инфорации об авторе, кроме timestamp и сообщения)