Пользователь — оракул в блокчейне 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. Атрибут опционален, если отмечен звёздочкой *.
Структура данных для типа text
Описание типа: Простая короткая текстовая заметка без какой-либо разметки.
Структура данных для типа publication
Type description: Extended text with voice markdown markup.
— Русская версия: 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