Спецификация для протокола Voice на VIZ

in hive-171319 •  3 years ago 

Спецификация для протокола Voice на VIZ

Пользователь — оракул в блокчейне VIZ, который сам формирует свою социальную сеть.

Спецификация протокола

  • Тип протокола: Custom (Гибкий)
  • Название протокола: Voice (Голос)
  • Наименование протокола: V
  • Тип доступа: Обычный
  • Описание протокола: Открытый протокол для обратно-связанных JSON объектов в блокчейне VIZ, созданный для активности аккаунтов с настраиваемыми типами данных.

Аккаунт создаёт операцию гибкого протокола (custom) и записывает JSON объект с обратной связанность на предыдущий объект в истории. Если блокчейн двигается поступательно вперёд, то протокол Голос может быть прочитан в обратном порядке. Это возможно если блокчейн нода хранит номер блока который содержит последнюю запись гибкого протокола (доступно в плагине custom_protocol_api).

Пример

Аккаунт А записал гибкую операцию в блоки: 100, 150, 200. Блокчейн хранит, что у аккаунта А последняя гибкая операция в блоке под номером 200. Мы можем достать операции из этого блока и найти там активность аккаунта А. Операция содержит JSON объект с атрибутом, который ссылается на предыдущий блок с аналогичной активностью: 150. Мы можем шаг за шагом спускаться и парсить обратно-связанные JSON объекты для получения всей активности аккаунта А. Вот и все! Лента активности в «прошлое» доступная в поступательной блокчейн архитектуре.

URL Схема

Используется новая схема url с форматом:

viz://@account/block-number/*protocol-shortname/

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

Структура объектов

Гибкий протокол позволяет оперировать любыми данными в формате JSON. Слабая типизация по своей структуре обозначает зависимость от версии протокола для внедрения новых возможностей. Если новая возможность ломает обратную совместимость, то версия должна быть увеличена. Если атрибут используется по умолчанию, то нет необходимости его нахождения в объекте. Короткие имена атрибутов требуются для минимизации размера транзакций.

Пример

Версия по умолчанию: 1. Атрибут опционален, если отмечен звёздочкой *.

Спецификация для протокола Voice на VIZ

Структура данных для типа text

Описание типа: Простая короткая текстовая заметка без какой-либо разметки.

Спецификация для протокола Voice на VIZ

Структура данных для типа publication

Type description: Extended text with voice markdown markup.

Спецификация для протокола Voice на VIZ

— Русская версия: https://github.com/Hackathon-on-Internet-freedom/Free-Speech-Project/blob/master/specification-ru.md
— Английская версия: https://github.com/Hackathon-on-Internet-freedom/Free-Speech-Project/blob/master/specification.md

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!