Спецификации

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

Основные понятия

Токен
Лицо
Кошелек
Права
Собственник, Группа собственников
Распорядитель, Группа распорядителей
Смарт-контракт
Оракул
Правило принятия решения (Правило)

Объекты и связи

Лицо

Отдельным Лицом в блокчейне считается пара Открытый ключ - Закрытый ключ. На этапе прототипирования - лицом является пара Логин - Пароль (в Aisystant и/или в системе ведения блога, если она пока отделена).
Атрибуты:
Открытый ключ
ФИО: необязательно (возможны анонимы), неуникально. Есть связь Логин-Пароль с ФИО в Aisystant.
Возможный механизм для использования в системе репутации: подтверждение личности со стороны иного лица. То есть лицо А заверяет своей подписью что данным открытым ключом владет действительно ФИО
Функции, доступные Лицу в системе:
Заведение Кошелька (автоматически становится единственным членом Группы собственников со всеми правами)
Репутация лица
Лицо может сделать публичной свою репутацию. Три варианта определения репутации:
Сумма токенов на всех кошельках, принадлежащих Лицу единолично - индикатор уровня
Сумма токенов на всех кошельках, где Лицо входит в группу собственников
Сумма токенов на всех кошельках, где Лицо входит в группу распорядителей

Кошелек

Кошелек как аналог счета, кошельков будет больше, чем людей. Все целевые фонды - отддельные кошельки.
Кошелёк заводится решением группы собственников, консенсусом определяющих его определящие атрибуты и связи.
Атрибуты:
ID
Баланс - число Токенов (число десятичных знаков?), обязательно, больше либо равно 0
Имя кошелька, текст (задается собственником)
Связи:
Группа собственников (единственная)
Группа распорядителей (ни одной, одна или несколько)
Смарт-контракт (ни одного, один или несколько)
Функции:
Перечисление токенов (собственниками, распорядителями, смарт-контрактом)
Индивидуальное перечисление на адрес
Групповое перечисление в соответствии с реестром получателей
Прием (зачисление токенов) - производится автоматически, согласие не требуется
Объявление голосования (объявление вопросов, выбор типа голосования, стейкинг токенов для голосования, обеспеченного токенами)
Поддержка объявленного иным лицом голосования (при необходимости - со стейкингом)
Голосование (в соответствии с видом голосования)

Права (групп)

Просмотр баланса
Перечисление токенов
Объявление голосования
Голосование Токенами
Изменение данных (в зависимости от состава данных)

Группа собственников

Связи:
Одно или несколько Лиц
Если в Группе собственников более одного Лица - к Группе собственников привязано Правило принятия решения
Права (в соответствии с Правилом принятия решения):
Просмотр баланса Кошелька
Перечисление токенов
Объявление голосования
Голосование токенами
Изменение состава Группы собственников
Назначение, удаление, изменение состава и прав Группы распорядителей
Инициализация, изменение, прекращение Смарт-контракта

Группа распорядителей

Связи:
Одно или несколько Лиц
Оракул (ни одного, один или несколько)
Правило принятия решения
Права:
Просмотр баланса Кошелька
Перечисление токенов в соответствии с Правилом приятия решения

Смарт-контракт

Связи:
Оракул (один или несколько)
Правило принятия решения
Права:
Перечисление токенов в соответствии с Правилом приятия решения

Оракул

Предоставление информации о событиях для правил принятия решения
К реализации в рамках прототипирования:
Календарь, часы - для регулярных начислений
Блог, социальные медиа
Счётчик постов лица Х
Счётчик полученных лайков
Счётчик полученных комментариев
Счётчик сделанных комментариев
AIsystant
Регистрация
Покупка (получение) курса
События прохождения курса

Правило принятия решения

Типы правил:
N из M
N из M при условии одобрения выделенного лица
N из M при условии одобрения оракулом
Решение оракула
Атрибуты правила:
Максимальная величина одной транзакции перечисления в Токенах
Максимальное число транзакций перечисления за период (день, месяц)
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.