COOPENOMICS  v1
Кооперативная Экономика
Файл migrate.cpp

Функции

static void recalculate_levels (eosio::name coopname)
 Миграция контракта capital — восстановление инварианта сумм голосования у проекта, поставленного на голосование до исправления расчёта. Подробнее...
 
static void digest_project_texts (eosio::name coopname)
 

Переменные

static constexpr uint64_t kDigestBytesPerCall = 100 * 1024
 Вынос текстов проектов из памяти цепи. Подробнее...
 

Функции

◆ digest_project_texts()

static void digest_project_texts ( eosio::name  coopname)
static

Переменные

◆ kDigestBytesPerCall

constexpr uint64_t kDigestBytesPerCall = 100 * 1024
staticconstexpr

Вынос текстов проектов из памяти цепи.

Описание и приглашение проекта теперь хранятся в базе контроллера, а в цепи остаётся их sha256 (см. lib/core/text_digest.hpp). Старые строки держат полный текст — на восходе это 345 КБ из 406 КБ таблицы проектов. Шаг заменяет текст его хешем прямо в цепи: хеш считается от тех же байтов, которые лежат в строке, поэтому совпадает с тем, что посчитает контроллер от своей копии текста. Контроллер при такой дельте текст в базе не трогает и сверяет его хеш с цепью.

Работа идёт порциями: за вызов переводится не больше kDigestBytesPerCall байт текста. Все 61 проект восхода за один вызов заняли 203 мс CPU при лимите транзакции 290 мс (замер 23.09.2026) — впритык. Если осталось ещё, вызов пишет «бюджет исчерпан», и раскатка повторяет migrate.

Идемпотентно: строка, где уже лежит хеш или пусто, не переписывается.