COOPENOMICS  v1
Кооперативная Экономика
Пространство имен TextDigest

Тексты в цепи хранятся хешем. Подробнее...

Функции

bool is_digest (const std::string &value)
 Значение — хеш текста в принятой записи или пустая строка. Подробнее...
 
void check_digest (const std::string &value, const char *field)
 Отказ, если в поле пришёл текст, а не хеш. Подробнее...
 
std::string of (const std::string &text)
 sha256 текста в той же записи, что считает контроллер; пустой текст остаётся пустым. Подробнее...
 

Переменные

constexpr bool PHASE2 = true
 

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

Тексты в цепи хранятся хешем.

Содержательный текст (описание проекта, формулировка вопроса собрания) живёт в базе контроллера, в памяти цепи от него остаётся sha256 в шестнадцатеричной записи нижним регистром (64 символа) или пустая строка, если текста нет. Хеш закрепляет, какой именно текст был, и не занимает память кооператива. Контроллер считает хеш так же (extension-kit, blockchain/chain-text-digest.ts).

Функции

◆ check_digest()

void TextDigest::check_digest ( const std::string &  value,
const char *  field 
)
inline

Отказ, если в поле пришёл текст, а не хеш.

◆ is_digest()

bool TextDigest::is_digest ( const std::string &  value)
inline

Значение — хеш текста в принятой записи или пустая строка.

◆ of()

std::string TextDigest::of ( const std::string &  text)
inline

sha256 текста в той же записи, что считает контроллер; пустой текст остаётся пустым.

Переменные

◆ PHASE2

constexpr bool TextDigest::PHASE2 = true
inlineconstexpr

Второй шаг выноса текстов (C28-78). Раскатка ставит контракты раньше контроллера, а только новый контроллер хранит тексты у себя и читает закрытые собрания из журнала дельт. Поэтому первый релиз (v2026.9.24-2, прод 24.09.2026), пока в сети мог стоять прежний контроллер, шёл с false: контракты принимали и текст, и хеш, не переводили старые тексты проектов в хеши и не стирали закрытые собрания.

Второй релиз — true: новый контроллер раскатан на всех узлах, копии текстов в базе сверены с цепью (62 проекта воскхода, снимок цепи — ~/shared/backups/c28-78/prod-2026-09-24). Теперь контракты:

  • принимают в полях-текстах только sha256 или пустую строку (check_digest);
  • переводят старые тексты проектов в хеши (capital::migrate, порциями);
  • стирают закрытые собрания (meet::signbypresid, meet::cleanup).