COOPENOMICS  v1
Кооперативная Экономика
Структура Ano::repschema

Версия единой схемы весов репутации сети. Подробнее...

#include <table_ano_repschemas.hpp>

Открытые члены

uint64_t primary_key () const
 

Открытые атрибуты

uint64_t version
 номер версии — первичный ключ; растёт без пропусков Подробнее...
 
std::string document
 полный JSON схемы весов, включая заголовки и описания типов Подробнее...
 
time_point_sec published_at
 когда версия опубликована и начала действовать Подробнее...
 

Подробное описание

Версия единой схемы весов репутации сети.

Схема весов — норма: по ней бэкенд репутации при АНО превращает события участия в баллы, а публичная страница «как считается репутация» показывает людям действующие правила. Норма обязана лежать там, где её нельзя подменить задним числом и где каждый может её прочитать, — в цепи.

Запись хранит полный JSON схемы, а не хэш. Хэш доказывал бы целостность, но оставлял бы сам документ на чьём-то сервере — а сервер умеет отвечать по-разному разным людям. Полный текст в таблице делает цепь единственным источником: что прочитал — то и действует. Образец подхода — таблица draft::drafts, где так же целиком лежат шаблоны документов.

Ключ записи — номер версии, и версии только растут. Ретроактивный пересчёт запрещён (правило модели): новая версия действует только вперёд, старые записи не правятся и не удаляются — они нужны, чтобы восстановить, по каким правилам считался любой прошлый период.

Содержимое JSON контракт не разбирает. Формат схемы валидируется оффчейн пакетом schema-contract до публикации (CI и инструмент schema:sync); разбирать JSON в контракте значило бы завести вторую реализацию валидации, которая однажды разойдётся с первой. Контракт отвечает за другое: за авторство (только АНО), непрерывность нумерации и неизменность истории.

Методы

◆ primary_key()

uint64_t Ano::repschema::primary_key ( ) const
inline

Данные класса

◆ document

std::string Ano::repschema::document

полный JSON схемы весов, включая заголовки и описания типов

◆ published_at

time_point_sec Ano::repschema::published_at

когда версия опубликована и начала действовать

◆ version

uint64_t Ano::repschema::version

номер версии — первичный ключ; растёт без пропусков


Объявления и описания членов структуры находятся в файле: