top of page

Архитектура Buzzer 

Buzzer - это децентрализованное приложение (DApp), работающее на блокчейне Qbit. Каждое DApp на платформе Qbit построено на:

  • Специализированных или общих шардах (сегментах);

  • Специализированных типах транзакций (включая проверку и обработку на основе кода qasm и c++);

  • Схеме подтверждения (локальный консенсус);

  • Расширении протокола Qbit (для node, full node и light node).

Buzzer имеет несколько шардов (связанных с основной сетью, но в основном независимых, специализированных цепочек для обеспечения масштабируемости и производительности), которые содержат пользовательские данные. Когда создается новый @buzzer, система назначает ему свой шард (самый незагруженный). И все данные пользователя, полученные из этого Buzzer'a, будут помещены в этот шард.

Каждая отдельная транзакция (например, "buzz" или TxBuzz), которая будет помещена в связанный шард, должна (в соответствии со схемой проверки) ссылаться на специальную транзакцию - "fee" или TxFee.

Транзакция TxFee, которая является комиссией в QBIT, будет использована майнером в качестве вознаграждения за найденный блок. У каждого шарда в Buzzer DApp есть собственный консенсус, основанный на PoW.

Каждый майнер, который нашел следующий блок, будет собирать все транзакции TxFee (еще не использованные) и выполнять транзакцию TxBase с собранными комиссиями, а следовательно, (сразу после обнаружения блока) создавать и транслировать транзакцию TxBlockBase (в основной цепочке), чтобы перечислить собранные QBIT на его собственный адрес.

Buzzer содержит следующие типы транзакций:

  • TxBuzzer / "buzzer": создать уникальную сущность - buzzer с указанным именем сущности (имя сущности должно быть уникальным). У каждой транзакции buzzer'a есть специальные выходы, которые могут использоваться самим buzzer'ом для создания buzz'ов (никто другой не может делать оригинальные публикации из этого buzzer'a, кроме владельца - проверка подписи), для одобрения / недоверия со стороны других участников, для подписки на этот buzzer и т.п.

  • TxBuzzerInfo / "buzzer_info": создать новую транзакцию с информацией о buzzer, которая содержит псевдоним, заголовок и изображения аватара. Оригинальное имя buzzer'a всегда остается неизменным.

  • TxBuzzerSubscribe / "buzzer_subscribe": оформить подписку на выбранный buzzer. Эта транзакция гарантирует вам, что только активные и явные подписки, сделанные вами, будут служить фактическим источником содержания персональной ленты. Примечание: этот тип транзакции в отношении вашего buzzer'a может быть совершен только вами и с вашим ключом.

  • TxBuzzerUnsubscribe / "buzzer_unsubscribe": отменить подписку на buzzer. Совершите эту транзакцию, и вы никогда не будете получать новые данные от указанного buzzer'a. Примечание: этот тип транзакции в отношении вашего buzzer'a может быть совершен только вами и с вашим ключом.

  • TxBuzzerEndorse / "buzzer_endorse": добавить одобрение к выбранному buzzer'у. При этом блокируется 0,1 QTT (транзакция с ограничением по времени) на 30 минут: транзакция TxFee, отправляется с оплатой и целевой высотой.

  • TxBuzzerMistrust / "buzzer_mistrust": добавить значение недоверия к выбранному buzzer'у. При этом блокируется 0,1 QTT (транзакция с ограничением по времени) на 30 минут.

  • TxBuzz / "buzz": создать новый buzz - запись в микроблоге с прикрепленными медиа файлами. Для формирования транзакции используется специальный выход вашего buzzer. Только вы можете создать buzz из-за проверки ключей и подписи, которая будет проводиться во время публикации (и, конечно же, синхронизации) транзакции.

  • TxBuzzLike / "buzz_like": проставить отметку "нравится" соответствующему buzz'y / репосту / ответу. Вы можете сделать это только один раз для указанного buzz'a / репоста / ответа.

  • TxRebuzz / "rebuzz": репост выбранного сообщения в вашу ленту buzzer'a со ссылкой на исходное сообщение.

  • TxRebuzzReply / "rebuzz_reply": репост выбранного сообщения с вашим комментарием.

  • TxBuzzReward / "buzz_reward": отправить выбранному buzzer'у небольшое количество QBIT (1k, 2k или 3k qBIT).

  • TxBuzzerConversation / "buzzer_init_conversation": начать беседу с выбранным buzzer'ом. Это действие можно выполнить только один раз.

  • TxBuzzerAcceptConversation / "buzzer_accept_conversation": если кто-то начал с вами беседу, вы получите возможность принять участие в этом диалоге (и наоборот). Этот тип транзакции поддерживает ожидание беседы.

  • TxBuzzerDeclineConversation / "buzzer_decline_conversation": отклонить транзакцию начала беседы. После этого это действия, вы никогда не увидите никаких сообщений и запросов от вашего собеседника.

  • TxBuzzerMessage / "buzzer_message": отправить зашифрованное сообщение собеседнику. Тело сообщения и носитель сообщения будут зашифрованы с использованием 256 секретного ключа .

  • TxBuzzerMessageReply / "buzzer_message_reply": ответить на выбранное сообщение. Ответ также будет зашифрован. Примечание: этот тип транзакций сейчас поддерживается не полностью.

  • TxBuzzerHide: удаление своей учетной записи без возможности восстановления (QBIT и QTT останутся на вашем кошельке, вы сможете создать buzzer с новым именем).

  • TxBuzzerBlock: блокировка стороннего аккаунта это локальное личное действие (между вами и заблокированным пользователем), его результаты НЕ видны другим (в отличие от mistrust). Контент заблокированного пользователя (включая записи, ответы, сообщения) больше не будет виден вам (в глобальных, домашних  каналах или чатах). Не изменяет показатель Trust Score.

  • TxBuzzerUnBlock: разблокировка аккаунта пользователя, который вы блокировали ранее.

Buzzer работает вместе с Cubix DApp, и у последнего есть собственное хранилище данных - собственные шарды, консенсус, майнеры и валидаторы. Схема вознаграждения за майнинг аналогична схеме, реализованной в Buzzer DApp.

Cubix позволяет хранить различные типы мультимедиа (*.png, *.jpeg, *.mp3, *.mp4, *.m4a, список поддерживаемых форматов будет расширяться), включая поддержку шифрования мультимедийных данных. Мультимедийные файлы разбиваются на связанные блоки (аналогично организации файловой системы). Каждый фрагмент данных представлен особым типом транзакции TxCubixMediaData или "media_data". Все медиа материалы перед публикацией проходят процедуру "предварительного просмотра", и их миниатюра записывается в заголовок TxCubixMediaHeader / "media_header".

В Cubix есть следующие типы транзакций:

  • TxCubixMediaHeader / "media_header": транзакция заголовка мультимедиа. Содержит данные предварительного просмотра медиафайла (могут быть зашифрованы) или оригинальный медиафайл, если он достаточно мал. Эта транзакция является заголовком связанного списка медиаданных TxCubixMediaData.

  • TxCubixMediaData / "media_data": представляет фрагмент медиаданных (может быть зашифрован). Может быть связана с заголовком, следующим фрагментом данных или сводкой мультимедиа.

  • TxCubixMediaSummary / "media_summary": финальная транзакция загруженного мультимедиа. Эта транзакция является хвостовой частью списка медиа-данных.

Расширения протоколов, которые позволяют безопасно выбирать данные (индексированные) из узлов и полных узлов (выбор работает с транзакциями и подписанными деталями транзакций):

  • Выбор списка buzz'ов для персональной ленты, глобальной ленты, ленты выбранного buzzer'a;

  • Выбор цепочки ответов для данного buzz'a;

  • Выбор списка подписчиков;

  • Выбор списка одобряющих \ неодобряющих;

  • Выбор списка личных событий;

  • Выбор списка бесед и списка сообщений;

  • Обработка обновлений в реальном времени для различных каналов (лент).

Примечание: все выбранные ленты проходят через технику "Условное подтверждение" - списки, поступающие как минимум с двух узлов, проходят взаимную перекрестную проверку. Проверка второго уровня - сверка подписи выбранных позиций. Пользователю будут показаны только те позиции, которые успешно прошли все указанные проверки.

bottom of page